用途
用于在 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 集合)与环境,资料仅给出示例配置与脚本。