ダメSE uramonの奮闘記

インフラ関連技術など

【Chef Tips 4】 ディレクトリの設定

 ディレクトリを作成するには、directoryというResourceを使う。しかし、複数のディレクトリを作成したい場合、同じような構文を繰り返し定義するのは冗長である。

 そこで便利なのが、rubyの配列式。配列式を使った場合と使わなかった場合の例を以下に示す。

※配列式を使わなかった場合

directory "/opt/hoge"
  mode 00755
  owner "sample"
  group "sample"
  action :create
  recursive true
end

directory "/opt/fuga"
  mode 00755
  owner "sample"
  group "sample"
  action :create
  recursive true
end

 

※配列式を使かった場合

%w(hoge fuga).each do |dir|
  directory "/opt/#{dir}"
    mode 00755
    owner "sample"
    group "sample"
    action :create
    recursive true
  end
end

 

ポイント

  • 同一階層に作成するディレクトリを%w()にスペース区切りで定義する。