IT井戸端会議

IT井戸端会議

インフラ、ネットワーク、アプリケーション開発、IT界隈の話等々を東京都千代田区界隈から発信します。

chef-soloにてyum実行

開発環境

OS:CentOS6.6(64bit) ruby:2.2.2p95 rubygems:2.4.5

 

knife-soloをインストール

$ gem install knife-solo

 

リポジトリ(キッチン)をカレントディレクトリにchef-repoの名前で作成

$ knife solo init chef-repo
Creating kitchen...
Creating knife.rb in kitchen...
Creating cupboards...
$ ls  ./chef-repo
total 24
drwxr-xr-x. 2 root root 4096 Jul 3 16:00 cookbooks
drwxr-xr-x. 2 root root 4096 Jul 3 16:00 data_bags
drwxr-xr-x. 2 root root 4096 Jul 3 16:00 environments
drwxr-xr-x. 2 root root 4096 Jul 3 16:00 nodes
drwxr-xr-x. 2 root root 4096 Jul 3 16:00 roles
drwxr-xr-x. 2 root root 4096 Jul 3 16:00 site-cookbooks

chef-soloコマンドの設定ファイルを設定※デフォルト

$ mkdir /etc/chef
$ vi /etc/chef/solo.rb

solo.rbの中身

cookbook_path ["/root/chef-repo/cookbooks"]

cookbookをyum_tesetの名前で作成

$ cd ./chef-repo
$ knife cookbook create yum_test -o ./cookbooks
** Creating cookbook yum_test in /root/chef-repo/cookbooks
** Creating README for cookbook: yum_test
** Creating CHANGELOG for cookbook: yum_test
** Creating metadata for cookbook: yum_test
$ ls -l ./cookbooks/yum_test/
total 44
drwxr-xr-x. 2 root root 4096 Jul 3 16:05 attributes
-rw-r--r--. 1 root root 459 Jul 3 16:05 CHANGELOG.md
drwxr-xr-x. 2 root root 4096 Jul 3 16:05 definitions
drwxr-xr-x. 3 root root 4096 Jul 3 16:05 files
drwxr-xr-x. 2 root root 4096 Jul 3 16:05 libraries
-rw-r--r--. 1 root root 280 Jul 3 16:05 metadata.rb
drwxr-xr-x. 2 root root 4096 Jul 3 16:05 providers
-rw-r--r--. 1 root root 1464 Jul 3 16:05 README.md
drwxr-xr-x. 2 root root 4096 Jul 3 16:05 recipes
drwxr-xr-x. 2 root root 4096 Jul 3 16:05 resources
drwxr-xr-x. 3 root root 4096 Jul 3 16:05 templates

epelをyumにてインストールするrecipeを作成

$ vi ./cookbooks/yum_test/recipe/default.rb

default.rbの中身

#
# Cookbook Name:: yum_test
# Recipe:: default
#
# Copyright 2015, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#

yum_package "epel-release" do
 action :install
end

chefの実行(レシピ指定)

※cookbookがyum_testで実行するレシピがdefault.rbの場合

$ chef-solo -o yum_test::default
Starting Chef Client, version 12.4.0
[2015-07-03T16:15:31+00:00] WARN: Run List override has been provided.
[2015-07-03T16:15:31+00:00] WARN: Original Run List: []
[2015-07-03T16:15:31+00:00] WARN: Overridden Run List: [recipe[yum_test::default]]
Compiling Cookbooks...
Converging 1 resources
Recipe: yum_test::default
 * yum_package[epel-release] action install
 - install version 6-8 of package epel-release

Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 6.271077625 seconds

再度実行すると既にインストールされているので下記となる

$ chef-solo -o yum_test::default
Starting Chef Client, version 12.4.0
[2015-07-03T16:17:55+00:00] WARN: Run List override has been provided.
[2015-07-03T16:17:55+00:00] WARN: Original Run List: []
[2015-07-03T16:17:55+00:00] WARN: Overridden Run List: [recipe[yum_test::default]]
Compiling Cookbooks...
Converging 1 resources
Recipe: yum_test::default
 * yum_package[epel-release] action install (up to date)

Running handlers:
Running handlers complete
Chef Client finished, 0/1 resources updated in 6.735517023 seconds

 

chefの実行(jsonから)

test.jsonの中身

{

    "run_list": [
      "recipe[yum_test::default]"
    ]
}

chefの実行

$ chef-solo -j test.json
Starting Chef Client, version 12.4.0
Compiling Cookbooks...
Converging 1 resources
Recipe: yum_test::default
 * yum_package[epel-release] action install
 - install version 6-8 of package epel-release

Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 6.347717699 seconds