Ansible介绍

一

Ansible 是开源自动化运维平台,用于解决手动管理服务器的各类问题:

  1. 手动管理多台服务器时,易出现操作遗漏、配置不一致、问题排查困难等问题

  2. 通过 Ansible 可将配置逻辑写入 Playbook,单次执行即可完成所有主机的统一配置,配置可重复使用

  3. 该模式实现了基础架构即代码,配置文件可纳入版本控制系统(如 Git)管理,支持变更追溯与问题回滚,适配团队协作场景。


二、核心组件定义

|------------|-------------------------------------------------------------------------|
| 组件名称 | 定义说明 |
| 控制节点 | 安装 Ansible 的主机,所有 Ansible 命令均在此节点执行 |
| 受管主机 | 被 Ansible 管理的主机,无需安装 Ansible,仅需满足连接与运行环境要求 |
| Module(模块) | Ansible 最小执行单元,Ansible 内置大量现成模块,可完成各类运维操作,如 yum 模块用于软件安装,user 模块用于用户管理 |
| Task(任务) | 单次调用模块的操作,是 Play 中的最小执行项 |
| Play | 针对一组主机的一组任务的集合,用于完成某一类主机的配置 |
| Playbook | 由一个或多个 Play 组成的文件,可完成完整的应用部署等复杂任务 |
| 幂等性 | Ansible 的核心特性,同一 Playbook 多次执行结果一致,若系统已处于目标状态,则不会执行任何变更操作,避免重复操作导致的系统异常 |


三、重点难点梳理

1. 无代理架构

无代理是 Ansible 的核心架构特性:

  • 部分自动化工具要求在所有受管主机上安装专用代理程序,该程序需常驻主机,与控制节点保持连接以接收指令,需额外维护代理的运行与升级

  • Ansible 无需在受管主机安装专用代理程序,仅需通过 SSH(Linux)或 WinRM(Windows)完成连接,受管主机仅需满足 Python 运行环境要求即可被管理,大幅降低部署与维护成本。

2. 内容集合

内容集合是 Ansible 的自动化内容分发格式,用于解决传统模块管理的问题:

  • 早期 Ansible 将所有模块打包在核心安装包中,导致核心包体积过大,且模块版本与 Ansible 核心版本绑定,无法单独更新模块

  • 内容集合将模块、角色、插件按功能、平台拆分为独立的打包单元,如amazon.aws集合包含 AWS 云服务管理相关内容,azure.azcollection集合包含 Azure 相关内容,核心基础模块打包为ansible.builtin集合,默认随 Ansible Core 提供

  • 该模式下,用户可按需安装所需集合,支持单独更新集合版本,无需变更 Ansible 核心版本;红帽企业版提供 120 + 经过测试认证的官方集合,可获得红帽技术支持。

3. 声明式配置

Ansible 采用声明式的配置模式,与传统脚本存在区别:

  • 传统脚本为过程式,需定义每一步的执行操作,明确告知系统执行步骤

  • Ansible 为声明式,仅需定义系统的目标状态,Ansible 会自动处理实现该状态的具体操作,仅会将系统调整至目标状态,若系统已达标则无操作

  • 该特性是 Ansible 的核心设计,不可将 Ansible 作为普通脚本工具使用,否则会浪费其特性。

相关推荐
广目软件2 天前
HA分布式架构采集节点变更操作手册20261029
运维·服务器·ansible·zabbix·prometheus
Moshow郑锴2 天前
Ansible 批量部署 Node.js 服务:ZIP 直解与共享目录分发两种方案对比
node.js·ansible
垚垚学技术_聚焦云原生3 天前
Ansible Playbook 进阶:when 条件、loop 循环、handlers 触发器落地
linux·ansible·自动化运维·devops
Moshow郑锴3 天前
GCP MIG 重建后 Ansible 初始化实战:PowerShell + NSSM 挂载 Windows 服务
windows·ansible
承渊政道5 天前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
Helix2506 天前
Ansible混合环境自动化:Windows与Linux统一配置管理实战
windows·自动化·ansible·playbook·配置管理·winrm·混合环境
垚垚学技术_聚焦云原生8 天前
Ansible 变量体系详解:主机变量、组变量、全局变量优先级实战
ansible·自动化运维·devops·变量优先级
I'mChloe17 天前
不再逐台装Docker:我用Ansible Playbook批量统一服务器环境
服务器·docker·ansible
筑梦之路17 天前
Alibaba Cloud Linux 4 制作 Ansible RPM包实践(离线可复用)——筑梦之路
linux·运维·ansible
张洛闻Eren17 天前
Ansible【第一课】:Ansible介绍
运维·数据库·云原生·kubernetes·github·ansible