当前位置: 首页 > article >正文

ansible中的inventory.ini 文件详解

1. 主机定义

主机是 Ansible 管理的最小单元,可以是 IP 或域名,支持直接定义或附加参数。

基础语法
# 直接定义主机(IP 或域名)
192.168.1.10
example.com# 定义主机并指定连接参数(如端口、用户等)
web1.example.com ansible_port=2222 ansible_user=admin
特殊参数(常用)
  • ansible_port: SSH 端口(默认 22)

  • ansible_user: SSH 用户名

  • ansible_ssh_private_key_file: 私钥路径

  • ansible_python_interpreter: 指定 Python 解释器路径(如系统默认非 Python3)


2. 主机组

主机组用于逻辑分类,方便批量操作。组名用 [] 定义,下方列成员。

示例
[web_servers]
web1.example.com
web2.example.com[db_servers]
db1.example.com
db2.example.com ansible_user=postgres  # 覆盖组变量
操作组
# 仅对 web_servers 组执行命令
ansible web_servers -m ping

3. 变量

变量可分配给 主机 或 ,优先级:主机变量 > 子组变量 > 父组变量。

主机变量
# 直接附加到主机行
web1.example.com http_port=80 max_requests=100# 或在下方缩进定义
web1.example.comhttp_port=80max_requests=100
组变量
[web_servers:vars]  # 定义组变量
http_port=80
backup_dir=/var/www[all:vars]          # 全局变量(所有主机生效)
ansible_python_interpreter=/usr/bin/python3

4. 子组

子组通过 :children 定义,继承父组的变量,支持嵌套层级。

示例
# 定义父组 app_servers,包含 web_servers 和 db_servers 子组
[app_servers:children]
web_servers
db_servers# 子组可继承父组变量
[app_servers:vars]
environment=production

完整示例

# 主机定义
controller ansible_connection=local# 主机组
[web_servers]
web1.example.com
web2.example.com[db_servers]
db1.example.com ansible_user=postgres# 子组
[app_servers:children]
web_servers
db_servers# 组变量
[web_servers:vars]
http_port=80[app_servers:vars]
deploy_env=prod# 全局变量
[all:vars]
ansible_python_interpreter=/usr/bin/python3

注意事项

  1. 变量优先级:主机变量 > 当前组变量 > 父组变量 > all 组变量。

  2. 建议将复杂变量拆分到 group_vars/ 和 host_vars/ 目录。

  3. 使用 ansible-inventory --graph 可视化查看主机组结构。

http://www.lryc.cn/news/2392959.html

相关文章:

  • 基于AOD-Net与GAN的深度学习去雾算法开发
  • Rust 学习笔记:闭包
  • c# 获取电脑 分辨率 及 DPI 设置
  • 基于频分复用导频的MMSE信道估计方法设计与仿真
  • 低代码开发模式下的应用交付效率优化:拖拽式交互机制研究
  • STP配置
  • Linux操作系统 使用共享内存实现进程通信和同步
  • 如何优化微信小程序中渲染带有图片的列表(二进制流存储方式的图片存在本地数据库)
  • 尝鲜纯血鸿蒙,华为国际版本暂时不支持升级。如mateX6 国际版?为什么不支持?什么时候支持?
  • 《 PyTorch 2.3革新:torch.compile自动生成CUDA优化内核全解》
  • OpenCV中的分水岭算法 (C/C++)
  • Kafka 客户端连接机制的一个典型陷阱
  • 相机--RGB相机
  • 足球数据全解析:实时数据到高阶数据
  • [科研实践] VS Code (Copilot) + Overleaf (使用 Overleaf Workshop 插件)
  • 人工智能100问☞第36问:什么是BERT?
  • 从0开始学习R语言--Day12--泊松分布
  • 工控机安装lubuntu系统
  • 视频监控汇聚平台EasyCVR安防小知识:如何通过视频融合平台解决信息孤岛问题?
  • 在大型中实施访问控制 语言模型
  • Haption在危险、挑战性或受限环境中操作的情况提供了一种创新的遥操作解决方案
  • html中使用nginx ssi插入html
  • 行为型:状态模式
  • 优雅草最新实战项目技术Discuz X3.5电子签约插件开发项目实施方案优雅草·卓伊凡
  • 人工智能在智能金融中的创新应用与未来趋势
  • LeetCode:贪心算法
  • 基于本地化大模型的智能编程助手全栈实践:从模型部署到IDE深度集成学习心得
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.8 R语言解题
  • 引领机器人交互未来!MANUS数据手套解锁精准手部追踪
  • HarmonyNext使用request.agent.download实现断点下载