===== 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='')} ## ## 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