我在AWS OpsWorks中运行Chef 12时遇到问题。
基本上,部署期间我的部署配方之一会为部署的每个应用程序创建一个NGINX-App.conf。这个工作正常。
但是我希望创建并运行此模板只有在服务器上安装NGINX时,如果我有一个实例而没有放置webserver / nginx。
我的run_list希望如此:
我创建Nginx-app conf的方法如下:
template 'nginx.conf' do
path "/etc/nginx/conf.d/#{params[:something]}.conf"
source 'nginxapp.conf.erb'
cookbook 'nginx'
owner 'root'
group 'root'
mode 0644
notifies :reload, 'service[nginx]'
only_if { File.exists?('/usr/sbin/nginx') }
end
如果我添加“only_if”条件,则会失败,因为在此模板处理之前似乎没有安装Nginx。
如果我第二次运行它会正常工作,因为已经安装了nginx。
有人知道这里有什么不对吗?
此致 安德烈
答案 0 :(得分:0)
显然我让它像这样工作:
这种文件存在且条件正常,我不知道为什么......
使用其他菜谱中的模板是否与其他菜单之间的执行有关?