一発で良いレシピは作れぬ
やっぱレシピ(Chef)を一発で本番サーバーに当てるのって難しいっすね。
いや、あてないとダメだろって話もありますが。
OSのバージョンそろえて、Vagrantで100回はロールバックして、saharaですら枯れそうになっても、やっぱりダメなときはダメだ!!!
手元Vagrant(VirtualBox)CentOS6、対向OpenVZのCentOS6、で揃えてやったけど、一発で通らなかった箇所を幾つか。
iptablesの罠
simple_iptablesがうまく動きませんでした。
まぁ、iptablesについてはLWRPでがんばらなくても、普通に書いたほうが見通し良いよな…って感じがいなめず。(そんなにPublicにむけて、サーバー毎に使うポートが後悔されるわけでもなし)
ntpの罠
openvzなので、ハードウェア時計が操作できません。
なので、ntpのインストールでコケます。
既存パッケージの罠
php-mysqlndでVagrantでは進めていたんですが、デプロイ先サーバーに、すでにphp-mysqlが入っててコンフリクトした。
これは、VagrantはminimalでVeeweeで作ったVMだったけど、本番の方は(サービスは止めてあったけど)yumでいれるだけはいれてあったやつだ。
こういうことを想定すると、パッケージを導入する直前に、サーバー側のパッケージをあらかた消して、リセットした方がいいかなあ…、とも思うんですけど、
でも「可動してるサーバーで」chefを実行する度に全部消すのはありえなくない?という感じになり、それに衝突するのはどうせmysqlndくらいだし〜、こいつだけ特別扱いするかーという感じになっており。
常識的にはどうやっているのかよくわからない…。
以上
メモなので、オチはない。
強いて言えば、OpenVZは準仮想化で、チョイチョイ変わった仕様になってるので、できないことがあるのを前もってちゃんと思い出しておきましょう、って感じですね。
しかし、冪等性、楽ですね!(こうやって途中で止まっても嘆き悲しまずに済む)
*1:調整したいポートがわかってれば、基本コマンドを覚えるだけなので…