トップ «前の日記(2016/05/05 (木) こどもの日) 最新 次の日記(2016/05/07 (土) )» 編集 RSS feed

HsbtDiary


2016/05/06 (金) [長年日記]

hsbt.org を xenial(16.04) にした

azure の linux vm として稼働させている hsbt.org を ubuntu trusty(14.04) から xenial(16.04) にアップグレードした。

アップグレードと言っても do-release-upgrade を使うというような手段ではなく、新しく vm を作って動かしているアプリケーションをせっせと引越しする式年遷宮タイプで実施。というのも、azure も 2 年経って、vm のタイプが 仮想マシン(classic) と仮想マシンというような新しいタイプのものが登場していて、この機会に新しいタイプに置き換えてしまいたかったというのが主な理由。あとは、引越しの機会で動かしているアプリケーションの動かし方などを刷新するというのも大きい。

動かしているアプリケーションは以下の4つだけ。

  • tDiary ( nginx + apache2 + fastcgi + ruby)
  • hiki (nginx + apache2 + ruby)
  • atig (systemd + ruby)
  • tiarra (systemd + ruby)

他には、nginx で使う証明書を更新するために letsencrypt も動くようにするというのと、rbenv を動かすのを直接ではなく anyenv 経由に変えたというあたり。

atig と tiarra は type=simple な雑な systemd の unit ファイルを作成してデーモン化した。

[Unit]
Description=atig

[Service]
User=hsbt
Type=simple
ExecStart=/home/hsbt/.anyenv/envs/rbenv/shims/atig --tmpdir=/var/tmp
ExecStop=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

この辺、daemontools とか入れなくてもいい感じにデーモンにできるのが良い。

あとは、ruby の trunk をビルドするために build-essential, bison, autoconf, libssl-dev, libreadline-dev, zlib1g-dev を入れてから、fcgi 用に libfcgi-dev, libapache2-mod-fcgid を apt でインストール。fcgid はインストールと同時に a2enmod されるけど、tDiary を動かすために使っている mod_rewrite は有効になってないので a2enmod rewrite してから apache を再起動。

nginx/apache は trusty で使っていた conf をそのまま sites-available に突っ込んでから a2ensite したり ln -s したりして反映。nginx, apache のパッケージで提供される conf を直接変更する必要があるものをいくつか変更してから、データディレクトリを雑に scp で転送して終わり。割とポータブルになっている。

azure の SG で http, https, tiarra 用のポートをそれぞれ開けてから、動作チェックをいくつかしてから DNS を切り替えて引越しは完了。数時間その状態で過ごして、日記も書けるなというのを確認してから trusty の vm とストレージを削除した。

これでまた 2 年乗り切ろう。