2014-10-01 50 views
1

在使用CMS将网站部署到AWS OpsWorks实例时,我需要在上传目录等设置正确的权限。为了更容易地定制这些任务,我希望我的自定义厨师食谱只需运行部署应用程序根目录下的.sh文件,而不必创建单独的食谱或使用自定义的主厨json。在OpsWorks中运行.sh文件来设置Chef的目录权限

当我运行这个时,bash的“deploy”任务似乎运行良好,但是.sh文件中的命令没有任何作用。在这种情况下,我正在使用Craft CMS部署一个站点。

这里是我的厨师食谱:

node[:deploy].each do |application, deploy| 
    bash "deploy" do 
    deploy_script = "#{deploy[:deploy_to]}/current/deploy.sh" 
    code "sh #{deploy_script}" 
    end 
end 

这里是sh文件:

sudo su 
chmod 774 craft/app/ 
chmod 774 craft/config/ 
chmod 774 craft/storage/ 
touch craft/test.txt 
exit 0 

回答

1

这些路径是相对的。很可能你需要设置你的bash资源的cwd

node[:deploy].each do |application, deploy| 
    bash "deploy" do 
    deploy_script = "#{deploy[:deploy_to]}/current/deploy.sh" 
    code "sh #{deploy_script}" 
    cwd "#{deploy[:deploy_to]}/current" 
    end 
end 
+0

谢谢,这个伎俩。 – nordhagen 2014-10-01 12:09:47