我寻找使用 capistrano 进行部署的良好实践。
我想首先简单介绍一下我过去是如何进行部署的。
capistrano 安装在开发人员的本地计算机上。我使用 capistrano 选项部署了思想网关:gateway
。首先,我以为使用:gateway
选项我只需要与网关主机建立 ssh 连接,但事实证明我需要 ssh 连接(公钥)到我想要部署到的所有主机。
我想找到一种方便且安全的方法来部署应用程序。
例如,当新的开发人员开始工作时,把他的公钥仅在网关服务器上,而不是在所有应用程序服务器上。另一方面,我不希望他与特定服务器有任何连接远程控制对于网关,仅仅因为他是开发人员,所以他只需要做部署。
如果您了解使用 capistrano 进行部署的良好做法,请告知我们。
答案1
Capistrano 的设计从一开始就假设 ssh 是所有管理的基础。用作网关的机器必须接受和发出 ssh 连接。这是不可避免的。您的开发人员将获得网关的 ssh 访问权限。
您有一些要求:
- 轻松将新开发人员添加到部署目标的授权密钥列表中
- 不想给开发人员在网关盒上提供完整的终端
您需要决定如何处理部署目标的密钥。这里有两个主要选项:
第二种选择是最安全的,但如果您有配置管理系统,效果会更好。您确实应该使用一个配置管理系统,它甚至可以为网关服务器提供 authorized_keys 文件。
您可以选择一些选项来限制开发人员通过 ssh 进入您的系统后可以执行的操作。
根据 Capistrano 与网关的实际工作方式,其中一些可能会阻止其工作,因此需要进行测试。可能需要完整的 shell 才能使其正常运行。