chef - レシピの基礎(2)
コマンドを実行する
execute リソースを使います
execute "do command" do command "foo bar" end
packageリソースなどとは異なり、冪等性(何度操作しても
同じ状態となる性質)が確保されません。
not_if / only_if などで制御する必要があります。
execute "do foo bar if unlocked" do command "foo bar" not_if { ::File.exist? "locked_file" } end
サーバ毎に違う設定ファイルを配布したい
template リソースを使います。
template "/etc/yum.repos.d/CentOS-Base.repo" do end
上記は、
1. templates/default フォルダ以下の CentOS-Base.repo.erb
をテンプレートファイルとして用意
2. /etc/yum.repos.d/CentOS-Base.repo としてコピー。
を行います。
テンプレートはERBで、Rubyの変数や式を使うことができ、
コピー後は<%= %> は評価された値となります。
テンプレートの例
[base] name=CentOS-$releasever - Base baseurl=<=% node["centos"]["baseurl"]%>
attributesまたはnode json ファイルで、パラメータを設定します。
{ "centos": { "baseurl": "http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/" } }
テンプレートのファイル名を変更したい場合は、source属性を使います。
template "/etc/resolv.conf" do source "resolv_linux.conf.erb" end
インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門
- 作者: みやたひろし
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/12/27
- メディア: 大型本
- この商品を含むブログ (3件) を見る