【问题标题】:Unable to remove rails/system symlink created by Opsworks deploy无法删除 Opsworks deploy 创建的 rails/system 符号链接
【发布时间】:2014-04-14 12:06:26
【问题描述】:

我想让新实例使用 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) 执行此操作,我怎样才能删除此链接,以便我可以指向不同的位置。

【问题讨论】:

    标签: ruby-on-rails amazon-s3 chef-recipe aws-opsworks


    【解决方案1】:

    在您当前的 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[] 之类的东西,你最终可以让机器进入部署循环。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-11-07
        • 2019-08-26
        • 2019-01-07
        • 2014-04-09
        • 1970-01-01
        • 2021-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-09-15
        相关资源
        最近更新 更多