chefの構成について
今回、DigitalOceanに仮想マシンを作り、 Angular.jsでサイトを作りたいです。 そのために、Vagrant+chefで構成管理をします。
毎度の事ですが、今回も失敗記です。
環境構築ふたたび
1年近く放っておいたので、Rubyアプリの常として、 バージョンは上がり、環境は崩れていました。
- vagrant upしようとしたら、stdin: is not a ttyが出た -- githubのフォーラムを見て対処
rbenvからの入れなおしになり、 net-sshがRuby2.0以降を指定するため、 ついでにRubyのバージョンも2.2.2に上げることに。
chefはchefDKに
こないだインストールした気もしますが、 chefDKをダウンロードして実行。
- chefDKを入れた時のお約束 -- .zprofileに、export PATH=/opt/chefdk/bin:$PATHを追加
- berkshelfが見つからない -- stackOverflowのフォーラムを見て解決。最終的に、berkshelfはchefDKの組み込みgemを使うことに。
knife soloはおさらば
Unable to activate knife-solo-0.5.1, because net-ssh-3.0.2 conflicts with net-ssh
chefDKの最新環境では、net-sshはv3.0.2必須。 2.9.4も、別途インストールはされている。 しかし、knife soloのどこかで、net-sshは2.7~3.0を指定されている。 3.0.2をアンインストールすると『knife-soloはnet-ssh3.0.2必須!』と怒られ。
Gemfileとかに器用な事を書いて切り抜けられる技量がないので、 この矛盾を解消できなかった。
よって、knife soloはあきらめました。
knife zeroで行きましょう
この時点で3日め。 knife zeroで環境構築。
chefリポジトリは、新しく作るの辛かったので、前回作りまくったchef-repoにシンボリックリンクを張り、vagrant-digitaloceanフォルダ-> chef-repoフォルダの構成に。
しかし、chefプロビジョンは、vagrantフォルダからchef-repoフォルダに移動しないとうまく行きません。 面倒だし、できれば1ノード1フォルダで完結するような管理がしたいです。
chefリポジトリは、githubから
ローカルのcookbookはコピーと割り切り、 github上のchef-repoフォルダを、各ノードのディレクトリに展開すると、 使い回しもでき、環境を濁らせないのでよいのでしょうか。