使用 Capistrano 进行部署的正确方法

使用 Capistrano 进行部署的正确方法

我寻找使用 capistrano 进行部署的良好实践。

我想首先简单介绍一下我过去是如何进行部署的。

capistrano 安装在开发人员的本地计算机上。我使用 capistrano 选项部署了思想网关:gateway。首先,我以为使用:gateway选项我只需要与网关主机建立 ssh 连接,但事实证明我需要 ssh 连接(公钥)到我想要部署到的所有主机。

我想找到一种方便且安全的方法来部署应用程序。

例如,当新的开发人员开始工作时,把他的公钥仅在网关服务器上,而不是在所有应用程序服务器上。另一方面,我不希望他与特定服务器有任何连接远程控制对于网关,仅仅因为他是开发人员,所以他只需要做部署。

如果您了解使用 capistrano 进行部署的良好做法,请告知我们。

答案1

Capistrano 的设计从一开始就假设 ssh 是所有管理的基础。用作网关的机器必须接受和发出 ssh 连接。这是不可避免的。您的开发人员将获得网关的 ssh 访问权限。

您有一些要求:

  • 轻松将新开发人员添加到部署目标的授权密钥列表中
  • 不想给开发人员在网关盒上提供完整的终端

您需要决定如何处理部署目标的密钥。这里有两个主要选项:

  1. 使用通用密钥,每个人都会获得一个,并且该密钥会被嵌入到图像/目标中。
  2. 使用特定的密钥,每个人都有自己的密钥,你可以通过以下方式管理 authorized_keys 列表:或者

第二种选择是最安全的,但如果您有配置管理系统,效果会更好。您确实应该使用一个配置管理系统,它甚至可以为网关服务器提供 authorized_keys 文件。

您可以选择一些选项来限制开发人员通过 ssh 进入您的系统后可以执行的操作。

根据 Capistrano 与网关的实际工作方式,其中一些可能会阻止其工作,因此需要进行测试。可能需要完整的 shell 才能使其正常运行。

相关内容