Shoyan blog

Knife Zeroを使ってレシピを適用する

Chefでよく使われるknifeコマンドですが、そのプラグインであるknife zeroを使ってレシピを適用する方法を紹介します。
knife zeroはknifeプラグインで、リモートnode上でchef-clientを実行するツールです。

リモートnodeとはchefを適用するサーバー(管理対象となるサーバー)のことです。

インストール

今回はGemfileに定義してインストールします。

1
2
# Gemfile
gem 'knife-zero'

以下でインストールされます。

1
$ bundle

chefをリモートnodeにインストール

まずはchefをリモートnodeにインストールします。
以下のコマンドでインストールします。

1
$ bundle exec knife zero bootstrap shoyan@server01.example.com --sudo

実行すると node/ 配下にファイルが作成さます。

chef_environmentrun_listを追加します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
  "name": "server01.example.com",
  "chef_environment": "production",
  "run_list": [
    “role[awesome_cookbook]"
  ],
  "normal": {
    "knife_zero": {
      "host": "server01.example.com"
    },
    "tags": [

    ]
  },
  "automatic": {
    "fqdn": "server01.example.com",
    "os": "linux",
    "os_version": "2.6.32-504.3.3.el6.x86_64",
    "platform": "centos",
    "platform_version": "6.4",
    "hostname": "server01.example.com",
    "ipaddress": “192.168.1.1",
    "roles": [

    ]
  }
}

リモートnodeにログインして、chefのコマンドが実行されていることを確認してみます。

1
2
3
4
$ ssh shoyan@server01.example.com

[shoyan@server01 ~]$ chef-[Tabを押す]
chef-apply   chef-client  chef-shell   chef-solo

レシピをリモートnodeに適用する

Chefを実行する準備ができました。
以下のコマンドでレシピをリモートnodeに適用します。

1
$ bundle exec knife zero converge 'fqdn:server01.example.com' -x shoyan

Comments