Chef ファイルの作成
提供: FreeBSD入門
スポンサーリンク
Chef でファイルを作成する方法を説明します。
目次
概要
Chefでファイルを作成するには、fileを使用します。
単にファイルを作成する
設定 recipes/default.rb
file "/tmp/foo.txt" do owner "root" group "wheel" mode "0600" action :create end
実行例
user@vm:~/cookbooks % sudo chef-solo -o test Starting Chef Client, version 11.6.0 [2013-12-07T20:42:13+09:00] WARN: Run List override has been provided. [2013-12-07T20:42:13+09:00] WARN: Original Run List: [] [2013-12-07T20:42:13+09:00] WARN: Overridden Run List: [recipe[test]] Compiling Cookbooks... Converging 1 resources Recipe: test::default * file[/tmp/foo.txt] action create - create new file /tmp/foo.txt - change mode from '' to '0600' - change owner from '' to 'root' - change group from '' to 'wheel' Chef Client finished, 1 resources updated
作成されたファイルを確認します。
user@vm:~/cookbooks % ls -l /tmp/foo.txt -rw------- 1 root wheel 0 Dec 7 20:42 /tmp/foo.txt
ファイルをコピーする
設定 recipes/default.rb
file "/tmp/foo.txt" do owner "root" group "wheel" mode "0600" action :create end file "/tmp/ls" do owner "root" group "wheel" mode "555" content ::File.open("/bin/ls").read action :create end
実行例
user@vm:~/cookbooks % sudo chef-solo -o test Starting Chef Client, version 11.6.0 [2013-12-07T20:47:26+09:00] WARN: Run List override has been provided. [2013-12-07T20:47:26+09:00] WARN: Original Run List: [] [2013-12-07T20:47:26+09:00] WARN: Overridden Run List: [recipe[test]] Compiling Cookbooks... Converging 2 resources Recipe: test::default * file[/tmp/foo.txt] action create (up to date) * file[/tmp/ls] action create - create new file /tmp/ls - update content in file /tmp/ls from none to 3f9278 (new content is binary, diff output suppressed) - change mode from '' to '0555' - change owner from '' to 'root' - change group from '' to 'wheel' Chef Client finished, 1 resources updated user@vm:~/cookbooks % cmp /tmp/ls /bin/ls user@vm:~/cookbooks % cmp /tmp/ls /bin/ls
テンプレートでファイルを作成する
設定ファイルを配布するような場合に使えます。 テンプレートのファイルは、erb(eruby)で作成します。
設定 recipes/default.rb
template "/tmp/bar.txt" do owner "root" group "wheel" mode "0444" source "bar.txt.erb" variables({ :msg => "Hoge" }) action :create end
テンプレートファイル templates/default/bar.txt.erb
<%= @msg %>
実行例
user@vm:~/cookbooks % sudo chef-solo -o test Starting Chef Client, version 11.6.0 [2013-12-07T20:57:37+09:00] WARN: Run List override has been provided. [2013-12-07T20:57:37+09:00] WARN: Original Run List: [] [2013-12-07T20:57:37+09:00] WARN: Overridden Run List: [recipe[test]] Compiling Cookbooks... Converging 1 resources Recipe: test::default * template[/tmp/bar.txt] action create - create new file /tmp/bar.txt - update content in file /tmp/bar.txt from none to 4ae3cc --- /tmp/bar.txt 2013-12-07 20:57:37.000000000 +0900 +++ /tmp/chef-rendered-template20131207-43558-1elh3ej 2013-12-07 20:57:37.000000000 +0900 @@ -0,0 +1 @@ +Hoge - change mode from '' to '0444' - change owner from '' to 'root' - change group from '' to 'wheel' Chef Client finished, 1 resources updated
作成されたファイルは、以下の通りです。
user@vm:~/cookbooks % cat /tmp/bar.txt Hoge
関連項目
- Chef
- Chef ファイルの作成
- Chef ディレクトリの作成
- Chefのインストール
- chef-solo Hello World
ツイート
スポンサーリンク