首页 > 解决方案 > AWS + Ansible 自动化

问题描述

我在 AWS 中有 50 个 Ubuntu 服务器。现在我打算使用 Ansible 将 Ngnix 安装到 50 台服务器上。对于这种情况,我创建了一个 Ansible 主服务器和剧本。但是如何连接到目标服务器,不可能将 SSH 密钥单独添加到这 50 台服务器,所以我需要自动化任务。我需要id_rsa_pub从 Ansible Master 添加到authorized_keys目标服务器。但是正如您现在默认使用 SSH 密钥文件完成的 AWS 服务器身份验证 ID。那么如何指定初始身份验证的密钥文件,即ssh_copy_idsection。

标签: amazon-web-servicesansible

解决方案


在您的库存 ini 文件中,您可以使用此 var:

[group1]
HOST A
HOST B

[group2]
HOST C
HOST D

[all:vars]
ansible_ssh_private_key_file=RELATIVE_PATH_TO_KEY_FILE

或者您可以使用每个组使用不同的密钥

[group1]
HOST A
HOST B

[group2]
HOST C
HOST D

[group1:vars]
ansible_ssh_private_key_file=RELATIVE_PATH_TO_KEY_FILE_GROUP1


[group2:vars]
ansible_ssh_private_key_file=RELATIVE_PATH_TO_KEY_FILE_GROUP2

此密钥文件将用于与主机的 SSH 连接。
现在可以建立 SSH 连接,然后在主机中运行您想要的命令。


推荐阅读