execute resouceを使った。
ufw enable と ufw allow sshしている。
sshでufw enableしようとすると、sshのコネクションが切れるかもしれないけどいい?(y|n) みたいな確認をしてくるので、パイプでyesを渡してやっている。
手元でvagrant使って試したらこれでいけたけど、allow sshが先に実行されるようにしたほうがいいのかもしれない。
chefはknifeとかcookbookとかの用語とDSLで、学習コストを飛躍的に高めてしまっていると思う。
2013年8月11日日曜日
2013年6月4日火曜日
chef-solo使い始める
さくらのVPSで使ってるUbuntuをまた壊してしまって直らない。
それならいっそ何度再インストールしようが痛くないようにchef使っておくことにした。
knife-soloを入れる。
Chefレポジトリを作成する。
作成はされたけどwarningが出てた。
設定しておく。
とりあえず練習を兼ねてnginx用のクックブックを作る。
site-cookbooks/nginx/recipes/default.rbを編集して、
クライアント側からサーバーにchefをインストールさせることができる。
この時のユーザーはsudoできるユーザーじゃないといけない(たぶん)。
上の例だとクライアント側のnodesフォルダ内にhost.jsonっていうJSONファイルが生成されているはず。
こいつを編集してやって、どのレシピを使うかを指定する。
そしてサーバーにレシピを適用する。
ここまで正しくできてればnginxがインストールされる。
同じように他のレシピも作っていく。
それならいっそ何度再インストールしようが痛くないようにchef使っておくことにした。
knife-soloを入れる。
% gem install knife-solo
何故かやたら時間かかった。Chefレポジトリを作成する。
% knife solo init chef-repo
作成はされたけどwarningが出てた。
WARNING: No knife configuration file found
設定しておく。
% knife configure
色々聞かれたけどとりあえずreturnを連打してデフォルト設定にした。とりあえず練習を兼ねてnginx用のクックブックを作る。
% cd chef-repo
% knife cookbook create nginx -o site-cookbooks
そうすると site-cookbooks以下にnginxフォルダとか出来る。site-cookbooks/nginx/recipes/default.rbを編集して、
package "nginx" do
action :install
end
とか書くと、サーバーにこのレシピを適用したときにOSの違いとか吸収してnginxをインストールしてくれるはず。クライアント側からサーバーにchefをインストールさせることができる。
knife solo prepare user@host
sshと同じように -i とか -pとか -Pを付けて実行できる。この時のユーザーはsudoできるユーザーじゃないといけない(たぶん)。
上の例だとクライアント側のnodesフォルダ内にhost.jsonっていうJSONファイルが生成されているはず。
こいつを編集してやって、どのレシピを使うかを指定する。
{"run_list":[]}
とかなってると思うので、こうする。{"run_list":["nginx"]}
そしてサーバーにレシピを適用する。
% knife solo cook user@hoge
prepareの時と同じで、ここでもsshで接続するときと同じようにオプションを指定する。ここまで正しくできてればnginxがインストールされる。
同じように他のレシピも作っていく。
登録:
投稿 (Atom)