[Vagrant & VirtualBox] Chef: Resources を少し確認する

recipes/default.rb に書く内容を確認します。

[markdown]
公式サイトのドキュメント。

> * [All about Chef … — Chef Docs](http://docs.getchef.com/)

Resources に記載されているコマンド?を利用してレシピを書いていきます。

## package

> * [Resources and Providers Reference — Chef Single-page Topics](http://docs.getchef.com/chef/resources.html#package)

“`ruby
package “vim-enhanced” do
action :install
end
“`

ruby スクリプトなので、こんな形でまとめてインストールできます。

“`ruby
%w{vim-enhanced git php mysql-server httpd}.each do |p|
package p do
action :install
end
end
“`

## service

> * [Resources and Providers Reference — Chef Single-page Topics](http://docs.getchef.com/chef/resources.html#service)

色々確認しながらでないと書けなさそう。

“`ruby
service “iptables” do
action [:stop, :disable]
end
service “httpd” do
action [:start, :enable]
end
“`

## template

> * [Resources and Providers Reference — Chef Single-page Topics](http://docs.getchef.com/chef/resources.html#template)

`site-cookbooks/****/templates/default/` 以下にテンプレートを配置。
`recipes/default.rb` にこんな記述をすると書き換わります。

“`ruby
template “httpd.conf” do
path “/etc/httpd/conf/httpd.conf”
source “httpd.conf.erb”
mode 0644
notifies :restart, ‘service[httpd]’
end
“`

ちなみ `/var/chef/backup/` 以下に5世代までのバックアップを自動で取ってくれています。
ファイルには変数を持たせることもできました。

> * [Chef: 用意したテンプレートを設定ファイルとして利用する | deadwood](https://www.d-wood.com/blog/2014/09/30_6949.html)

## bash

シェルスクリプトを実行できます。

> * [Resources and Providers Reference — Chef Single-page Topics](http://docs.getchef.com/chef/resources.html#bash)

これで書けば、何とかなりそう。

“`ruby
bash “something” do
cwd “/vagrant/www”
code <<-EOH mkdir tmp ls > ./tmp/ls.txt
EOH
end
“`

ほかにもいろいろありますね。

> * [Chefレシピ逆引きメモ – Qiita](http://qiita.com/makoto_kw/items/53a84380559c087eb8fb)
[/markdown]