centos7.9 新安装的系统
yum install epel-release -y
yum install ansible -y
ansible --version 产看ansible的版本号
[root@m01 ~]# rpm -qc ansible 查看ansible相关文件
/etc/ansible/ansible.cfg #ansible参数配置
/etc/ansible/hosts #客户主机文件
host_key_checking = False \\关闭第一次使用ansible连接客户端是输入命令提示
ansible可以使用基于密码或者ssh免密的方式进行操作
1.基于密码的方式
1、单主机配置
#方式一: ip +用户密码
[root@m01 ~]# vim /etc/ansible/hosts
[group1]
10.23.3.41 ansible_ssh_pass='GreeN2323(*&'
测试: ansible group1 -m ping
10.23.3.41 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
#方式二:ip + 端口 + 用户名 + 用户密码 没有顺序,因为有关键字=?
[root@m01 ~]# vim /etc/ansible/hosts
[group2]
10.23.3.41 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='GreeN2323(*&'
测试:[root@localhost ansible]# ansible group2 -m ping
10.23.3.41 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
推荐:#方式三: ip + 变量密码
[root@m01 ~]# vim /etc/ansible/hosts
[group3]
10.23.3.41
10.23.3.42
[group4]
10.23.3.42
[group3:vars]
ansible_ssh_pass='GreeN2323(*&'
方式四:基于秘钥的方式
管理机: 1.生成密钥对
[root@m01 ~]# ssh-keygen
2.推送公钥
[root@m01 ~]# ssh-copy-id 10.23.3.44
3、配置主机清单
[root@m01 ~]# vim /etc/ansible/hosts
[group4]
10.23.3.4
#测试
[root@m01 ~]# ansible 'group4' -m ping
服务器该root密码
ansible $host -m user -a "name=root password="$newpass" update_password=always
ansible group1 -m user -a "name=root password=123456 update_password=always”
---
- hosts: test
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@server1 testdir]# ansible testB -m user -a "name=ly password='abc'"
#批量改系统密码
[root@localhost ~]# openssl passwd -salt -l "abc" #将密码abc加密显示
-lHAoeIl9Ngtw
[root@localhost ~]# ansible group1 -m user -a "name=ly password=-lHAoeIl9Ngtw" #为用户名ly设置密码