See what variables you can use in templates
Various facts about the remote system are available as variables for use in templates. The easiest way to check what those values are is to execute the setup module on the remote host, like so.
ansible foo.example.com -m setup
You will get back JSON information with all of the values available.
centos2 | success >> {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.1.14"
],
"ansible_all_ipv6_addresses": [
"fe80::20c:29ff:fe62:85d7"
],
"ansible_architecture": "x86_64",
"ansible_bios_date": "09/20/2012",
"ansible_bios_version": "6.00",
This means in a playbook you can use variables like:
${ansible_architecture}
or in a Jinja2 template this is just:
{{ ansible_architecture }}
Written by Michael DeHaan
Related protips
2 Responses
with ansible 0.9 if there is no /etc/ansible/hosts file on your executing host you will get a Traceback from Python complaining about the global inventory file being no present, if you don't have an /etc/ansible/hosts instead do a: 'ansible -i someinventoryfile foo.example.com -m setup'
@elee think maybe you wanted to start a new tip versus commenting on this one maybe.
Latest released is 1.0 and 1.1 is the current development branch, which doesn't present an error if that file is missing.