amazon-ec2 - 在没有 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,但并不真正了解这一切是如何工作的。注意:我需要密钥有两个目的。
- ssh 进入第一个实例
- 在 host.yml 中引用,以便 ansible playbook 可以连接到所有其他实例
提前谢谢大家。干杯亚当
解决方案
推荐阅读
- javascript - 简单的 JavaScript 来获取 type="radio" 值来总结
- python-3.x - 'ndarray' 类型的对象在 mpld3 中不是 JSON 可序列化的
- python - Python 3 错误(在我的打开列表中)仅返回三个项目
- c - 为什么这个程序给我一个 SIGFPE?
- bash - 在 Ubuntu Bash 4.4 与 macOS bash 4.4 上,stdin 的`test -s` 不同,是否有可移植的替代方案?
- openjfx - openjfx 11 与 intellij IDEA 2018.2
- r - r中的聚合数据表
- android - 使用 Guideline 时在 ConstraintLayout 中正确设置约束
- docker - 当图像在 docker 机器中运行时,X11 转发不起作用,但如果图像在 w/oa docker 机器上运行,则它可以正常工作
- java - 如何使用自定义消息记录 jpa 查询?