在免密登录的基础上配置远程修改主机密码

一、免密登录

参考如下文档https://blog.csdn.net/Romanticn_chu/article/details/117250564

二、配置远程修改

方法一:  使用Ansible的user模块批量修改远程客户机的用户密码

由于在使用ansible修改用户密码的时候不能使用明文的方式,需要先加密,所以就需要使用一个方法对输入的明文的密码进行加密.

如下所示,在ssh,yml中添加如下内容:

- hosts: db
  gather_facts: false
  tasks:
  - name: change user passwd
    user: name={{ item.name }} password={{ item.chpass | password_hash('sha512') }} update_password=always
    with_items:
         - { name: 'root',chpass: '新密码'} #此处可以仿照修改其他用户的密码

执行验证:

[root@localhost ansible]# ansible-playbook -i hosts ssh.yml

PLAY [all] *********************************************************************

TASK [install ssh key] *********************************************************
ok: [192.168.10.11]
ok: [192.168.10.12]

PLAY [db] **********************************************************************

TASK [change user passwd] ******************************************************
changed: [192.168.10.12] => (item={u'chpass': u'CYzbs196263', u'name': u'root'})
changed: [192.168.10.11] => (item={u'chpass': u'CYzbs196263', u'name': u'root'})

PLAY RECAP *********************************************************************
192.168.10.11              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.10.12              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

方法二:  修改远程主机的单个用户密码使用此方法比较方便

依旧修改ssh.yml文件,添加如下内容:

---
  - hosts: ssh-host
    gather_facts: false
    tasks:
    - name: Change password
      user: name={{ name1 }}  password={{ chpass | password_hash('sha512') }}  update_password=always

运行验证时添加-e:

[root@ansible-server ~]# ansible-playbook /opt/root_passwd2.yaml -e "name1=root chpass=新密码"  

方法三:  使用如下Ansible脚本, 适用于修改清单中部分远程主机的用户密码

编写ssh.yml脚本 (需要注意下面脚本中"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: "远程主机IP地址", password: '新密码' }
     - { ip: "远程主机IP地址", password: '新密码' }
     - { ip: "远程主机IP地址", password: '新密码' }
 

执行测试:

[root@localhost ansible]# ansible-playbook -i hosts ssh.yml

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值