使用 PostgreSQL 作为 Ansible 配置清单 CMDB
Pigsty v2.7 默认从 pigsty.yml 读取 Ansible 配置清单。该版本同时提供了
三个脚本,可以将清单载入 meta 数据库的 pigsty 模式,并让 Ansible
改用动态生成的清单。
本文严格对应 v2.7.0 标签中的
bin/inventory_load、
bin/inventory_cmdb
与 bin/inventory_conf。
前置条件
默认 pg-meta 集群会通过
files/cmdb.sql
创建 CMDB 模式。请先完成 infra.yml 与 pg-meta 数据库初始化,并确认
meta 服务可访问。
默认的 ansible.cfg
包含:
载入 YAML 清单
bin/inventory_load 会读取 YAML 清单,并替换 pigsty.group、
pigsty.host、pigsty.group_var、pigsty.host_var 与
pigsty.global_var 中的记录。载入新清单前,应先检查或备份目标 CMDB。
脚本使用 -p|--path 指定 YAML 文件,使用 -d|--data 指定 PostgreSQL
连接串;默认值来自 PIGSTY_HOME 与 METADB_URL。
切换配置源
将 Ansible 切换到 CMDB 驱动的 inventory.sh:
bin/inventory_cmdb 会写入可执行的 inventory.sh,并修改
ansible.cfg 中的 inventory。生成的脚本通过 PostgreSQL meta 服务
查询 pigsty.inventory。
切回静态 pigsty.yml 清单:
这三个脚本只负责载入与切换配置源,并不会在 YAML 与 CMDB 之间提供自动 双向同步。后续修改仍应明确选择权威配置源并重新校验。