Nikola で作成した Web サイトを S3 にデプロイ

Nikola で作成した Web サイトをホスティング・公開するなら Amazon S3 を使うのが簡単です。 今回は Nikola から S3 にデプロイする方法について覚え書き。

s3cmd で S3 にデプロイ

独自ドメイン取得から S3 の設定まではできていると想定します。 (この辺りは後日簡単にまとめようと思います。)

Debian 系の Linux なら、s3cmd は apt からインストールできます。

sudo apt-get install s3cmd

まずは s3cmd の設定をします。以下のコマンドを実行します。

s3cmd --configure

ここで S3 で作成したアクセスキーとシークレットキーを設定します。

あとは conf.py の DEPLOY_COMMANDS で s3cmd を設定すれば ok です。

DEPLOY_COMMANDS = {
 'default': [
     "s3cmd sync -r --no-mime-magic --delete-remove output/ s3://org-technology.com/",
 ]
}

注意点は、オプションに --no-mime-magic をつけることです。 そうしないと、デプロイした際にファイルの MIME タイプが変更されてしまい、css が読み込まれません。 これについては 以下の issue に情報がありました。

https://github.com/s3tools/s3cmd/issues/198

conf.py の設定まで終れば、あとはコンソールから以下のコマンドを実行するだけで S3 にデプロイできます。

nikola deploy

ping コマンドの設定

デプロイと一緒にバックアップや ping をしたい場合は DEPLOY_COMMANDS にコマンドを追加します。 ここでは ping コマンドの導入について紹介します。 Nikola では ping の プラグイン が公開されているので、まずはプラグインをコマンドからインストールします。

nikola plugin -i ping

あとは conf.py に ping 送信先を設定し、

PING_XMLRPC_SERVICES = [
   "http://blogsearch.google.com/ping/RPC2",
   "http://blogsearch.google.co.jp/ping/RPC2",
   "http://rpc.pingomatic.com/",
]

PING_GET_SERVICES = [
   "http://www.bing.com/webmaster/ping.aspx?sitemap={0}".format(SITE_URL+'sitemap.xml'),
   "http://www.google.com/webmasters/tools/ping?sitemap={0}".format(SITE_URL+'sitemap.xml'),
]

DEPLOY_COMMANDS を

DEPLOY_COMMANDS = {
 'default': [
     "s3cmd sync -r --no-mime-magic --delete-remove output/ s3://org-technology.com/",
     "nikola ping",
 ]
}

とすれば ok です。

コメント

Comments powered by Disqus
書籍更新情報
2017-02-18
Pythonによる科学技術計算 基礎編
1.4版への更新が可能になりました。
サポートページはこちら
電子書籍