讲师中心 微信公众号
AI工具推荐 视频效率加速

Ansible怎么编写Inventory清单并对主机进行分组定义

轻墨大大_5602

轻墨大大_5602

发布时间:2026-10-30 11:57:17

|

932人浏览过

|

来源于php中文网

原创

Ansible默认读取/etc/ansible/hosts,但推荐项目级inventory文件并用-i指定;支持INI(轻量常用)和YAML(适合复杂嵌套)格式;INI中用[group]定义组,支持内联变量、children子组和all:vars全局变量;动态Inventory可用插件或group_by按变量实时分组;调试用ansible-inventory --list检查结构。

ansible怎么编写inventory清单并对主机进行分组定义

Inventory 文件的基本格式和路径位置

Ansible 默认从 /etc/ansible/hosts 读取 Inventory,但更推荐用项目级的 inventory 或 hosts 文件(比如放在 playbook 同级目录),并通过 -i 参数显式指定:ansible-playbook -i inventory site.yml。不建议直接改系统级路径,容易和他人或自动化流程冲突。

Inventory 支持 INI 和 YAML 两种格式,INI 更常见、更轻量,YAML 更适合复杂嵌套分组。初学者从 INI 入手即可,它直观、容错强、编辑方便。

用 INI 格式定义主机和主机组

INI 格式里,方括号 [group_name] 表示组,下面缩进或换行写的主机名(或 IP)属于该组。支持内联变量、别名、端口、用户等配置。

  • web01 ansible_host=192.168.1.10 ansible_user=deploy ansible_port=2222 —— 主机别名 + 实际地址 + 自定义连接参数
  • [webservers] —— 组声明,下一行开始写属于该组的主机(可跨多行)
  • [dbservers:children] —— 定义“组的组”,即父组包含其他组(注意必须带 :children 后缀)
  • [all:vars] —— 为所有主机统一设置变量,比如 ansible_python_interpreter=/usr/bin/python3

注意:主机名不能重复;组名不要用连字符(-)开头,Ansible 会误判为命令行选项;空行和以 # 开头的行会被忽略。

动态 Inventory 和基于变量的分组逻辑

静态文件不够用时(比如云主机自动伸缩),就得用动态 Inventory 脚本或插件。Ansible 原生支持 aws_ec2、azure_rm、digital_ocean 等插件,只需启用并配好认证凭据,运行时自动拉取最新主机列表。

但更常见的“动态分组”其实是靠变量驱动:比如主机清单里给每台机器打标签 env=prod、role=cache,然后在 playbook 中用 group_by 模块实时聚类:

- name: Group hosts by role tag
  group_by:
    key: "role_{{ ansible_facts['env'] }}"

这样就临时生成了 role_prod、role_dev 这样的组,后续任务可用 hosts: role_prod 直接调用。比硬编码分组更灵活,也避免清单频繁变更。

常见错误和调试技巧

执行时报 ERROR! Specified inventory is not a valid file or directory,先确认 -i 后路径存在且有读权限;用 ansible-inventory -i inventory --list 可以打印解析后的完整结构,是排查语法错误最直接的方式。

  • 主机无法解析?检查 ansible_host 是否拼错,或是否漏写——没设时默认用行首字符串当 hostname 去 DNS 查,常失败
  • 组内主机没生效?确认没有混用空格和 tab 缩进(INI 不认缩进,只认换行和 [ ]),也不要给组名加引号
  • 变量覆盖混乱?记住优先级:play vars > inventory group vars > inventory host vars > all:vars > 命令行 -e

分组不是为了好看,而是为了精准控制执行范围。真正难的不是写对语法,是想清楚哪些变量该放 host 级、哪些该提成 group 级、哪些得用 host_vars/ 目录单独管理——这直接影响 playbook 的复用性和后期维护成本。

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

20

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

40

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

140

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

80

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

80

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

40

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

80

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Miniconda官方安装文档
Miniconda官方安装文档

共0课时 | 0人学习

phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 196人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn