Chefでよく使われるknifeコマンドですが、そのプラグインであるknife zeroを使ってレシピを適用する方法を紹介します。
knife zeroはknifeプラグインで、リモートnode上でchef-clientを実行するツールです。
リモートnodeとはchefを適用するサーバー(管理対象となるサーバー)のことです。
インストール
今回はGemfileに定義してインストールします。
1
2
| # Gemfile
gem 'knife-zero'
|
以下でインストールされます。
chefをリモートnodeにインストール
まずはchefをリモートnodeにインストールします。
以下のコマンドでインストールします。
1
| $ bundle exec knife zero bootstrap shoyan@server01.example.com --sudo
|
実行すると node/
配下にファイルが作成さます。
chef_environment
とrun_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
|