ページ

2013年6月4日火曜日

chef-solo使い始める

さくらのVPSで使ってるUbuntuをまた壊してしまって直らない。
それならいっそ何度再インストールしようが痛くないように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がインストールされる。
同じように他のレシピも作っていく。

0 件のコメント:

コメントを投稿