构建 Ansible 清单

发布时间:2026/10/5 16:52:58

构建 Ansible 清单 定义清单清单定义 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 时进行此操作因此它可以在新主机添加和旧主机移除时为清单填充该服务所提供的最新信息。
延伸阅读

更多相关文章

2026/10/5 18:53:04

DnCNN图像去噪实战:TensorFlow 1.x高斯噪声去除全流程

简介:本资源是一套基于深度卷积神经网络(DCNN)的图像去噪实战项目,面向图像处理方向的Python开发者、深度学习初学者及计算机视觉课程实践者,聚焦高斯噪声去除这一典型任务。项目以DnCNN模型为核心,完整实现…

2026/10/5 18:53:04

C语言九九乘法表:循环嵌套与printf格式控制的实战解析

九九乘法表这道题,几乎每一个学C语言的人都写过。但说实话,我见过太多人写完就扔,觉得“不就是两个for循环嘛,没意思”。你要是这么想,那可真亏了。这道题看着简单,其实把C语言里几个最核心的东西全串起来了…

2026/10/5 18:53:04

基于αβ变换的两级VSC实时无功-有功控制与Simulink仿真

“两电平电压源型变流器”这个名字听起来很教科书,但你做光伏并网、风电变流器、储能PCS、APF、UPS的时候,几乎天天都要和它打交道。这次要聊的是一个藏在长标题里的硬核控制器——实时无功-有功控制器:两级VSC,电流反馈走αβ坐标…

2026/10/5 18:53:04

进程、线程、协程怎么答?从调度原理到高并发选型

1. 一场面试复盘:为什么进程、线程、协程这道题难倒了一大片人 前几天帮一位朋友准备面试题时,他把这道题发给我,说“这不就是背三个概念吗?进程是资源分配最小单位,线程是CPU调度最小单位,协程是用户态线程…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/4 0:01:02

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/5 17:38:27

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑