1)先保证3个机器(1个master2个worker)都启动!!!
2)输入ansible --version,没有反应则会提示安装,直接安装即可!!!
3)验证版本
[root@bogon mianmi]# python --version
Python 3.9.19
[root@bogon mianmi]# ansible --version
ansible [core 2.14.18]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.19 (main, Sep 11 2024, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-2)] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
4)master机器生成一下
[root@bogon mianmi]# ssh-keygen -t ed25519 -C "ansible-master" -f ~/.ssh/id_ed25519
5)master机器上查看下~/.ssh下,证明生成完毕
[root@bogon .ssh]# cat id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINcv3wV16QWvOQodOAOncKI6I499cRjud+Kovhu7C3fW ansible-master
6)准备好主机清单
hosts.int
[workers]
192.168.3.204
192.168.3.205
[all:vars]
ansible_user=root
ansible_port=22
ansible_ssh_common_args='-o StrictHostKeyChecking=accept-new'
7)准备好剧本
push_ssh_key.yml
- hosts: workers
gather_facts: no
tasks:
- name: install master's public key to workers
authorized_key:
user: "{{ ansible_user }}"
state: present
key: "{{ lookup('file', '~/.ssh/id_ed25519.pub') }}"
8)执行
[root@bogon mianmi]# ansible-playbook -i hosts.ini push_ssh_key.yml -k
SSH password:
[WARNING]: Collection ansible.posix does not support Ansible version 2.14.18
PLAY [workers] *******************************************************************************************************************************
TASK [install master's public key to workers] ************************************************************************************************
ok: [192.168.3.204]
changed: [192.168.3.205]
PLAY RECAP ***********************************************************************************************************************************
192.168.3.204 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.3.205 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
9)验证下,发现都已经成功
[root@bogon mianmi]# ansible -i hosts.ini workers -m ping
192.168.3.204 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
192.168.3.205 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
总结:
可见ansible安装和使用都非常简单,安装就是:输入,不存在则自动安装。
接着写好清单和剧本,一键执行即可!!!
理解ansible的幂等性
