⚙️ Ansible - Inventories
Updated at 2017-03-22 01:46
Inventory is a collection of machines that Ansible is meant to manage.
# hosts file contents
web ansible_ssh_host=198.199.115.67
ansible <host-pattern> -i <hosts-file> -m <module-name> -a <arguments>
ansible all -i hosts -m ping
# Or if you have ansible.cfg with `inventory` defined:
ansible all -m ping
ansible webservers -m service -a "name=httpd state=restarted"
Inventory can also be a Python file. These are called dynamic inventories where Python script should print JSON about the current infrastructure.
./my_inventory.py --list
# ... should json.dump something like the following
{
"webserver": {
"vars": {
"ansible_user": "ubuntu"
},
"hosts": [
"34.251.191.44"
]
},
"worker": {
"vars": {
"ansible_user": "ubuntu"
},
"hosts": [
"34.248.245.45",
"34.248.245.46",
"34.248.245.47",
]
}
}
# Usage example:
ansible -i my_inventory.py all -m ping -k -v