【发布时间】:2016-03-15 16:54:47
【问题描述】:
我在 AWS OpsWorks 中运行 chef 12 时遇到问题。
基本上,我在部署期间的一个部署方法会为每个部署的应用程序创建一个 NGINX-App.conf。这个很好用。
但是我想创建并运行这个模板只有当 NGINX 安装在服务器上时,如果我有一个实例而不把 webserver/nginx 放在那里。
我的 run_list 会这样:
- Nginx 包,nginx 服务已启用,已启动。
- 在部署 Nginx-app 的过程中会创建特定的 conf 文件。
我创建 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。
有人知道这里有什么问题吗?
问候, 安德烈斯
【问题讨论】:
标签: nginx chef-infra chef-recipe aws-opsworks