【问题标题】:Deployment with Ansible in Jenkins pipeline在 Jenkins 管道中使用 Ansible 进行部署
【发布时间】:2019-08-04 08:14:48
【问题描述】:

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

我有两个选择:

  1. 在托管 Jenkins 的机器上安装 ansible,在 Jenkins 中插入私有 SSH 密钥,并使用 ansible-playbook 插件部署我的应用
  2. 获取一个安装了 ansible 的基础 docker 镜像,通过插入我的私有 SSH 密钥来扩展它,然后使用这个 docker 镜像来部署我的应用程序

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

【问题讨论】:

标签: docker jenkins amazon-ec2 ansible


【解决方案1】:

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

虽然对于选项 2,Docker 是一个很好的不可变部署场景,这意味着在镜像准备好之前就应该确定配置,因此 Ansible 在这种情况下并不是很有用。 不同的conf意味着要创建不同的图像 也许你仍然使用 Ansible 来管理那些 DockerFiles,而不是启动 Ansible 并与应用程序本身进行交互

就您如何设计系统而言,这两个选项看起来完全不同,而不是安全问题

请让我知道您需要更多说明

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2018-06-29
    • 2020-03-28
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多