ansible-cmdb 获取Ansible facts数据的输出,并将其转换为包含系统配置信息的静态HTML概述页面(及其他内容)。
. I# y1 r5 p, I安装
( ~% f! \0 m( [& O8 Z
yum -y install python-pip
5 `6 t5 ^/ ?. v+ S% U% G2 [pip install ansible-cmdb
使用
生成所有主机得facts信息
1 F5 U& ~# f5 z: I6 x H/ X! h/ i2 d# T0 T M! Y
ansible -m setup --tree out/ all
生成web页面
- V- S1 _; `8 ?2 n
1 N0 _+ V2 g( e2 @: mansible-cmdb out/ > overview.html
7 q8 r8 V. r6 i# |- V6 Q4 ~9 }) r
# t" Q0 w: V( c' N如果facts用了本地缓存,-f 指定缓存目录即可。
' Y7 S& g" ` A4 Y
6 f7 }& q3 g; qansible-cmdb -f /path/to/facts/dir > overview.html
以资产列表得形式统计出ansible主机信息。
/ i) m: v2 ?2 e7 c2 m m
- \6 A: Y* b a0 B/ y, s
# ansible-cmdb -t txt_table --columns name,os,ip,mem,cpus out/
Name OS IP Mem CPUs
--------- ---------- -------------- --- ----
localhost CentOS 7.6 192.168.77.130 1g 1
输出csv格式的主机信息。
$ |2 n1 v' k1 C! C9 h, U* s) i0 ~6 C( z0 V- Y
# ansible-cmdb -t csv out/
"Name","OS","IP","Arch","Mem","MemFree","MemUsed","CPUs","Virt","Disk avail"
"localhost","CentOS 7.6","192.168.77.130","x86_64/x86_64","1g","0g","1g","1","VMware/guest","28.0g, 0.0g"
输出sql文件,导入数据到mysql或者SQLite。
( d; h6 g0 p% P+ S1 G" g5 G
- l" e3 w8 L: G* p# ansible-cmdb -t sql out/
DROP TABLE IF EXISTS hosts;
CREATE TABLE hosts (
name VARCHAR(255),
fqdn VARCHAR(255),
main_ip VARCHAR(15),
os_name VARCHAR(80),
os_version VARCHAR(40),
system VARCHAR(40),
kernel VARCHAR(40),
arch_hardware VARCHAR(12),
arch_userspace VARCHAR(12),
virt_type VARCHAR(20),
virt_role VARCHAR(20),
cpu_type VARCHAR(60),
vcpus INT,
ram FLOAT,
disk_total FLOAT,
disk_free FLOAT
);
! L- X- m8 L, t6 l' x
INSERT INTO hosts (
name,
fqdn,
main_ip,
os_name,
os_version,
system,
kernel,
arch_hardware,
arch_userspace,
virt_type,
virt_role,
cpu_type,
vcpus,
ram,
disk_total,
disk_free
) VALUES (
"localhost",
"a23-202-231-167.deploy.static.akamaitechnologies.com",
"192.168.77.130",
"CentOS",
"7.6",
"Linux",
"5.1.11-1.el7.elrepo.x86_64",
"x86_64",
"x86_64",
"VMware",
"guest",
"Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz",
1,
0.9,
29.8,
27.4
);
其他模板格式。
4 D3 F$ C; W; R+ w+ i: r/ |; y8 }6 w, k! k) k
ansible-cmdb -t json out/
ansible-cmdb -t markdown out/