系统环境
标题 |
版本 |
备注 |
系统版本 |
ubuntu 22.04.3 LTS (Jammy Jellyfish) |
- |
内核版本 |
5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
- |
Ansible |
v2.2.16.5 |
- |
Ansible 简介
官方文档:ubuntu 安装文档
官方文档:Python 安装方式
Ansible 是一个开源的自动化平台,用于配置管理、应用部署、任务自动化等。它旨在提供一个明了、易于阅读的自动化脚本语言,让原本复杂的系统管理变得简单易行。Ansible 使用SSH协议,无需在远程系统上安装任何代理软件,就可以对它们进行管理和自动化操作,这使得它在操作的简便性和安全性方面非常受欢迎。
其主要特点包括:
- 简单性:Ansible 的配置文件使用YAML,一种直观易懂的数据序列化格式,使得管理脚本容易编写和理解。
- 代理less:它直接通过SSH连接远程机器,执行任务,无需在目标机器上安装任何代理软件,减少了系统的侵入性。
- 可扩展性:通过自定义模块,用户可以扩展Ansible,使其适应几乎所有类型的自动化需求。
- 大规模自动化:Ansible 可以轻松管理和自动化数以千计的服务器。
- 丰富的模块:拥有大量现成的模块,覆盖了许多常见的系统管理任务,如文件管理、软件包安装、用户管理等。
Ansible 的架构设计上,使用”playbooks”来描述自动化任务,这些playbooks里面定义了一系列的”plays”,每个play指定了在哪些主机上执行哪些任务。这种设计让Ansible既能管理小规模的个人项目,也能轻松应对大规模的企业级应用。
随着DevOps文化的发展和自动化需求的增加,Ansible 已成为IT专业人员中非常流行的工具之一。
Ansible 安装
Ansible 是 python 语言编写的。它不是 C/S 架构,所以我们只需要在一台机器上安装 ansible
1.在 /etc/apt/sources.list.d/
目录下新建 ansible.list
文件,内容为:
1 2 3 4 5
| $ sudo sh -c 'cat << EOF > /etc/apt/sources.list.d/ansible.list # 添加 ansible 源 # jammy 是 ubuntu 的版本代号,根据自己的版本号进行替换(cat /etc/os-release 可获取) deb http://ppa.launchpad.net/ansible/ansible/ubuntu jammy main EOF'
|
2.执行官方提供的 key 添加命令:
1 2 3 4 5 6 7
| $ sudo sh -c 'apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367' Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). Executing: /tmp/apt-key-gpghome.70A7zwkTjh/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
gpg: key 93C4A3FD7BB9C367: public key "Launchpad PPA for Ansible, Inc." imported gpg: Total number processed: 1 gpg: imported: 1
|
3.更新下系统缓存数据:
4.安装 ansible :
1
| sudo apt install -y ansible
|
5.安装完成后,即可使用 ansible –version 查看安装版本:
1 2 3 4 5 6 7 8 9 10
| $ ansible --version ansible [core 2.16.5] config file = /etc/ansible/ansible.cfg configured module search path = ['/home/leazhi/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible ansible collection location = /home/leazhi/.ansible/collections:/usr/share/ansible/collections executable location = /usr/bin/ansible python version = 3.11.6 (main, Oct 8 2023, 05:06:43) [GCC 13.2.0] (/usr/bin/python3) jinja version = 3.1.2 libyaml = True
|
非常重要:ansible 优先级说明:
- 最高级:ANSIBLE_CONFIG
- 次级: 项目目录 ansbile.cfg
- 三级: 当前用户家目录下的 .ansible.cfg
- 最低级:/etc/ansible/ansible.cfg # 默认的优先级配置文件
总结:
当没有 ANSIBLE_CONFIG 时就先去找当前项目目录下的 ansible.cfg,当当前项目目录下没有 ansible.cfg 就去找当前用户家目录下的 .ansible.cfg ,最后当当前用户家目录下也没有 .ansible.cfg 时就去找 /etc/ansible/ansible.cfg
举例说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| root@ubuntu001:~ config file = /etc/ansible/ansible.cfg
root@ubuntu001:~ root@ubuntu001:~ cd /data/project root@ubuntu001:/data/project root@ubuntu001:/data/project config file = /data/project/ansible.cfg
root@ubuntu001:/data/project root@ubuntu001:~ config file = /etc/ansible/ansible.cfg
root@ubuntu001:~ root@ubuntu001:~ config file = /root/.ansible.cfg root@ubuntu001:~ root@ubuntu001:/tmp config file = /root/.ansible.cfg
root@ubuntu001:/tmp logout ubuntu@ubuntu001:~$ ansible --version |egrep 'config file' config file = /etc/ansible/ansible.cfg
|