Alligator Swamp

技術メモ

Chefでdirectoryをrecursive trueで作成するときの注意点

階層の深いディレクトリを作成するとき、mkdir -pのように一気に作ろうとrecipeを作った。

directory '/home/user/foo/bar' do
    owner 'user'
    group 'user'
    mode '0755'
    recursive true
end

しかし、これだとownergroupmodeの指定が、一番深い階層のディレクトリ(bar)のみに適用され、中間のディレクトリ(foo)には適用されないので、以下のように書く必要がある。

%w[
    /home/user/foo
    /home/user/foo/bar
].each do |path|
    directory path do
        owner 'user'
        group 'user'
        mode '0755'
    end
end

公式ドキュメントにも書いてた。
http://docs.getchef.com/chef/resources.html#recursive-directories