Webアプリケーションのデプロイ方法を考えたけどダメダメだった件
perlのWebアプリケーションをデプロイする方法を考えてましたが、
納得いく方法ができずに残念なことに。
サーバ構成
- ①デプロイサーバ兼webサーバ
- ②デプロイ先webサーバ数台
問題点?
cpanm --installdeps したときに以下の問題が2点ほど。
- 既にモジュールがインストールされている場合、extlibに入らない
既に共有モジュールにインストールされているとextlibにインストールされないので
他サーバにrsyncするときにモジュール抜けが発生したり。
- バージョン指定してインストールが出来ない
最近mojoのバージョンが上がってテスト通らなくなったのでバージョン指定インストールしたくなりました。
これについてはあらかじめそのバージョンのtarをアプリ配下に置いておいて
cpanm --installdeps する直前に 指定インストールしてしまえばいいような気も。
残念な現状
extlibに入れる方法ではありません。*1
なのでデプロイサーバだけでテストしても
他サーバのテストにはならんよなぁ、という感じで微妙。
他の方法なども考えてる
CPAN::Packagerとか?でもこれはうまくrpm出来なくて断念。
または各サーバでデプロイサーバと同じことすればいい気もするけど、
Test::mysqld使ってるので全サーバにmysql本体を入れないといけいないのがどうかなーと。
でもまあこの方法が一番何も考えなくていい気もしてます。
複数サーバデプロイに関しても
Archerとかcapistranoも使ってみたかったけど、rsyncとrestartだけなので
自前スクリプト作ってNet::OpenSSHでデプロイしちゃってます。
でもなんかツール使ったほうがいいですよね。たぶん
*1:普通にcpanmで入れてる