一、Ansible概述和安装
Ansible 是一款功能强大的 IT 自动化工具,通过无代理机制实现高效的配置管理、应用部署、任务执行以及多节点间的 IT 编排。其主要特点包括:
- 无代理:无需在目标节点上安装任何额外的代理服务。
- 易于学习:基于简单的 YAML 语法定义任务。
- 模块化设计:提供丰富的模块库,适配多种任务需求。
- 高效安全:基于 SSH 进行通信,无需额外开放端口。
1.安装指南
在安装时,需根据使用环境选择适配方案:
- CentOS 7:
CentOS 7 在生产环境中依然应用广泛,使用 yum
进行安装:
yum install epel-release -y
yum install ansible -y
- CentOS 9:
CentOS 9 为官方维护版本,推荐使用 dnf
进行安装:
dnf install epel-release -y
dnf install ansible -y
- Ubuntu:
Ubuntu 系统上可通过 APT 包管理安装:
sudo apt update
sudo apt install ansible -y
2.验证安装正确性
安装完成后,可以运行下列命令确认:
ansible --version
二、Inventory 文件的配置和解释
Inventory 文件是用于定义目标节点和管理节点组的核心文件。
1.基本格式
Inventory 文件默认位置为 /etc/ansible/hosts
,其格式如下:
[group1]
host1 ansible_host=192.168.1.10 ansible_user=root
host2 ansible_host=192.168.1.11 ansible_user=admin
[group2]
host3 ansible_host=192.168.1.12 ansible_port=2222
group1
和group2
:节点分组。ansible_host
:目标节点的 IP 地址。ansible_user
:用于连接的用户。ansible_port
:指定目标节点的 SSH 端口,默认为 22。
2.高级配置
-
公共变量:
公共变量可以为全局或指定组设定默认值:
[all:vars]
ansible_python_interpreter=/usr/bin/python3
-
分组维护:
通过分组进行节点的根据配置:
[group1:children]
subgroup1
subgroup2
三、动态配置 Inventory 文件
动态 Inventory 的优点在于能够根据实时环境生成节点清单,避免手动维护带来的繁琐和错误。以下为动态配置的步骤和注意事项:
1.从简单脚本入手
以下是一个简单的 Python 脚本示例,用于生成动态 Inventory 文件:
import argparse
import json
def