Pigsty CMDB

您可以使用 PostgreSQL 作为 Pigsty 的配置源,替代静态配置文件。

您可以使用 postgres 作为 Pigsty 的配置源,替代静态配置文件。

使用 CMDB 作为 Ansible 的动态 Inventory具有一些优点:元数据以高度结构化的方式以数据表的形式呈现,并通过数据库约束确保一致性。同时CMDB允许您使用第三方的工具来编辑管理Pigsty元数据,便于与外部系统相互集成。

目前 Pigsty 的CMDB仅支持 PostgreSQL 集群,如果您的 pigsty.yml 中包含 Redis与MatrixDB,则会报错,建议使用单独的 pigsty.yml 配置文件管理Redis与Greenplum集群。

加载配置

Pigsty CMDB的模式会在pg-meta元数据库初始化时自动创建(files/cmdb.sql),位于meta数据库的pigsty 模式中。使用bin/inventory_load可以将静态配置文件加载至CMDB中。

必须在元节点完整执行 infra.yml,安装完毕后,方可使用CMDB

  1. usage: inventory_load [-h] [-p PATH] [-d CMDB_URL]
  2. load config arguments
  3. optional arguments:
  4. -h, --help show this help message and exit
  5. -p PATH, --path PATH config path, ${PIGSTY_HOME}/pigsty.yml by default
  6. -d DATA, --data DATA postgres cmdb pgurl, ${METADB_URL} by default

默认情况下,不带参数执行该脚本将会把$PIGSTY_HOME/pigsty.yml的名称载入默认CMDB中。

  1. bin/inventory_load
  2. bin/inventory_load -p files/conf/pigsty-demo.yml
  3. bin/inventory_load -p files/conf/pigsty-dcs3.yml -d postgresql://dbuser_meta:DBUser.Meta@10.10.10.10:5432/meta

使用CMDB作为配置源

当原有配置文件加载至CMDB作为初始数据后,即可配置Ansible使用CMDB作为配置源:

  1. bin/inventory_cmdb

您可以切换回静态配置文件:

  1. bin/inventory_conf

修改配置源实质上是编辑Pigsty目录下的 ansible.cfg 实现的。

  1. ---
  2. inventory = pigsty.yml
  3. +++
  4. inventory = inventory.sh

最后修改 2022-05-27: init commit (1e3e284)