首页 > 解决方案 > 在没有 SSH 密钥的情况下从 gitlab runner 在 ec2 实例上运行 ansible?

问题描述

我有一个 git lab runner,他的工作是:

a) 使用 Terraform 创建 IaC。(7 个具有定义密钥对的 ec2 实例) b) 运行一个 ansible playbook,需要通过 SSH 连接到所有 7 个实例并配置 Kafka。

目前,我已经自动化了 a 部分。然后我使用私钥 ssh 到其中一个实例。将ansible代码和私钥复制到实例中,然后执行以下cmd运行ansible:

ansible-playbook --private-key=/home/ec2-user/keyname.pem hosts.yml all.yml

这一切都很好,但显然,我想在 gitlab 运行器中自动运行 ansible,而不必将我的私钥存储在 docker 容器或 git repo 中。

我已经简要调查了 SSM,但并不真正了解这一切是如何工作的。注意:我需要密钥有两个目的。

  1. ssh 进入第一个实例
  2. 在 host.yml 中引用,以便 ansible playbook 可以连接到所有其他实例

提前谢谢大家。干杯亚当

标签: amazon-ec2sshapache-kafkaansibleterraform

解决方案


推荐阅读