Chef実践入門を実践してみる その5

ようやくknife-soloもインストール出来たので、
ローカル側にリポジトリを作成します。

リポジトリの作成

vagrantファイル 用にworkフォルダを作成していたので、
移動して、以下のコマンドを打ちます。

$ knife solo init .

インストールが走り、終了後該当ディレクトリを確認しました。

$ ls -la
total 24
drwxr-xr-x  13 momo  staff   442  3  5 22:19 .
drwxr-xr-x+ 32 momo  staff  1088  3  5 22:18 ..
drwxr-xr-x   3 momo  staff   102  3  5 22:19 .chef
-rw-r--r--   1 momo  staff    12  3  5 22:19 .gitignore
drwxr-xr-x   3 momo  staff   102  2 26 18:56 .vagrant
-rw-r--r--   1 momo  staff    35  3  5 22:19 Berksfile
-rw-r--r--   1 momo  staff  3022  2 26 18:56 Vagrantfile
drwxr-xr-x   3 momo  staff   102  3  5 22:19 cookbooks
drwxr-xr-x   3 momo  staff   102  3  5 22:19 data_bags
drwxr-xr-x   3 momo  staff   102  3  5 22:19 environments
drwxr-xr-x   3 momo  staff   102  3  5 22:19 nodes
drwxr-xr-x   3 momo  staff   102  3  5 22:19 roles
drwxr-xr-x   3 momo  staff   102  3  5 22:19 site-cookbooks

作成されました。

knife-soloを使用して、
以前作成していた仮想サーバ(webdb)へ、chef-soloのインストールを実施してみます。
(実際は既にインストール済みのため、上書きされます)

$ knife solo bootstrap webdb
Bootstrapping Chef...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20507  100 20507    0     0  21942      0 --:--:-- --:--:-- --:--:-- 64895
el 6 i386
Getting information for chef stable 12.19.36 for el...
downloading https://omnitruck-direct.chef.io/stable/chef/metadata?v=12.19.36&p=el&pv=6&m=i386
〜中略〜
[2017-03-05T13:24:48+00:00] INFO: Report handlers complete
Chef Client finished, 0/0 resources updated in 02 seconds

インストールされました。

クックブックの作成

自分のローカルにcookbookを作成します。
自作のcookbookは先ほど確認したsite-cookbooks配下に配置するのが慣習とのことなので、
慣習に則りdstatというcookbookを作成してみます。

$ knife cookbook create dstat -o site-cookbooks
$ ls -la site-cookbooks/
total 0
drwxr-xr-x   4 momo  staff  136  3  5 22:30 .
drwxr-xr-x  12 momo  staff  408  3  5 22:24 ..
-rw-r--r--   1 momo  staff    0  3  5 22:19 .gitkeep
drwxr-xr-x  13 momo  staff  442  3  5 22:30 dstat

dstatというcookbookが作成されたことが分かります。

レシピの作成

先ほど作成したcookbook/dstat配下に、デフォルトのレシピがあるため、
更新してみます。

$ vi site-cookbooks/dstat/recipes/default.rb
#
# Cookbook Name:: dstat
# Recipe:: default
#
# Copyright 2017, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
package "dstat" do
 action :install
end

パッケージのdstatをインストールするレシピを作成しました。

ノードの作成

chefで管理するサーバのことを「ノード」と呼ぶとのこと。
ノードの状態を設定するファイルがあるため、
その設定ファイルに先ほど作成したレシピを実行する記述を記載します

$ vi nodes/webdb.json
{
  "run_list": [
	"recipe[dstat]"
  ],
  "automatic": {
    "ipaddress": "webdb"
  }
}

run-listはそのノードに適用されるべきレシピを記載します。

実行してみる。

$ knife solo cook webdb
Running Chef on webdb...
Checking Chef version...
〜中略〜
Chef Client finished, 0/1 resources updated in 03 seconds

正しく実行されました。
今回はスムーズ。。。

今日はここまで。