Use o recurso de diretório para criar o diretório antes de criar o modelo. O truque é também especificar o atributo recursive
, caso contrário, a ação falhará, a menos que todas as partes do diretório, mas a última, já existam.
config_dir = "#{node[:app][:deploy_to]}/#{node[:app][:name]}/shared/config"
directory config_dir do
owner node[:user][:username]
group node[:user][:username]
recursive true
end
template "#{config_dir}/database.yml" do
source "database.yml.erb"
...
end
Observe que owner
e group
do recurso de diretório são aplicados apenas ao diretório leaf quando ele está sendo criado. As permissões do resto do diretório são indefinidas, mas provavelmente serão root.root e qualquer que seja sua umask.