配景: 当前有100台服务器在同一个内网,需要统一摆设业务程序并且对主机修改主机名,只提供了一个文档host_user.txt,内容 “ IP 用户 密码 ” 三列。思路: 想根据 host_user.txt 文件的内容自动生成 ansible/hosts 文件,可以通过 Shell 脚本或 Python 脚原来实现。提供两种方法来动态生成 ansible/hosts 文件。
host_user.txt 内容示例:
10.0.0.11 root xxxx
10.0.0.12 root xxxx
10.0.0.13 root xxxx
技能难点:
1、如何避免一台台服务配置免密等
2、如何避免在ansible配置主机清单中统一添加业务主机
焦点是 ansible_ssh_user 和 ansible_ssh_pass,它允许 Ansible 直接使用用户名和密码举行 SSH 连接,从而跳过手动配置 SSH 免密(key-based authentication)。方法 1:使用 Shell 脚本
默认情况下,Ansible 连接远程主机时使用 基于 SSH 密钥(key-based authentication),也就是通过 ssh-keygen 生成密钥并手动拷贝到远程主机 ~/.ssh/authorized_keys 文件中来实现免密登录。
但如果在 hosts 文件中指定了 ansible_ssh_pass,Ansible 就会改用密码认证方式,而不会实验使用 SSH 密钥。这就相当于你手动输入密码举行 SSH 连接一样,因此你不需要提前配置免密。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |