Ansible-inventory
Inventory of managed nodes
https://www.digitalocean.com/community/tutorials/how-to-manage-multistage-environments-with-ansible
Inventory is defined in /etc/ansible/hosts
file. It allows you to define your managed hosts by hostname or IP address, and group them, such as "my_webservers_group" in our example in INI format.
Groups of groups, hierarchies, is also supported using (:children) keyword: [YOUR_NEW_GROUP_OF_GROUPS:children]
[1]
<source lang="yaml">
- This is a example of a host configuration file. You can use # to include your comments on hosts file
foo_server.example.com 192.168.6.1 bar_server.example.com
[my_webservers_group] foo5.example.com bar6.example.com
[my_dbservers_group] onedb1.example.com twodb.example.com
- Example of a server alias on standard Ansible port
my_local_defined_hostname ansible_host=192.0.2.50
- Example of a server alias on a non standard Ansible port
my_jumper_server_alias ansible_host=192.0.2.50 ansible_port=5555
</source>
You can also read Ansible best practices[2]
Basic operations with your inventory:
- List managed hosts:
ansible all --list-hosts
ansible YOUR_GROUP --list-hosts
ansible-inventory --graph
ansible-inventory --list
- To filter just one group of host:
ansible-inventory --list | jq '.["YOUR_GROUP_NAME"]'
- List defined groups
ansible localhost -m debug -a 'var=groups.keys()'
ansible localhost -m debug -a 'var=groups'
Advertising: