虚拟化容器,大数据,DBA,中间件,监控。

ansible批量修改用户密码

28 12月
作者:admin|分类:系统运维

ansible批量更新修改用户密码  

一,问题背景

  1. 因为服务器用户密码定期90天必须修改密码,因此需要进行批量化操作。

  2. 使用有sudo权限的普通用户进行操作

二,环境

系统IP软件备注
centos7192.168.11.140ansible2.9.7安装需要epel源
centos7192.168.153.130nullnull

三,操作步骤

  1. 取消key验证

 [admin]# sudo sed -i 's/^#host_key_checking = False/host_key_checking = False/g' /etc/ansible/ansible.cfg


  1. 定义hosts文件

 [admin]# sudo vim /etc/ansible/hosts
 
 [backsrvs]
 192.168.153.130 ansible_ssh_user=admin ansible_ssh_pass=admin1234 ansible_become_pass=admin1234

ansible_ssh_user,ansible_ssh_pass 这两个是需要更新密码的主机的远程登陆账号与密码(如使用ssh互信就不用再写密码),ansible_become_pass是运行sudo命令的账号的密码,再运行命令时,如果 提示输入当前账号的密码,就需要使用此密码。


  1. 定义playbooks

 [admin]# sudo vim /etc/ansible/update_users_pd.yml
 
 - name: 由于线上服务器普通账号三个月密码需要更新,这里采用普通用户登陆,再用sudo命令修改密码。
   hosts: backsrvs
   remote_user: admin
   gather_facts: false
   tasks:
   - name: update users's password
     become: yes
     become_user: root
     become_method: sudo
     user: name={{ item.name }} password={{ item.chagepd | password_hash('sha512') }} update_password=always
     with_items:
     - { name: 'test01',chagepd: 'test1234' }
     - { name: 'test02',chagepd: 'test1234' }
     - { name: 'test03',chagepd: 'test1234' }

其中 在hosts资源清单中已经写明远程登陆更新密码的主机账号的话,yaml剧本中不用再写remote_user,这样可以远程主机的账号可以使用不同的账号. name: 是更新密码的账号,chagepd是更新的密码。


  1. 执行

 [admin]# sudo ansible-playbook update_users_pd.yml --list-hosts  #查看执行脚本中的hosts
 [admin]# sudo ansible-playbook update_users_pd.yml -C   #只检查,不真正执行,如有报错,根据情况修改
 [admin]# sudo ansible-playbook update_users_pd.yml



四,修改单一用户

 [admin]# sudo vim /etc/ansible/update_user_pd.yml
 - hosts: backsrvs
   remote_user: admin
   gather_facts: false
   tasks:
   - name: update users's password
     become: yes
     become_user: root
     become_method: sudo
     user: name={{ name }} password={{ chagepd | password_hash('sha512') }} update_password=always
[admin]#



浏览651 评论0
返回
目录
返回
首页
gitlab+docker安装gitlab-runner进行cicd自动化部署过程 安装部署:手把手教你玩转 etcd 搭建