我有一些严重的挫折让一个简单的PHP应用程序可靠地部署使用OpsWorks,我找不到任何文件如何管理srv/www/app-name/releases
目录,但我认为这可能是原因我目前的问题。OpsWorks/Chef PHP部署过程
我正在部署Laravel应用程序,因此我需要在部署时使用厨师食谱发生两件事情:作曲家安装,以及一些可写入的目录。作曲家似乎安装得很好,但我的配方创建& chmod目录似乎发生在以前的版本 - 这对我来说根本毫无意义。
安装作曲:
node[:deploy].each do |application, deploy|
script "composer-install" do
interpreter "bash"
cwd "#{deploy[:deploy_to]}/current"
user "root"
code <<-EOH
composer install
EOH
end
end
这工作得很好,我可以刷新的供应商目录,因为这看到运行中出现的依赖关系。但接下来的配方运行:
node[:deploy].each do |application, deploy|
Chef::Log.info("Application path: #{deploy[:deploy_to]}");
node['directories'].each do |path|
# Get the path we need
new_path = "#{deploy[:deploy_to]}/current/"+path
Chef::Log.info("Checking directory: "+new_path);
# Ensure the dir exists
unless File.exists?(new_path)
Chef::Log.info("Creating directory: "+new_path);
Dir.mkdir(new_path, 777)
end
# Ensure its writable
File.chmod(777, new_path)
end
end
从Chef::log
内容也出现在日志中,没有错误,但该目录是根本不存在的 - 他们在前面的release/timestamp
目录中创建,仿佛“目前的'符号链接已经恢复到这个配方的持续时间。它们也是以'411'权限创建的。
任何人都可以解释我要去哪里错了吗? 我可以访问新的目录路径而不是使用'当前'符号链接吗?
我无法在文档中找到对该变量的任何引用。你有任何你想分享的链接吗? – PachinSV
@PachinSV:https://docs.chef.io/resource_deploy.html#callbacks –