ansible-cmdb 从ansible事实收集输出生成主机概述

一、ansible-cmdb简介

ansible-cmdb将Ansible 实际收集的输出信息 转换为包含系统配置信息的静态HTML概述页面(以及其他内容)。它支持多种类型的输出(html,csv,sql等),并将由Ansible收集的信息与自定义数据进行扩展。对于每个主机,它还显示组,主机变量,自定义变量和机器本地事实。

开源项目地址:https://github.com/fboender/ansible-cmdb

二、使用教程

1、下载

wget https://github.com/fboender/ansible-cmdb/releases/download/1.27/ansible-cmdb-1.27-2.noarch.rpm
rpm -ivh ./ansible-cmdb-1.27-2.noarch.rpm

2、安装

yum install -y epel-release
yum install -y ansible

3、帮助

[root@localhost ~]# ansible-cmdb --help
Usage: ansible-cmdb.py [option] <dir> > output.html

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -t TEMPLATE, --template=TEMPLATE
                        Template to use. Default is 'html_fancy'
  -i INVENTORY, --inventory=INVENTORY
                        Inventory to read extra info from
  -f, --fact-cache      <dir> contains fact-cache files
  -p PARAMS, --params=PARAMS
                        Params to send to template
  -d, --debug           Show debug output
  -q, --quiet           Don't report warnings
  -c COLUMNS, --columns=COLUMNS
                        Show only given columns
  --exclude-cols=EXCLUDE_COLUMNS
                        Exclude cols from output

4、执行

(1)配置主机登录信息hosts文件

[root@localhost ~]# cat ./hosts 
[node]
172.17.185.91 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123321
172.17.185.92 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123321
172.17.185.93 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123321
172.17.185.94 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123321

(2)修改/etc/ansible/ansible.cfg

去掉配置文件/etc/ansible/ansible.cfg中的如下注释井号

#host_key_checking = False
host_key_checking = False

或直接用如下命令修改:

sed -i 's/.*\(host_key_checking\)/\1/' /etc/ansible/ansible.cfg

(3)创建一个收集数据存放目录

mkdir out

(4)使用ansible的setup模块收集数据生成文本文件,并存放到out目录下

ansible -i hosts -m setup --tree out/ all

(5)根据文本文件利用ansible-cmdb生成html页面

ansible-cmdb out/ > overview.html

用IE等浏览器打开overview.html文件看看吧:

三、ansible系列命令

使用如下命令可以获取到ansible系列的命令:

[root@localhost ~]# ls /usr/bin/ | grep ansible | grep -v [0-9]
ansible
ansible-cmdb
ansible-config
ansible-connection
ansible-console
ansible-doc
ansible-galaxy
ansible-inventory
ansible-playbook
ansible-pull
ansible-test
ansible-vault

1、ansible

ansible命令其实在运维工作中用的最多的命令,它的主要目的或者说是主要的应用场景是:在做临时性的操作的时候(比如只想看看被控端的一台主机或者多台主机是否存活),在man中的定义是:run a command somewhere else
ansible通过ssh实现配置管理、应用部署、任务执行等功能。

2、ansible-doc

ansible-doc是查看ansible模块(插件)文档说明,针对每个模块都有详细的用法说明,功能和Linux的man命令类似

3、ansible-playbook

ansible-playbook是日常用的最多的命令,其工作机制是:通过读取预先编写好yml格式的playbook文件实现批量管理,即按一定的条件组成ansible的任务集,然后执行事先编排好的这个任务集。可见于多机器安装部署程序等。

4、ansible-galaxy

ansible-galaxy命令是一个下载互联网上roles集合的工具(这里提到的roles集合其实就是多个playbook文件的集合)
roles集合所在地址:https://galaxy.ansible.com

5、ansible-pull

ansible-pull指令设计到了ansible的另一种的工作模式:pull模式(ansible默认使用的是push模式),这个和通常使用的push模式的工作机制正好相反(push拉取,pull推送)

6、ansible-console

ansible自己的终端

7、ansible-config

ansible-config命令用于查看,编辑管理ansible的配置文件。

8、ansible-connection

这是一个插件,指定执行模式(测试用)

9、ansible-inventory

查看被控制端主机清单的详细信息默认情况下它使用库存脚本,返回JSON格式。

10、ansible-vault

ansible-vault主要用于配置文件的加密,如编写的playbook配置文件中包含敏感的信息,不希望其他人随便的看,ansible-vault可加密/解密这个配置文件

 

更多详细教程见:

(1)https://www.cnblogs.com/brianzhu/category/1368500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值