構成管理データベースを作るためのソフトウェアです. 以下のCMDB-exporterが保持しているssコマンドとESXiホストの情報から作成します.
https://github.com/cdsl-research/CMDB-exporter2
- Ubuntu 24.04.1 LTS
- K3s
- MySQL
- Python 3.10.12
- ライブラリ
- xmlrpc.client
- mysql.connector
- ライブラリ
.
├── cmdb
│ ├── mysql-pvc.yaml
│ └── mysql.yaml
├── cmdb-creater
│ ├── cmdb-create.py
│ ├── __pycache__
│ │ └── target_get.cpython-312.pyc
│ └── target_get.py
└── README.md
cmdb
mysql-pvc.yaml
:MySQLのPVCをK3s上に立てるためのYAMLファイルmysql.yaml
:MySQLのserveceやdeployment,を立てるためのYAMLファイル
cmdb-creater
target_get.py
- insert_to_mysql():CMDBを構成するMySQLに対してCMDB-exporterが取得してきたデータを格納
- get_network_status_from_servers():CMDB-exporterに対してデータを要求し,データを入れるように整形
cmdb-create.py
- main():target.pyの内容を実行する関数
準備
まずはCMDBに入れるようのDBを作成します.なおMySQLをK3s上に配置します.
cdで対象のディレクトリに移動
$ cd CMDB-Creater/cmdb
NameSpaceの作成
$ kubectl create ns cmdb
namespace/cmdb created
$
PVCの配置
$ kubectl apply -f mysql-pvc.yaml -n cmdb
persistentvolumeclaim/mysql-pvc created
$
deploymentとserviceの配置
$ kubectl apply -f mysql.yaml -n cmdb
service/mysql-server created
deployment.apps/mysql-server created
configmap/mysql-server-initdb-config created
configmap/mysql-server-conf-config created
$
podとserviceが立っているかどうかを確認します.
$ kubectl get pods -n cmdb
NAME READY STATUS RESTARTS AGE
mysql-server-75c9cc7bd5-vhqrh 1/1 Running 0 10h
$ kubectl get svc -n cmdb
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysql-server NodePort 10.43.253.57 <none> 3306:32000/TCP 10h
$
CMDB-Createrの使い方
対象のディレクトリに移動
cd CMDB-Creater/cmdb-creater
実行
$ python3 cmdb-create.py
こんな感じの表示が出ればOKです.

MySQLにデータが入っているかも確認しましょう.
$ mysql -uroot -h monitoring-master-ml -p -P 32000
データベースの確認
mysql> show databases;

cmdbを選択
mysql> use cmdb;
cmdbの中にあるnetwork_statusを確認
mysql> SELECT * FROM network_status;

これは以下のリンクにあるAutofiltering用のソフトウェアなのでぜひそっちも使ってください. https://github.com/cdsl-research/AutoFiltering-v2