Hosted Chefを使ってみる

サーバがインターネットに接続可能でChefサーバを建てるまではないけど、少しChefサーバを使ってみたいというようなときにHosted Chefが便利なので使ってみました。
Chef 12のオープンソース版と25ノード制限について を見ると、5ノードまでは問題なく使えるようなのでちょっとした確認には使うことが出来ます。
アカウントが無い場合はStart your free trial of hosted Chef から作ることが出来ます。
以降はログインが完了している前提で記載しています。

HOSTED CHEFでの設定

Administration -> Organazationを選択します。

f:id:clavier:20150611231433p:plain

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 を選択することで確認出来ます。

f:id:clavier:20150611231458p:plain