Hosted Chefを使ってみる
サーバがインターネットに接続可能でChefサーバを建てるまではないけど、少しChefサーバを使ってみたいというようなときにHosted Chefが便利なので使ってみました。
Chef 12のオープンソース版と25ノード制限について を見ると、5ノードまでは問題なく使えるようなのでちょっとした確認には使うことが出来ます。
アカウントが無い場合はStart your free trial of hosted Chef から作ることが出来ます。
以降はログインが完了している前提で記載しています。
HOSTED CHEFでの設定
Administration -> Organazationを選択します。
knife.rbの作成
Generate Knife Configを選択すると、kinife.rbが ダウンロード出来ます。
validation_keyのダウンロード
Reset Validation Keyを選択すると、kinife.rbのvalidation_keyにOrganazation名書かれているpemファイル(Organazation名-validator.pem)がダウンロード出来ます。
client_keyのダウンロード
Account Management画面でPassword and Keyのタブを選択して、 Get a New Keyを選択するとpemファイル(ユーザ名.pem)がダウンロード出来ます。
WORKSTATIONでの作業
Starter Kitのダウンロード
CookBookのアプロードやRoleの作成などをWorkStationとして実施するための環境を整えるためにStarter Kitをダウンロードします。 左側のメニューに有るStarter Kitを選択するとダウンロード出来ます。 settings ディレクトリを作成して、kinife.rbとvalidation_key、client_keyを移動します。
これらを実行すると以下の様な構成になります。
. ├── README.md ├── settings │ ├── Organazation名-validator.pem │ ├── ユーザ名.pem │ └── knife.rb ├── cookbooks │ ├── chefignore │ └── starter │ ├── attributes │ │ └── default.rb │ ├── files │ │ └── default │ │ └── sample.txt │ ├── metadata.rb │ ├── recipes │ │ └── default.rb │ └── templates │ └── default │ └── sample.erb └── roles └── starter.rb
コミュニティCookBookの追加
この状態でsettingsディレクトリでkinife listコマンドを実行する以下のように表示されます。
$ knife client list Organazation名-validator
chef-repoをgitの管理下にします。
chef-repo$ git init . chef-repo/.git/ chef-repo$ git add . chef-repo$ git commit -m "Initial commit" 11 files changed, 230 insertions(+) create mode 100644 README.md create mode 100644 settings/Organazation名-validator.pem create mode 100644 settings/ユーザ名.pem create mode 100644 settings/knife.rb create mode 100644 cookbooks/chefignore create mode 100644 cookbooks/starter/attributes/default.rb create mode 100644 cookbooks/starter/files/default/sample.txt create mode 100644 cookbooks/starter/metadata.rb create mode 100644 cookbooks/starter/recipes/default.rb create mode 100644 cookbooks/starter/templates/default/sample.erb create mode 100644 roles/starter.rb
コミュニティCookbookのgetting-startedを追加します。
chef-repo$cd settings chef-repo/settings$ knife cookbook site install getting-started ...省略... Cookbook getting-started version 0.4.0 successfully installed
Cookbookのアップロード
Cookbookをアップロードします。
chef-repo/settings$ knife cookbook upload --all ERROR: Chef::Exceptions::MetadataNotValid: Cookbook loaded at path(s) [/home/clavier/Dev/chef/chef-repo/cookbooks/getting-started] has invalid metadata: The `name' attribute is required in cookbook metadata
meatadata.rbやmetadata.jsonにnameの項目がないので、以下の内容を追加します。
chef-repo/settings$ vim ../cookbooks/getting-started/metadata.rb name 'getting-started'
再度、Cookbookをアップロードします。
chef-repo/settings$ knife cookbook upload --all Uploading getting-started [0.4.0] Uploading starter [1.0.0] Uploaded all cookbooks.
アップロードが完了したCookbookは Policy -> Cookbooks を選択することで確認出来ます。