ansible 批量修改主机名密码
ansible 批量修改主机名密码
本文档介绍如何使用 Ansible 批量修改主机名和密码。
inventory 配置信息
在 /etc/ansible/hosts 文件中配置主机清单,并为每个主机设置 hostname 变量:
# vim /etc/ansible/hosts [hostnames] 172.19.8.34 hostname=bjdz_cloud_node34 172.19.8.35 hostname=bjdz_cloud_node35 172.19.8.36 hostname=bjdz_cloud_node36 172.19.8.37 hostname=bjdz_cloud_node37 172.19.8.38 hostname=bjdz_cloud_node38 172.19.8.39 hostname=bjdz_cloud_node39 172.19.8.40 hostname=bjdz_cloud_node40 playbook 信息
创建 playbook 文件 hostnames.yml:
# vim hostnames.yml --- - hosts: hostnames remote_user: root tasks: - name: change hostname raw: "echo {{hostname|quote}} > /etc/hostname" - name: set hostname shell: hostnamectl set-hostname {{hostname|quote}} 执行命令
执行 playbook:
ansible-playbook hostnames.yml 执行过程中会提示输入 SSH 密码,执行结果示例:
SSH password: YOUR_PASSWORD [hostnames] ************************************************************** TASK [setup] ******************************************************************* ok: [172.19.8.34] ok: [172.19.8.35] ok: [172.19.8.36] ok: [172.19.8.37] ok: [172.19.8.38] ok: [172.19.8.39] ok: [172.19.8.40] 批量修改密码
CentOS 7 / RHEL 7
使用 chpasswd 命令修改密码:
YOUR_PASSWORD
修改 apps 用户密码为 ABCdef123
| ansible all -m shell -a ‘echo apps:ABCdef123 | chpasswd’ |
修改 root 用户密码(使用自定义 inventory 文件)
| ansible -i bjdz-openstack.ini host -uroot -b -k -m shell -a “echo root:adfu23RGuYlwdge5vm | chpasswd” |
### CentOS 6 / RHEL 6 使用 `passwd --stdin` 命令修改密码: YOUR_PASSWORD # 修改 apps 用户密码为 ABCdef123 ansible all -m shell -a 'echo ABCdef123 | passwd --stdin apps' 注意:批量修改密码时,建议使用加密后的密码,而不是明文密码。可以使用
ansible-vault加密敏感信息。
本文由作者按照 CC BY 4.0 进行授权