Capistrano与普通用户一起部署

时间:2012-04-18 20:41:12

标签: deployment capistrano

我正在尝试设置Capistrano进行部署,但我现在偶然发现了capistrano用户的常见假设:SSH到远程主机的用户将有权写入部署目录

在这里,管理员是普通用户,只有一个区别:他们可以sudo。起初,我认为这已经足够了,因为有一些与sudo相关的配置,但似乎事实并非如此。

有解决方法吗?创建部署所有人共享的用户不是可接受的解决方案。

编辑:以使其清楚,不调用sudo就不会发生部署操作 - 这是检查用户是否被允许部署的网关点,它应该是强制检查点

目前接受的答案不符合该标准。它通过向用户授予额外权限来解决sudo问题。无论如何我都接受了,因为我得出的结论是卡皮斯特拉诺在这方面从根本上被打破了。

1 个答案:

答案 0 :(得分:19)

我假设您正在部署Linux发行版。解决问题的最简单方法是创建一个组,例如 deployers ,并添加应该具有部署到该组的权限的每个用户。创建组并且用户在组中后,更改部署路径上的所有权和权限。

根据发行版的不同,语法略有不同。这是ubuntu / debian:

创建群组:

$ sudo groupadd deployers

将用户添加到群组:

$ sudo usermod -a -G deployers daniel

最后一个参数是用户名。

接下来,更新部署路径的所有权:

$ sudo chown -R root:deployers /deploy/to/path/

语法为:。这里我假设当前拥有该路径的用户是root。用户应该拥有该目录的更新。

最后,更改部署路径上的权限:

$ sudo chmod -R 0766 /deploy/to/path/

这将允许 deployers 组中的用户读取和写入/deploy/to/path下面的所有文件和目录