amazon-web-services - AWS + Ansible 自动化
问题描述
我在 AWS 中有 50 个 Ubuntu 服务器。现在我打算使用 Ansible 将 Ngnix 安装到 50 台服务器上。对于这种情况,我创建了一个 Ansible 主服务器和剧本。但是如何连接到目标服务器,不可能将 SSH 密钥单独添加到这 50 台服务器,所以我需要自动化任务。我需要id_rsa_pub
从 Ansible Master 添加到authorized_keys
目标服务器。但是正如您现在默认使用 SSH 密钥文件完成的 AWS 服务器身份验证 ID。那么如何指定初始身份验证的密钥文件,即ssh_copy_id
section。
解决方案
在您的库存 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 连接,然后在主机中运行您想要的命令。
推荐阅读
- xslt - xslt 1.0 将 xs:date 转换为特定的 dateFormat DD-MON-YYYY
- ruby-on-rails - Rails:使用 RestClient 的外部 API 集成(未定义的局部变量或方法“用户”)
- google-sheets - 如何在 SUM() 之前应用公式?
- arrays - 将 postgresql jsonb 值转换为 int 数组并从中删除元素
- javascript - 动态添加行并运行脚本
- python - python3.6和python3.7的导入差异
- xamarin - BarTintColor 不适用于 Xamarin 的 iOS 13 中的 PrefersLargeTitles
- rest - 保护一个应用程序使用的公共 REST API
- github - 创建 git pre-receive 挂钩以将 git 提交与 jira id 链接
- listview - Flutter ListView 不断执行future函数