ansible批量传输文件、批量更改用户密码
一、 ansible安装配置
通过yum一键安装,vi /etc/ansible/ansible.cfg 文件中的host_key_checking = False,否则系统记录对端指纹时会卡;vi /etc/ansible/hosts 输入需要变更的inventory,都配置好后,可以通过ansible xtz -m command -a “uname -r” -b --become-method su --become-user root测试下
二、批量传输文件的playbook
cat scp.yml
---
- hosts: xtz
tasks:
- name: scp file from B to other
shell: sshpass -p 'Flzx3qc()' scp -o StrictHostKeyChecking=no /tmp/hy.txt tksm@{{item}}:/tmp/
with_items:
192.168.40.2
解释:安装ansible的节点为A,192.168.40.1为B,192.168.40.2为C,剧本是A通过ssh连接到B,在B中传输文件到C,D、E、F添加ip地址。
调用:ansible-playbook scp.yml
ansible自带的copy模块什么的也能传输文件,但是不太好用,需要关闭对端的selinux,还要安装一个python的lib。
三、批量更改密码的playbook
cat chgpass2.yml
---
- hosts: xtz
tasks:
- name: change password 2
shell: echo '{{item.pwd}}' | passwd {{item.user}} --stdin
with_items:
- { pwd: 'Flzx3qc()', user: 'hy' }
解释:直接远程到节点以root用户改密码
调用:ansible-playbook chgpass2.yml -b --become-method su --become-user root
/etc/ansible/hosts中按照用户建立不同的inventory。