在詹金斯管道中使用Ansible进行部署

时间:2019-03-13 15:25:25

标签: docker jenkins amazon-ec2 ansible

我有一个Ansible剧本,可以在AWS EC2上部署Java应用程序(jar)。我想在Jenkins管道中使用它作为“部署”步骤。要在EC2上进行部署,在创建实例时需要下载的专用ssh密钥。

我有2个选择:

  1. 在托管Jenkins的计算机上安装ansible,在Jenkins中插入SSH私钥,然后使用ansible-playbook插件部署我的应用
  2. 获取安装了ansible的基本docker映像,通过插入我的私有SSH密钥对其进行扩展,然后使用该docker映像部署我的应用

从安全角度来看,什么是最好的?

1 个答案:

答案 0 :(得分:1)

对于选项1,建议创建一个新的用户帐户,例如没有sudo特权的EC2实例中的jenkins,或至少受密码保护的sudo 这是一个很好的方案,使用Ansible管理这些用户帐户,它会限制对由AWS创建的超级密钥的使用。

对于选项2,Docker是不可变部署的良好方案,这意味着即使在映像就绪之前也应确定配置,因此Ansible在此方案中不是很有用。 不同的配置意味着要创建不同的图像 也许您仍然使用Ansible来管理那些DockerFiles,而不是启动Ansible并与应用程序本身进行交互

这两个选项在设计系统的方式(而不是安全性)方面看起来彼此完全不同

让我知道您需要更多说明