Ansible批量更新用户密码

  • 使用Ansible的user模块批量修改远程客户机的用户密码
  • 由于在使用ansible修改用户密码不能使用明文,需要先加密,所以就需要使用一个方法对输入的明文的密码进行加密

修改所有系统的同一个用户密码:

---
  - hosts: ssh-host
    gather_facts: false
    tasks:
    - name: Change password
      user: name={{ name1 }}  password={{ chpass | password_hash('sha512') }}  update_password=always
#使用-e参数传递用户名和密码(其中root为用户名,sb!为修改后的root密码)
ansible-playbook update_pass.yml -e 'name1=root chpass='sb\!''

针对指定用户修改密码:

---
  - hosts: ssh-host
    gather_facts: false
    tasks:
    - name: change user password
      user: name={{ item.name }} password={{ item.chpass | password_hash('sha512') }}  update_password=always
      with_items:
           - { name: 'root', chpass: 'kevin@123' }
           - { name: 'app', chpass: 'bjop123' }

修改指定IP的系统密码:

  • “ens192”是客户机ip所在的网卡设备名称, 这个要根据自己实际环境去配置, 比如eth0, eth1等;
---
- hosts: test-host
  remote_user: root
  tasks:
  - name: change password for root
    shell: echo '{{ item.password }}' |passwd --stdin root
    when: ansible_ens192.ipv4.address  == '{{ item.ip }}'
    with_items:
     - { ip: "172.16.60.220", password: 'haha@123' }
     - { ip: "172.16.60.221", password: 'kevin@123' }
     - { ip: "172.16.60.222", password: 'bobo@123' }
  • linux/ansible/批量修改密码.txt
  • 最后更改: 2020/01/16 19:58
  • 由 mrco