Apacheをchef経由でインストールできるようにする
運用管理ツール?「Chef」をいろいろ使ってみますの続きです。
Apacheをchef経由でインストールできるとこまでがんばりたいです。
復習
前回やったとこは、以下のことです。
- Chef-Clientをインストール
- Chef-Serverをインストール
- Chef-Serverを動かしてChef-Server-Webuiから動作できることを確認
- COOKBOOKのサンプルを作る
- Roleのサンプルを作る
なので以下のコマンドをうつと結果がかえってきます。
$ knife role show example { "name": "example", "description": "Example role for the chef repository", "json_class": "Chef::Role", "default_attributes": { }, "override_attributes": { }, "chef_type": "role", "run_list": [ "recipe[zsh]", "recipe[screen]", "recipe[git]" ] }
nodeにrun_listを追加する
どうもこのままではchef-clientを実行しても実行されないようです。
なのでnodeにrun_listを追加してみます。
$ chef-client #=> Node sptross1 has an empty run listと出力される $ knife node list #=> nodeの確認 [ "sptoss1" ] $ knife node show sptoss1 -r #=> nodeのrun_list一覧確認 { "run_list": [ ] } $ knife node run_list add sptoss1 "role[example]" { "run_list": [ "role[example]" ] } $ chef-client #=> ERROR発生
とりあえずchef-clientが何かできるようになったようです。
nodeからrun_listを削除
一回run_listを消してみます。これはただのテストというか試してみたいだけです。
$ knife node run_list remove sptoss1 role[example] { "run_list": [ ] }
いちいちjsonを返してくれるあたりが素敵です。
nodeの作成/削除
knifeコマンドが気になって仕方がなくなってきたのでnodeの作成/削除もテストしておきます。
$ knife node create pochi --editor=emacs #=> nodeの設定ファイルが開くのでデフォルトのまま保存 Created(or updated) node[pochi] $ knife node list [ "sptoss1", "pochi", ] $ knife node delete pochi #=> 確認コンフォームが出てくるので"y"を入力 Deleted node[sysmngra]! $ knife node list [ "sptoss1" ]
knifeコマンドマスタ
- knife node list
- nodeの一覧を返す
- knife node show #{node_name} [OPTIONS]
- node_nameで指定したnodeの情報を返す
- -rオプションを利用するとrun_listのみ返す
- knife node run_list remove #{node_name} #{role_name}
- node_name内のrole_nameをrun_listから削除する
- knife node create #{node_name} [OPTIONS]
- kinfe node delete #{node_name}
- nodeを削除する
- knife node edit #{node_name} [OPTIONS]
- knife role list
- roleの一覧を返す
- knife role create #{role_name} [OPTIONS]
- knife role delete #{role_name}
- role_nameで指定したroleを削除する
- knife role show #{role_name} [OPTIONS]
- role_nameで指定したroleの詳細を返す
- knife role edit #{role_name} [OPTIONS]
- knife cookbook list
- cookbookの一覧を返す
- uploadしてないCOOKBOOKは表示されない(管理対象でない)
- knife cookbook show #{cook_book} [OPTIONS]
- cook_bookで指定した情報を返してくれる。何もOPTIONを指定しないと多分cook_bookのバージョンしかでない
- バージョンを指定すると結構細かい情報が返される。
- バージョン指定かつJSONのキーを指定するとそれに対応した値をかえす
- knife cookbook create #{cook_book}
- cook_bookで指定したCOOKBOOKを作成する
- knife cookbook upload -o #{cook_book_dir}
- OPTION: -s => chef-serverのURL
- OPTION: -u => ユーザを指定
- OPTION: -o => COOKBOOKのディレクトリ
- OPTION: -a => 対象ディレクトリ以下全てのCOOKBOOKを登録する
- knife cookbook delete #{cook_book} VERSION
- cook_bookで指定されたcookbookを削除する
- -yオプションつけると確認聞かれない