電気羊の執務室

魔法を作る仕事をしています。

chefのリポジトリ構成

chefの構成について

今回、DigitalOceanに仮想マシンを作り、 Angular.jsでサイトを作りたいです。 そのために、Vagrant+chefで構成管理をします。

毎度の事ですが、今回も失敗記です。

環境構築ふたたび

1年近く放っておいたので、Rubyアプリの常として、 バージョンは上がり、環境は崩れていました。

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フォルダを、各ノードのディレクトリに展開すると、 使い回しもでき、環境を濁らせないのでよいのでしょうか。

Comments