Hi,
I'm trying to set up a MySQL DB to hold all the ansible facts I produce from "ansible -m setup" (on lots of remote hosts), Store each .json file of each server in a directory but I'm having trouble finding a place to store them.
What do I want to do:
Well I've come from a puppet background, and one of the great things about puppet was puppetDB. I could query the DB for all sorts of facts (from facter including custom facts) and join them together. It was very powerful and I could get answers about my server estate quickly. So what I want is a way to setup the same thing in Ansible. Basically, to know how many of "something" I have in my estate (of 1000+ nodes) without having to use ansible to visit each one to find the answer.
What have I done so far:
It's a great tool and sort of does what I want but it doesn't list out all the fields in the DB that are in the .json file.
I get these:
mysql> DESCRIBE hosts;
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| name | varchar(255) | YES | | NULL | |
| fqdn | varchar(255) | YES | | NULL | |
| main_ip | varchar(15) | YES | | NULL | |
| os_name | varchar(80) | YES | | NULL | |
| os_version | varchar(40) | YES | | NULL | |
| system | varchar(40) | YES | | NULL | |
| kernel | varchar(40) | YES | | NULL | |
| arch_hardware | varchar(12) | YES | | NULL | |
| arch_userspace | varchar(12) | YES | | NULL | |
| virt_type | varchar(20) | YES | | NULL | |
| virt_role | varchar(20) | YES | | NULL | |
| cpu_type | varchar(60) | YES | | NULL | |
| vcpus | int(11) | YES | | NULL | |
| ram | float | YES | | NULL | |
| disk_total | float | YES | | NULL | |
| disk_free | float | YES | | NULL | |
+----------------+--------------+------+-----+---------+-------+
But not all of the .json fields are available and no custom facts. Maybe I need to play with this a bit more.
What do I want:
I'd love to be able to get a .json host file and import it directly into MySQL. add to the exiting table and be able to run a select statement on it. I guess this is why ansible-cmdb is around because there is nothing that already does this.
Can anyone recommend anyway to store the data so it can be queried on mass?
Any help would be appreciated.
Thanks
Dennis