通过 jenkins 和 capistrano 自动部署 rails 应用程序
AutoDeploy rails app via jenkins and capistrano
作为第一步,我使用 Ubuntu 16.04 配置了 AWS EC2 实例,并配置了 Capistrano 以从本地部署到这个 AWS EC2 实例。
现在我正在尝试通过 Jenkins 和 Capistrano 将 rails 应用程序从 GitHub 自动部署到此 Ubuntu 服务器 (AWS EC2)。注意:我是第一次创建自动部署。
我的 rails 应用程序(生产)和 Jenkins 在同一个 Amazon EC2 实例上。
当 Jenkins 任务启动时,它会将 repo 克隆到 jenkins 工作空间,安装 gems 然后执行:cap production deploy
但现在我无法检查 Capistrano 是否已正确配置以部署到同一服务器的另一个文件夹,因为当 cap production deploy
执行时我收到此错误:
Net::SSH::AuthenticationFailed: Authentication failed for user jenkins@
我尝试通过以下方式为用户 jenkins 创建 ssh-key 并将其添加到 ubuntu 用户(默认非根 sudo 用户):
ssh-keygen
ssh-copy-id ubuntu@127.0.0.1
并且总是得到权限被拒绝的错误。
有人有什么建议吗?
先感谢您
Capistrano 版本 3.11
您可以在 ubuntu
用户的 authorized_keys
文件中添加 jenkin
用户的 public-key
。您可以在 /home/ubuntu/.ssh/authorized_keys
.
找到它
但是,在我看来,您应该将 jenkins
运行程序迁移到单独的服务器。
您可以创建一个 VPC 组,并将服务器、生产和 jenkins runner 都放在那个 VPC 中,并在同一个 VPC 中公开 ssh
端口,这样外面的人就无法访问它。
然后将jenkins
服务器的public密钥添加到生产服务器,正如我上面解释的那样。
作为第一步,我使用 Ubuntu 16.04 配置了 AWS EC2 实例,并配置了 Capistrano 以从本地部署到这个 AWS EC2 实例。
现在我正在尝试通过 Jenkins 和 Capistrano 将 rails 应用程序从 GitHub 自动部署到此 Ubuntu 服务器 (AWS EC2)。注意:我是第一次创建自动部署。
我的 rails 应用程序(生产)和 Jenkins 在同一个 Amazon EC2 实例上。 当 Jenkins 任务启动时,它会将 repo 克隆到 jenkins 工作空间,安装 gems 然后执行:cap production deploy
但现在我无法检查 Capistrano 是否已正确配置以部署到同一服务器的另一个文件夹,因为当 cap production deploy
执行时我收到此错误:
Net::SSH::AuthenticationFailed: Authentication failed for user jenkins@
我尝试通过以下方式为用户 jenkins 创建 ssh-key 并将其添加到 ubuntu 用户(默认非根 sudo 用户):
ssh-keygen
ssh-copy-id ubuntu@127.0.0.1
并且总是得到权限被拒绝的错误。
有人有什么建议吗? 先感谢您 Capistrano 版本 3.11
您可以在 ubuntu
用户的 authorized_keys
文件中添加 jenkin
用户的 public-key
。您可以在 /home/ubuntu/.ssh/authorized_keys
.
但是,在我看来,您应该将 jenkins
运行程序迁移到单独的服务器。
您可以创建一个 VPC 组,并将服务器、生产和 jenkins runner 都放在那个 VPC 中,并在同一个 VPC 中公开 ssh
端口,这样外面的人就无法访问它。
然后将jenkins
服务器的public密钥添加到生产服务器,正如我上面解释的那样。