kdiegorsantos.hadouken
Technical overview | Prerequisites | Installation | Running | Configuration | License
hadouken
This ansible role collects information about hardware and software from Linux servers, then inserts this information on a sqlite3 database.
The process happens in three phases.
- Distribute and execute hadouken.py
- Collect the json file that hadouken.py generates
- Execute update-db.py to load json info in the database
I also included commands that collects information about EMC Storage, Veritas InfoScale and Cluster Server.
Prerequisites
On ansible server.
- ansible 1.4 or higher
- sqlite3
dnf install ansible sqlite3
On other servers.
- dmidecode
- lsb
- python
dnf install dmidecode lsb python
Installation
Install using ansible-galaxy.
mkdir -p /etc/ansible/roles && cd /etc/ansible/roles && ansible-galaxy install kdiegorsantos.hadouken
Configuration
Create a group in your hosts ansible file named hadouken and fill with desired hosts.
cat <<EOF>> /etc/ansible/hosts
[hadouken]
webserver
dbserver
EOF
Change the default domain variable on defaults/main.yml.
cat <EOF> /etc/ansible/roles/kdiegorsantos.hadouken/defaults/main.yml
domain: .mydomain.com
EOF
Running
- ansible-playbook
Run this ansible role using the ansible-playbook command.
ansible-playbook /etc/ansible/roles/kdiegorsantos.hadouken/role.yml
- hadouken.py
Run hadouken.py manually on a host.
/usr/local/sbin/hadouken.py
server_name: snelnxa72
server_release: Red Hat Enterprise Linux Server release 5.11 (Tikanga)
server_site: SNE
server_vendor: HP
server_model: ProLiant BL460c Gen8
server_serial: BRC2532JH4
server_cpu: Intel Xeon CPU E5-2650 2.00GHz / 2 Socket(s) / 32 CPU(s)/ 8 Core(s) per socket
server_memory: 32 GB
server_ip: 10.168.81.77
server_cluster: idem_cluster
server_clusternodes: snelnx187 snelnx189 snelnxa36 snelnxa68 snelnxa69 snelnxa70 snelnxa71 snelnxa72 snelnxa73
server_frame: 000290102907 000592600076 000595700007 000595700008 CKM00154803864
server_wwpn: 10006c3be5b076f1 10006c3be5b076f5
server_db: None
- hadouken json file
Display the content from the json file generated by hadouken.py.
cat /var/tmp/snenix002.json | python -m json.tool
{
"server_cluster": "",
"server_clusternodes": "",
"server_cpu": "2 Socket(s) Intel Xeon CPU E5540 @ 2.53GHz/ 16 CPU(s)/ 4 Core(s) per socket",
"server_db": "",
"server_frame": "",
"server_ip": "10.168.90.103",
"server_memory": "32 GB",
"server_model": "ProLiant BL460c G6",
"server_name": "snenix002",
"server_release": "Red Hat Enterprise Linux Server release 6.8 (Santiago)",
"server_serial": "BRC952N120",
"server_site": "SNE",
"server_vendor": "HP",
"server_wwpn": ""
}
- db.sqlite
Run sql commands in a easy way using query-db.sh, just give an argument to begin the search.
/etc/ansible/roles/kdiegorsantos.hadouken/files/bin/query-db.sh BRC50966F0
server_id = 946
server_name = rjolnxc15
server_release = Red Hat Enterprise Linux Server release 6.5 (Santiago)
server_site = RJO
server_vendor = HP
server_model = ProLiant DL580 Gen8
server_serial = BRC50966F0
server_cpu = 4 Socket(s) Intel Xeon CPU E7-4890 v2 @ 2.80GHz/ 120 CPU(s)/ 15 Core(s) per socket
server_memory = 1292 GB
server_ip = 10.168.34.150
server_cluster =
server_clusternodes =
server_frame = 000595700042
server_wwpn = 5001438028cfc61c 5001438028cfc61e 5001438028cccf94 5001438028cccf96
server_db =
server_owner =
server_rack =
server_console =
last_update = 2016-09-23
- sqlite3 query
Run sql commands using sqlite3.
sqlite3 -header -column /etc/ansible/roles/kdiegorsantos.hadouken/files/db/db.sqlite "select * from info where server_name = 'snelnxa72'"
server_id server_name server_release server_site server_vendor server_model server_serial server_cpu server_memory server_ip server_cluster server_clusternodes server_frame server_wwpn server_db server_owner server_rack server_console last_update
---------- ----------- ------------------------------------------------------ ----------- ------------- ------------------ ------------- --------------------------------------------------------------------------- ------------- ------------- -------------- ------------------- ------------ ----------- ---------- ------------ ----------- -------------- -----------
1 snenix002 Red Hat Enterprise Linux Server release 6.8 (Santiago) SNE HP ProLiant BL460c G6 BRC952N120 2 Socket(s) Intel Xeon CPU E5540 @ 2.53GHz/ 16 CPU(s)/ 4 Core(s) per socket 32 GB 10.168.90.103 2016-09-23
License
This project is licensed under the MIT license. See included LICENSE.md.
Collect information about hardware and software from Linux servers and update a sqlite3 database with this informations.
ansible-galaxy install kdiegorsantos.hadouken