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 作为普通脚本工具使用,否则会浪费其特性。

相关推荐
遇见火星20 小时前
从0到1掌握Ansible:让自动化运维不再是梦想
运维·自动化·ansible
遇见火星21 小时前
Jenkins + Ansible 集成实战:把配置管理焊进流水线里
运维·ansible·jenkins
江华森2 天前
Ansible 自动化运维:从入门到实战
运维·自动化·ansible
JackSparrow4144 天前
使用Ansible批量管理+更新产品环境服务器配置
运维·服务器·ci/cd·kubernetes·自动化·ansible·sre
Cat_Rocky6 天前
Linux-ansible之Playbook简单应用
linux·网络·ansible
淼淼爱喝水8 天前
Ansible 入门实战:四种变量优先级比较实验
ansible·变量
淼淼爱喝水8 天前
ansible实战:「磁盘空间 ≥ 2G 时自动创建文件」
前端·ansible·自动创建
红茶要加冰9 天前
四、ansible的templates
linux·运维·服务器·ansible
红茶要加冰9 天前
五、ansible的流程控制
linux·运维·服务器·ansible
Cat_Rocky9 天前
Linux学习-ansible自动化
linux·学习·ansible