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
書籍更新情報
2016-10-21
Pythonによる科学技術計算 基礎編
PDF版の販売を開始しました。
販売ページはこちら

2016-09-09
Pythonによる科学技術計算 基礎編
1.2版への更新が可能になりました。
サポートページはこちら
電子書籍
Pythonによる科学技術計算 基礎編
Kindle ストア、Leanpubで販売中です
Pythonによる科学技術計算 基礎編
PDF版の販売はこちら
同人誌
技術書典(2016/6/25)
Emacs/org-modeのPDF作成術
電子版をBOOTHで販売中です
Emacs/org-modeのPDF作成術
Share