ansible 笔记

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设置密码
 

你可能感兴趣的:(linux,运维,服务器)