Fabricを使ってサイト更新を自動化する
ターミナル上でアップロード作業をしたい
サイトのページを作成して、サーバにアップロードする際、FileZillaなどのFTPクライアントは良く出来ているので、不便は無いのですが、HUGOでのサイト作成作業は、ほぼ、Sublime Textとターミナルでの作業になるので、サーバへのアップロードもターミナルで出来た方が便利です。
色々なツールがありますが、FabricとNcFTPを調べてみました。Fabricが簡単そうなので、試してみます。
- Fabric
- Python (2.5-2.7) library and command-line tool for streamlining the use of SSH
- NcFTP Client
- set of FREE application programs implementing the File Transfer Protocol (FTP)
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
About the author and the blog
Masayuki Ariki is a Hobby Programmer and an not enthusiastic blogger, curious about any Python modules, Deep learning, and the web. More...