我在OpsWorks Stack中有标准的PHP层。
这一层有两个应用程序:
应用程序在相同的服务器上运行。
我的部署配方有一个git repo。一切正常。
但现在我需要为每个应用程序个性化部署配方。
例如:
现在,我只有在所有已部署的应用程序中运行的配方。我如何个性化我的部署配方,以不同的方式运行不同的应用程序?
提前谢谢
编辑:这是我想做的事情:
node[:deploy].each do |app_name, deploy|
[IF APPLICATION ONE (how can i grab application variable?)]:
script "change_permissions" do
interpreter "bash"
user "root"
cwd "#{deploy[:deploy_to]}/current"
code <<-EOH
chmod -R 777 uploads
mv .htaccess_production .htaccess
EOH
end
[ELSE IF APPLICATION 2]:
script "change_permissions" do
interpreter "bash"
user "root"
cwd "#{deploy[:deploy_to]}/current"
code <<-EOH
chmod -R 755 uploads
rm .htaccess_production
EOH
end
end
答案 0 :(得分:1)
如果您只应用两个应用程序设置,请尝试将其设置为默认设置,并使用chef标签或节点属性来执行切换案例。我也有使用环境变量来区分实现路线的经验,但如果更改在实例上是本地的,则可能没有必要。
现在,如果所涉及的更改很重要,您应该考虑将它们放在单独的配方中,并在交换机案例块中运行单独的配方。以后更容易维护。希望这会有所帮助。