实现步骤如下:
1) 创建chgpwd.yml文件;
vim chgpwd.yml
---
- hosts: chgpwd
gather_facts: false
remote_user: root
tasks:
- name: Change password
user: name={{ name1 }} password={{ chpass | password_hash('sha512') }} update_password=always
2)创建hosts文件
vim hosts
[chgpwd]
192.168.13.96
192.168.13.97
3)执行ansible-playbook命令(name1传入用户名,chpass传入要设置的密码)
ansible-playbook chgpwd.yml -i hosts -e " name1=zdkx chpass=@20220318"
注:1)yml文件和hosts文件在同一文件夹下
2)设置的密码中不能有美元符号$
3)remote_user 当前执行的用户
常见报错:
1)“fatal: [10.154.46.17]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "msg": "usermod:无法打开 /etc/passwd\n", "name": "zdkx", "rc": 1}”
解决参考:
查看
lsattr /etc/passwd /etc/group /etc/shadow
修改
chattr +i /etc/passwd /etc/group /etc/shadow
安全要求,用完后修改回来:
chattr -i /etc/passwd /etc/group /etc/shadow