makotan _at_ gmail dot com

knife bootstrapその2

というかメモ

knife bootstrap FQDN_or_IP_ADDRESS -i hoge.pem -x user --sudo -d DISTRO -N node_name 

ほとんどがsshの内容と同じでFQDN_or_IP_ADDRESSで特定してるのが違うだけ
一番大きい違いがDISTRO
配置するディレクトリは .chef/bootstrap/の下
ここにたとえば Ubuntu_1204.erbって言うのをおいて、-d Ubuntu_1204 を設定するイメージ
サンプルそのほかの内容は
https://github.com/opscode/chef/tree/master/lib/chef/knife/bootstrap
ここにあるので、これを参考にして足りない部分を追加して変更する

マニュアル読んでも上手くいかないこと

--run_listでroleとかを追加しようとしても上手くいかない
data_bagの暗号キーを設定しようとしても上手くいかない
などなど・・・

run_listは上記コマンドの直後に普通に knife node run_list add node_name "RUN_LIST" ってやれば反映される
data_bagは・・・頑張れ!(ぉぃ
knife.rbにsecret_file "/path/to/your/secret" こんな感じで上手くいったっけなぁ〜
environmentが設定されてないのははDISTROのファイルを直接書き換えたw

その後

直後にknife sshコマンドで sudo chef-clientを実行しようとしても検索に登録されるまでのタイムラグがあるみたいなので、スクリプト書いて成功するまでリトライ繰り返したらそのうち実行される

感想

この機能はEC2とChefを一緒に使って一番メリットを感じる機能なので、しっかりマニュアルとか書いてマニュアル読んだらそこそこ動くようにして欲しいなぁ〜って思った。
まぁまっさらのイメージからスタートすると準備完了まで数分以上かかるからある程度用意済みのAMI作るだろみたいな話もあるけどねw