0

我想让新实例使用 S3 存储桶来上传文件/图像。我正在使用 s3fs 并且目标文件夹安装在实例上。我想:

1-删除/srv/www/myapp/current/public/system(当前指向shared/public/system)

2-链接 /srv/www/myapp/current/public/system 到 /s3mounted/bucket/public/system

因此,所有实例都指向相同的共享和永久 s3 位置。

该链接归 www-data 所有,我尝试手动 sudo su 和 rm 并没有工作。我的问题是,如果我要在厨师食谱中作为部署挂钩(before_restart.rb)执行此操作,我如何才能删除此链接,以便我可以指向不同的位置。

4

2 回答 2

0

Apache 进程已锁定文件/文件夹。这不是权限问题。我不得不停止 apache,然后“sudo rm”然后我能够链接到新位置并重新启动 apache 并且一切正常。

这可能不是最好的解决方案,并且很想听听关于如何做到这一点的其他想法。

于 2014-03-11T14:27:46.750 回答
0

在您当前的 before_restart.rb 中执行以下操作:

current_release = release_path
deploy_node = node

deploy_resource = new_resource
deploy_to = deploy_resource.deploy_to
app_name = deploy_to.split('/')[-1]

deploy_user = deploy_node[:deploy][app_name][:user]
deploy_group = deploy_node[:deploy][app_name][:group]

link "#{current_release}/public/system" do
  to "/s3mounted/bucket/public/system"
  owner deploy_user
  group deploy_group
end

第一部分设置我使用的变量。如果你使用 deploy[] 之类的东西,你最终可以让机器进入部署循环。

这实际上是为您删除文件。当您符号链接时,它会自动为您删除。

于 2014-03-13T21:32:28.580 回答