examples/hosts.yaml
1942cd33
 # This is the default ansible 'hosts' file.
 #
 # It should live in /etc/ansible/hosts
 #
 #   - Comments begin with the '#' character
 #   - Blank lines are ignored
71971863
 #   - Top level entries are assumed to be groups, start with 'all' to have a full hierarchy
1942cd33
 #   - Hosts must be specified in a group's hosts:
 #     and they must be a key (: terminated)
 #   - groups can have children, hosts and vars keys
2e8f166b
 #   - groups are unique and global - if you define a group in multiple locations, Ansible aggregates all the data to the global name.
 #   - If you define a group as a child of 2 different groups, it will be the child of both, any hosts and variables assigned will not be dependent on the parents, they will all be associated with the group.
71971863
 #   - Anything defined under a host is assumed to be a var
 #   - You can enter hostnames or IP addresses
 #   - A hostname/IP can be a member of multiple groups
ced73389
 
751134ff
 # Ex 1: Ungrouped hosts, put them in 'all' or 'ungrouped' group, defines 4 hosts, one with 2 variables
ced73389
 ##all:
1942cd33
 ##  hosts:
 ##      green.example.com:
 ##          ansible_ssh_host: 191.168.100.32
4638b5f2
 ##          anyvariable: value
1942cd33
 ##      blue.example.com:
 ##      192.168.100.1:
 ##      192.168.100.10:
 
751134ff
 # Ex 2: A collection of hosts belonging to the 'webservers' group, with shared group var
 ##webservers:
 ##  hosts:
 ##     alpha.example.org:
 ##     beta.example.org:
 ##     192.168.1.100:
 ##     192.168.1.110:
 ##  vars:
 ##    http_port: 8080
1942cd33
 
 # Ex 3: You can create hosts using ranges and add children groups and vars to a group
2e8f166b
 # The child group can define anything you would normally add to a group.
751134ff
 # Hosts in child groups inherit all variables from parent, parents include all hosts in child groups.
 # webservers is added as a child group of testing, so all gamma hosts (1-3) are added
 # to the 'webservers' group, including gamma3, which is defined in the tree of another parent group.
 # All references to webservers will get any hosts defined under webservers.
 # References to testing will get all of those hosts plus any host matching www[001:006].example.com
 
 ##webservers:
 ##  hosts:
 ##    gamma1.example.org:
 ##    gamma2.example.org:
 ##testing:
 ##  hosts:
 ##    www[001:006].example.com:
 ##  vars:
 ##    testing1: value1
 ##  children:
 ##    webservers:
 ##other:
 ##  children:
 ##    webservers:
 ##      gamma3.example.org
 
 # From above, the testing group contains: gamma1.example.org gamma2.example.org gamma3.example.org www001.example.com www002.example.com www003.example.com www004.example.com www005.example.com www006.example.com
ced73389
 
 # Ex 4: all vars
b89cb956
 # keeping within 'all' group you can define common 'all' vars here with lowest precedence
ced73389
 
751134ff
 
 ##all:
1942cd33
 ##  vars:
ced73389
 ##      commontoall: thisvar