Ansible
DevOps automation framework.
- What makes Ansible unique is not host agent, all done through ssh.
Links / Playbooks
Ansible module ping host
ping/test connectivity, create inventory file, and run module ping.
vi inventory.file [mygrp] myserver ansible mygrp -i inventory.file -m ping
Ansible module setup return facts about a host
ansible myserver -i inventory.file -m setup #Note: add "--tree /tmp/facts" to get facts from multiple servers in groupe, indexed by host cat /tmp/facts/* | jq '.ansible_facts | .ansible_fqdn + ", " + .ansible_distribution + ", python:"+.ansible_python_version +", IP:" + ( .ansible_all_ipv4_addresses | join(",") ) ' #or jq 'if( .unreachable == true ) then ( input_filename +" <<Missing data" ) else ( .ansible_facts | .ansible_fqdn + ", " + .ansible_distribution + ", python:"+.ansible_python_version +", IP:" + ( .ansible_all_ipv4_addresses | join(",") ) ) end ' /tmp/facts/*
Encrypt/Decrypt secrets with ansible-vault before saving in git
Ansible error's
2020-09 [WARNING]: Unable to parse <file> as an inventory source
Debug with
ansible --list-hosts all -i <file> -vvv
- error seen "Skipping due to inventory source not existing or not being readable by the current user"
- Apparently ansible tries to parse inventory files with different plugins, ini, yaml, etc.