· hugo fabric

Fabricを使ってサイト更新を自動化する

ターミナル上でアップロード作業をしたい

サイトのページを作成して、サーバにアップロードする際、FileZillaなどのFTPクライアントは良く出来ているので、不便は無いのですが、HUGOでのサイト作成作業は、ほぼ、Sublime Textとターミナルでの作業になるので、サーバへのアップロードもターミナルで出来た方が便利です。

色々なツールがありますが、FabricとNcFTPを調べてみました。Fabricが簡単そうなので、試してみます。

Fabricのインストール

OS X El Capitanにインストール

$ sudo pip install fabric

サイト更新を自動化するスクリプトの作成

サーバへでデプロイするFabricのファイル(Pythonスクリプト)を作成します。HUGOのプロジェクトフォルダに、fabfile.pyという名前のファイルを作成します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from contextlib import closing
from fabric.api import *
from fabric.sftp import SFTP

env.host_string = 'hostname_or_ip'
env.port = 22
env.user = 'id'
env.password = 'password'

def deploy():
  put('/local_directory/*', '/host_directory/')

あとは、HUGOでサイト作成のコマンド「hugo –theme=Crisp」を実行した後、「fab deploy(fabfile.pyのdeployメソッドの実行の意味)」で、サーバへのサイトファイルのアップロードが実行されます。

$ hugo --theme=Crisp
$ fab deploy

かなり更新作業が楽になりましたが、上記のコマンドも一つにまとめられれば、もう少し楽になります。コマンドを連結するだけで一回の操作で完了します。これでサイトの更新は、Sublime Textとターミナルの行き来の作業だけで完了します。

$ hugo --theme=Crisp && fab deploy
  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket