首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
构建 Ansible 清单
📅 2026/10/5 16:53:58
✍️ 爱科研究院
👁 阅读 3,247
定义清单清单定义 Ansible 管理的主机集合。这些主机也可以分配到组中以进行集中管理。组可以包含子组主机也可以是多个组的成员。清单还可以设置应用到它所定义的主机和组的变量。定义主机清单可采用以下两种方式。使用文本文件定义静态主机清单。通过外部信息提供程序使用 Ansible 插件按需生成动态主机清单。使用静态清单指定受管主机静态清单文件是指定 Ansible 目标受管主机的文本文件。您可以使用多种不同的格式编写此文件包括 INI 样式或 YAML。INI 样式格式很常见在本课程中的大部分示例中均有应用。最简单的 INI 样式静态清单文件是受管主机的主机名或 IP 地址列表每行一个web1.example.com web2.example.com db1.example.com db2.example.com 192.0.2.42但通常而言您可以将受管主机组织为主机组。通过主机组您可以更加有效地对一系列系统运行 Ansible。这时每一部分的开头为以方括号[]括起的主机组名称。其后为该组中每一受管主机的主机名或 IP 地址每行一个。在以下示例中主机清单定义了两个主机组webservers和db‑servers。[webservers] web1.example.com web2.example.com 192.0.2.42 [db-servers] db1.example.com db2.example.com主机可以在多个组中。事实上建议您将主机组织为多个组可以根据主机的角色、其物理位置以及是否在生产环境中等因素以不同的方式加以整理。这样您可以根据特定主机集的特征、用途或位置轻松将 Ansible play 应用到特定主机集。[webservers] web1.example.com web2.example.com 192.0.2.42 [db-servers] db1.example.com db2.example.com [east-datacenter] web1.example.com db1.example.com [west-datacenter] web2.example.com db2.example.com [production] web1.example.com web2.example.com db1.example.com db2.example.com [development] 192.0.2.42定义嵌套组Ansible 主机清单可以包含由多个主机组构成的组。这通过创建后缀为:children的主机组名称来实现。以下示例创建了一个名为north‑america的新组其中包含来自usa和canada组的所有主机。[usa] washington1.example.com washington2.example.com [canada] ontario01.example.com ontario02.example.com [north‑america:children] usa canada一个组可以同时包含受管主机和子组作为其成员。例如在上面的清单中您可以添加一个拥有自己的受管主机列表的[north‑america]部分。这一列表中的主机将与 north‑america 组从其子组中继承的其他主机合并。通过范围简化主机规格可以通过指定主机名称或 IP 地址的范围来简化 Ansible 主机清单。您可以指定数字或字母范围。范围具有下列语法[START:END]范围匹配从 START 到 END含的所有值。请思考以下示例192.168.[4:7].[0:255]可匹配 192.168.4.0/22 网络中的所有 IPv4 地址192.168.4.0 到 192.168.7.255。server[01:20].example.com可匹配名称介于 server01.example.com 和 server20.example.com 之间的所有主机。[a:c].dns.example.com可匹配名为 a.dns.example.com、b.dns.example.com 和 c.dns.example.com 的主机。2001:db8::[a:f]可匹配从 2001:db8::a 到 2001:db8::f 的所有 IPv6 地址。如果数字范围中包含前置零其模式中会使用它们。上面的第二个示例不匹配 server1.example.com但匹配 server07.example.com。为了说明这一点可以使用下面的例子该例使用范围简化了前面例子中的[usa]和[canada]组定义[usa] washington[1:2].example.com [canada] ontario[01:02].example.com覆盖清单的位置/etc/ansible/hosts文件被视为系统的默认静态清单文件。不过常规做法是不使用该文件而是指定其他位置获取清单文件。您运行 playbook 时使用的ansible‑navigator命令可通过--inventory PATHNAME或-i PATHNAME选项在命令行中指定清单文件的位置其中 PATHNAME 是所需清单文件的路径。动态清单也可以使用外部数据库提供的信息动态生成 Ansible 清单信息。开源社区编写了许多可从上游 Ansible 项目获取的动态清单插件。如果这些 Ansible 插件不能满足您的需求您也可以自行编写插件。例如动态清单程序可以联系您的红帽卫星服务器或 Amazon EC2 帐户并使用那里存储的信息来构造 Ansible 清单。由于该程序在您运行 Ansible 时进行此操作因此它可以在新主机添加和旧主机移除时为清单填充该服务所提供的最新信息。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/5 16:53:58
【老计带你懂AI算法】22:模型选型速查与怎么判断模型好不好,系列收官
2026/10/5 16:53:58
Linux网络(二十):TCP拥塞控制与延迟应答详解:从拥塞窗口到TCP性能优化,理解TCP与UDP的效率差异
2026/10/5 16:53:58
云服务器nacos搭建-单机
2026/10/5 17:29:00
UFS 3.1协议架构解析:从命令下发到闪存写入的完整链路
2026/10/5 17:29:00
基于GAN的心电信号降噪:原理、训练与避坑指南
2026/10/5 17:29:00
AI编程助手Skills实战:从提示词工程到可复用能力封装
2026/10/5 17:29:00
AI编程助手skills全解析:从概念到实战开发指南
2026/10/5 17:29:00
UFS 3.1协议深度解析:从分层架构到WriteBooster与HPB实战
2026/10/5 17:24:00
ChatDev深度解析:多智能体协作框架如何自动化软件生成
2026/10/5 0:02:57
AZ-104题库深度拆解:从刷题到掌握Azure管理员核心考点
2026/10/5 0:02:57
WorkBuddy:基于MCP协议的组织级工作流神经中枢
2026/10/5 0:02:57
大模型 / AI 应用常见面试题及答案汇总(2026 最新版):用 TaoToken 统一 Key 跑通高频考点代码验证
2026/10/5 4:43:56
Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化
2026/10/5 1:10:25
多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系
2026/10/5 13:05:37
hindsight:面向LLM应用的事后可观测性工程实践
2026/10/4 2:41:08
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/4 17:59:15
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/3 15:20:14
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)