【Chef】サーバー(vagrantの仮想マシン)に直接ログインしてchef-soloを実行する

サーバー(vagrantの仮想マシン)に直接ログインしてchef-soloを実行する

vagrant ssh

vagrant上でchef-soloのインストール

[vagrant@localhost ~]$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
[vagrant@localhost ~]$ chef-solo -v
Chef: 12.5.1

dstatというcookbookを作成

[vagrant@localhost cookbooks]$ sudo knife cookbook create dstat -o /var/chef/cookbooks
WARNING: No knife configuration file found
** Creating cookbook dstat in /var/chef/cookbooks
** Creating README for cookbook: dstat
** Creating CHANGELOG for cookbook: dstat
** Creating metadata for cookbook: dstat

dstatをインストールするレシピ追加

[vagrant@localhost cookbooks]$ sudo vi /var/chef/cookbooks/dstat/recipes/default.rb
#
# Cookbook Name:: dstat
# Recipe:: default
#
# Copyright 2015, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
package "dstat" do
  action :install
end

chef-solo実行(hello, dstatというcookbookを実行)

$ sudo chef-solo -o hello,dstat
[2015-10-10T08:47:10+00:00] WARN: *****************************************
[2015-10-10T08:47:10+00:00] WARN: Did not find config file: /etc/chef/solo.rb, using command line options.
[2015-10-10T08:47:10+00:00] WARN: *****************************************
Starting Chef Client, version 12.5.1
[2015-10-10T08:47:11+00:00] WARN: Run List override has been provided.
[2015-10-10T08:47:11+00:00] WARN: Original Run List: []
[2015-10-10T08:47:11+00:00] WARN: Overridden Run List: [recipe[hello], recipe[dstat]]
Compiling Cookbooks...
Converging 2 resources
Recipe: hello::default
  * log[hello world] action write

Recipe: dstat::default
  * yum_package[dstat] action install
    - install version 0.7.0-2.el6 of package dstat

Running handlers:
Running handlers complete
Chef Client finished, 2/2 resources updated in 05 seconds

結果として、vagrantの仮想マシン上にyumでdstatがインストールされた。

通常は、このようにサーバーにわざわざログインしてchef-solo実行はしない。
knife-soloが、手元で作ったクックブックをリモートのサーバに転送してchef-soloコマンドを実行してくれる。