Trace: 91130afsr ansible_cmdb

Ansible CMDB

RHEL 7:

$ sudo useradd -d /opt/ansible_cmdb -s /bin/bash ansible
$ sudo mkdir /opt/ansible_cmdb
$ sudo chown -R ansible.ansible /opt/ansible_cmdb/
$ sudo cd /opt/
$ su - ansible
$ virtualenv --python=/usr/bin/python3.4 ansible_cmdb
$ cd /opt/ansible_cmdb/
$ source bin/activate
$ pip install ansible-cmdb

Configure Templates

If you used /opt/ansible_cmdb for your virtualenv, the templates will be on /opt/ansible_cmdb/lib/python3.4/site-packages/ansiblecmdb/data/tpl/.

We will modify html_fancy, the default template, we will display a new column on the table, we want see SELinux info.

$ cd /opt/ansible_cmdb/lib/python3.4/site-packages/ansiblecmdb/data/tpl/
$ cp html_fancy_defs.html html_fancy_selinux_defs.html
$ cp html_fancy.tpl html_fancy_selinux.tpl

Edit html_fancy_selinux.tpl change the line:

<%namespace name="defs" file="/html_fancy_defs.html" import="*" />

To:

<%namespace name="defs" file="/html_fancy_selinux_defs.html" import="*" />

Edit html_fancy_selinux_defs.html, add one line on cols definition similar to:

    {"title": "Product Name",  "id": "prodname",      "func": col_prodname,       "sType": "string", "visible": False},
    {"title": "Product Serial","id": "prodserial",    "func": col_prodserial,     "sType": "string", "visible": False},
    {"title": "SELinux",       "id": "selinux",       "func": col_selinux,        "sType": "string", "visible": False},
  ]

Also add a new function on functions section:

<%def name="col_selinux(host, **kwargs)">
  ${jsonxs(host, 'ansible_facts.ansible_selinux', default='')}
</%def>

##
## Detailed host information blocks
##

Use with semaphore

I will suppose that your semaphore home is /home/semaphore.

The inventory will be a file with the name inventory_xxx (where x is a number) that will be you headache, every change on semaphore inventories will require a modification on your crontab script.

I will suppose that you inventory file is inventory_85.

Execute the ansible output for your hosts and create the html file:

$ ansible -m setup -i inventory_85 all --tree out/
$ ansible-cmdb out/> overview.html

Move the file to a web server visible file:

$ sudo mv overview.html /var/www/html/ansible-overview/index.html

Update

$ pip install --upgrade ansible-cmdb

SSL problems

$ pip install --upgrade --trusted-host pypi.org --trusted-host files.pythonhosted.org ansible-cmdb
ansible_cmdb.txt · Last modified: 2018/08/27 17:55
Public Domain Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain