SuperAPI AI 工具集

ansible-inventory

部署与运维

查看项目

更新于 10-16 02:25

技能介绍

用途

用于在 Ansible 中管理主机与主机组,组织基础设施并跨环境应用配置。适用于把生产、预发布、开发等环境的主机、组结构和变量集中维护。

主要能力

  • 主机与组定义:支持简单主机列表、主机别名(ansible_host)、连接参数(ansible_user、ansible_port 等)。
  • 组与父子组:用 [group]、[group:children] 组织层级,例如 production 包含 webservers 与 databases。
  • 主机变量与组变量:可在 INI 中直接赋值,也可用 [group:vars] 定义组变量。
  • INI 与 YAML 两种清单格式:YAML 通过 all、hosts、children、vars、children 嵌套表达复杂结构。
  • 主机范围写法:支持 web[1:10].example.com、db[01:05].example.com、app-[a:f].example.com 等数字与字母范围。
  • 动态清单:提供 Python 动态清单脚本示例,支持 --list 与 --host 协议,并通过 _meta.hostvars 提供主机变量。
  • 云资源动态清单:提供 AWS EC2 动态清单脚本示例,按标签(Environment、Role、Application)、实例类型与可用区分组。
  • 清单插件配置:示例 inventory.aws_ec2.yml,包含 plugin、regions、filters、keyed_groups、compose、hostnames 等配置。
  • 清单目录结构:展示 production/staging/development 目录下 hosts.yml、group_vars、host_vars 的组织方式。
  • 变量优先级:给出从 role defaults 到 extra vars 的完整优先级顺序。
  • 连接变量:涵盖 SSH 连接设置,以及 winrm、docker、local 等替代连接方式。
  • 清单查看与校验:示例使用 ansible-inventory -i inventory/p 列出主机。

使用方式

在 INI 或 YAML 清单文件中声明主机、组、组变量与主机变量,也可编写动态清单脚本或以清单插件配置自动生成清单;使用 ansible-inventory 等命令查看与校验清单。

适用场景

  • 按环境(生产、预发布、开发)组织多台主机与分层组结构。
  • 为不同组设置 Nginx、PostgreSQL 等应用相关变量与连接参数。
  • 通过云标签或实例属性自动生成并分组动态主机清单。

限制

资料未提供该技能的收费、价格、平台支持范围或效果数据;动态清单与插件功能的具体可用性取决于相应依赖(如 boto3、amazon.aws 集合)与环境,资料仅给出示例配置与脚本。