通过jenkins和capistrano的AutoDeploy rails应用程序

问题描述 投票:0回答:1

首先,我已使用Ubuntu 16.04配置了AWS EC2实例,并配置了Capistrano以便从本地部署到此AWS EC2实例。

现在,我正尝试通过Jenkins和Capistrano将来自GitHub的autodeploy rails应用程序制作到此Ubuntu Server(AW​​S EC2)。注意:我是第一次创建自动部署。

我的Rails应用程序(生产)和Jenkins在同一Amazon EC2实例上。当Jenkins任务启动时,它将仓库复制到jenkins工作区,安装gems,然后执行:cap production deploy

但是现在我无法检查Capistrano是否已正确配置为可以部署到同一服务器的另一个文件夹,因为执行cap production deploy时出现此错误:

Net::SSH::AuthenticationFailed: Authentication failed for user jenkins@

我尝试通过以下方式为用户jenkins创建ssh-key并将其添加到ubuntu用户(默认的非root用户sudo用户):ssh-keygen ssh-copy-id [email protected]并始终获得权限被拒绝的错误。

有人有什么建议吗?先感谢您capistrano版本3.11

ruby-on-rails jenkins amazon-ec2 capistrano3
1个回答
1
投票

您可以在jenkin用户的public-key文件中添加authorized_keys用户的ubuntu。您可以在/home/ubuntu/.ssh/authorized_keys上找到它。

但是,我认为您应该将jenkins运行程序迁移到单独的服务器。

您可以创建一个VPC组,并将服务器,生产服务器和jenkins运行程序都放在该单个VPC中,并在同一VPC中公开ssh端口,这样外面的任何人都无法访问它。

然后如上所述,将jenkins服务器的公钥添加到生产服务器。

© www.soinside.com 2019 - 2024. All rights reserved.