VagrantのCentOSにchefをインストール
VagrantのゲストOS上にchefをインストールし、簡単な動作を試してみます
環境
RHEL6.7(ホストOS)
CentOS6.7(ゲストOS) ※Vagrantで仮想環境を構築
ruby2.3.0p0 ※gemでインストールしている環境
Chef: 12.9.38
chefインストール
# gem install chef
いろいろなやり方があるかと思いますが、今回はgemでインストールしています
hello,worldを出力してみる
お決まりかもしれませんが、とりあえずこちらをやってみます
(1)クックブック格納用のディレクトリ作成
# mkdir /var/chef/ /var/chef/cookbooks
こちらはどこでもよいかと思いますが、自分が見ていた書籍のパスに合わせています
(2)クックブックの作成
「hello」がクックブック名、「/var/chef/cookbooks」がクックブックの出力先(-oオプション)となります
# knife cookbook create hello -o /var/chef/cookbooks WARNING: No knife configuration file found ** Creating cookbook hello in /var/chef/cookbooks ** Creating README for cookbook: hello ** Creating CHANGELOG for cookbook: hello ** Creating metadata for cookbook: hello # cd /var/chef/cookbooks # ls -l total 4 drwxr-xr-x 10 root root 4096 Apr 25 03:08 hello # cd hello/ # ls -l total 44 drwxr-xr-x 2 root root 4096 Apr 25 03:08 attributes -rw-r--r-- 1 root root 430 Apr 25 03:08 CHANGELOG.md drwxr-xr-x 2 root root 4096 Apr 25 03:08 definitions drwxr-xr-x 3 root root 4096 Apr 25 03:08 files drwxr-xr-x 2 root root 4096 Apr 25 03:08 libraries -rw-r--r-- 1 root root 274 Apr 25 03:08 metadata.rb drwxr-xr-x 2 root root 4096 Apr 25 03:08 providers -rw-r--r-- 1 root root 1448 Apr 25 03:08 README.md drwxr-xr-x 2 root root 4096 Apr 25 03:08 recipes drwxr-xr-x 2 root root 4096 Apr 25 03:08 resources drwxr-xr-x 3 root root 4096 Apr 25 03:08 templates
クックブック用のファイルが生成されます
(3)レシピを編集
# cd /var/chef/cookbooks/hello/recipes # vi default.rb # # Cookbook Name:: hello # Recipe:: default # # Copyright 2016, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # log "Hello,World!"
「Hello,Word!」の行を追加します
(4)ChefSoloの実行
「hello」がクックブック名(-oオプション)となります
# chef-solo -o hello
[2016-04-25T03:13:04+01:00] WARN: *****************************************
[2016-04-25T03:13:04+01:00] WARN: Did not find config file: /etc/chef/solo.rb, using command line options.
[2016-04-25T03:13:04+01:00] WARN: *****************************************
Starting Chef Client, version 12.9.38
[2016-04-25T03:13:09+01:00] WARN: Run List override has been provided.
[2016-04-25T03:13:09+01:00] WARN: Original Run List: []
[2016-04-25T03:13:09+01:00] WARN: Overridden Run List: [recipe[hello]]
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 1 resources
Recipe: hello::default
* log[Hello,World!] action write
Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 04 seconds
Hello,Wordが出力されています
特定のパッケージをインストールする
クックブックを使ってdovecotをインストールしてみます
手順に関してはほぼ先ほどと同じですが、クックブックの内容が異なります
dovecotにしたのは特に理由はありません(笑)
(1)クックブックの作成
# knife cookbook create dovecot -o /var/chef/cookbooks WARNING: No knife configuration file found ** Creating cookbook dovecot in /var/chef/cookbooks ** Creating README for cookbook: dovecot ** Creating CHANGELOG for cookbook: dovecot ** Creating metadata for cookbook: dovecot
(2)レシピを編集
# vi /var/chef/cookbooks/dovecot/recipes/default.rb package "dovecot" do action :install end
上記の3行を追加します
(3)ChefSoloの実行
# chef-solo -o dovecot [2016-04-25T05:03:59+01:00] WARN: ***************************************** [2016-04-25T05:03:59+01:00] WARN: Did not find config file: /etc/chef/solo.rb, using command line options. [2016-04-25T05:03:59+01:00] WARN: ***************************************** Starting Chef Client, version 12.9.38 [2016-04-25T05:04:04+01:00] WARN: Run List override has been provided. [2016-04-25T05:04:04+01:00] WARN: Original Run List: [] [2016-04-25T05:04:04+01:00] WARN: Overridden Run List: [recipe[dovecot]] Installing Cookbook Gems: Compiling Cookbooks... Converging 1 resources Recipe: dovecot::default * yum_package[dovecot] action install - install version 2.0.9-19.el6_7.2 of package dovecot Running handlers: Running handlers complete Chef Client finished, 1/1 resources updated in 18 seconds
dovecotがインストールされた旨の出力があります
(4)実際にインストールされているか確認
# rpm -qa | grep dovecot
dovecot-2.0.9-19.el6_7.2.x86_64
実際にインストールされていることが確認できます