使用 PostgreSQL 作为 Ansible 的配置清单与 CMDB
Categories:
您可以使用 PostgreSQL 作为 Pigsty 的配置源,替代静态 YAML 配置文件。
使用 CMDB 作为 Ansible 的动态 配置清单 具有一些优点:元数据以高度结构化的方式以数据表的形式呈现,并通过数据库约束确保一致性。 同时,使用 CMDB 允许您使用第三方的工具来编辑管理 Pigsty 元数据,便于与外部系统相互集成。
Ansible配置原理
Pigsty 默认的配置文件路径在 ansible.cfg
中指定为:inventory = pigsty.yml
修改该参数,可以更改默认使用的配置文件路径。如果您将其指向一个可执行的脚本文件,那么 Ansible 会使用动态 Inventory 机制,执行该脚本,并期待该脚本返回一份配置文件。
修改配置源实质上是编辑Pigsty目录下的 ansible.cfg
实现的:
---
inventory = pigsty.yml
+++
inventory = inventory.sh
而 inventory.sh
则是一个从 PostgreSQL CMDB 的记录中,生成等效 YAML/JSON 配置文件的简单脚本。
你可以使用 bin/inventory_cmdb
切换到动态的 CMDB 清单,
使用 bin/inventory_conf
返回到本地配置文件。
你还需要使用 bin/inventory_load
将当前的配置文件清单加载到 CMDB。
加载配置
Pigsty CMDB的模式会在pg-meta
元数据库初始化时自动创建(files/cmdb.sql
),位于meta
数据库的pigsty
模式中。使用bin/inventory_load
可以将静态配置文件加载至CMDB中。
必须在元节点完整执行
infra.yml
安装完毕后,方可使用 CMDB
usage: inventory_load [-h] [-p PATH] [-d CMDB_URL]
load config arguments
optional arguments:
-h, --help show this help message and exit„
-p PATH, --path PATH config path, ${PIGSTY_HOME}/pigsty.yml by default
-d DATA, --data DATA postgres cmdb pgurl, ${METADB_URL} by default
默认情况下,不带参数执行该脚本将会把$PIGSTY_HOME/pigsty.yml
的名称载入默认CMDB中。
bin/inventory_load
bin/inventory_load -p conf/demo.yml
bin/inventory_load -p conf/prod.yml -d postgresql://dbuser_meta:DBUser.Meta@10.10.10.10:5432/meta
当原有配置文件加载至 CMDB 作为初始数据后,即可配置 Ansible 使用 CMDB 作为配置源:
bin/inventory_cmdb
您可以切换回静态配置文件:
bin/inventory_conf
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.