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

相关推荐
悠悠121381 天前
从0到1掌握Ansible:让自动化运维不再是梦想
运维·自动化·ansible
卧室小白3 天前
ansible自动化
ansible
yuezhilangniao4 天前
Ansible基础 ansible入门 针对不同python3版本 - 含 Terraform 入门联动
运维·自动化·ansible
Koma_zhe6 天前
【Ansible开源自动化运维工具】别再手动装监控了,Ansible能让上百台机器同时搞定Node Exporter(1)
运维·开源·ansible
.柒宇.8 天前
RedHat10-Ansible部署Docker操作
docker·eureka·ansible
道清茗16 天前
【RH294知识点汇总】第 7 章 《 使用角色和 Ansible 内容集合简化 Playbook 》常见问题
ansible
何中应17 天前
Ansible安装&使用
运维·自动化·ansible·运维开发·自动化运维
王九思17 天前
Ansible 自动化运维基础—模板
运维·自动化·ansible
道清茗18 天前
【RH294知识点汇总】第 7 章 《 使用角色和 Ansible 内容集合简化 Playbook 》
java·前端·ansible
切糕师学AI18 天前
深入解析 Ansible:从入门到实践
ansible