文章

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:ABCdef123chpasswd’

修改 root 用户密码(使用自定义 inventory 文件)

ansible -i bjdz-openstack.ini host -uroot -b -k -m shell -a “echo root:adfu23RGuYlwdge5vmchpasswd”
### 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 进行授权