139 lines
4.6 KiB
ReStructuredText
139 lines
4.6 KiB
ReStructuredText
.. _setup:
|
|
|
|
setup
|
|
`````
|
|
|
|
This module is automatically called by playbooks to gather useful variables about remote hosts that can be used
|
|
in playbooks. It can also be executed directly by /usr/bin/ansible to check what variables are available
|
|
to a host.
|
|
|
|
Ansible provides many 'facts' about the system, automatically.
|
|
|
|
Some of the variables that are supplied are listed below. These in particular
|
|
are from a VMWare Fusion 4 VM running CentOS 6.2::
|
|
|
|
"ansible_facts": {
|
|
"ansible_all_ipv4_addresses": [
|
|
"192.168.144.180",
|
|
"192.168.122.1"
|
|
],
|
|
"ansible_all_ipv6_addresses": [
|
|
"ffff::fff:ffff:ffff:ffff"
|
|
],
|
|
"ansible_architecture": "x86_64",
|
|
"ansible_bios_date": "06/02/2011",
|
|
"ansible_bios_version": "6.00",
|
|
"ansible_default_ipv4": {
|
|
"address": "192.168.144.180",
|
|
"alias": "eth0",
|
|
"gateway": "192.168.144.2",
|
|
"interface": "eth0",
|
|
"macaddress": "AA:BB:CC:DD:EE:FF",
|
|
"mtu": "1500",
|
|
"netmask": "255.255.255.0",
|
|
"network": "192.168.144.0",
|
|
"type": "ether"
|
|
},
|
|
"ansible_default_ipv6": {},
|
|
"ansible_distribution": "CentOS",
|
|
"ansible_distribution_release": "Final",
|
|
"ansible_distribution_version": "6.2",
|
|
"ansible_eth0": {
|
|
"device": "eth0",
|
|
"ipv4": {
|
|
"address": "192.168.144.180",
|
|
"netmask": "255.255.255.0",
|
|
"network": "192.16.144.0"
|
|
},
|
|
"ipv6": [
|
|
{
|
|
"address": "ffff::fff:ffff:ffff:ffff",
|
|
"prefix": "64",
|
|
"scope": "link"
|
|
}
|
|
],
|
|
"macaddress": "00:0c:29:b6:a2:62",
|
|
"mtu": "1500",
|
|
"type": "ether"
|
|
},
|
|
"ansible_form_factor": "Other",
|
|
"ansible_fqdn": "localhost.localdomain",
|
|
"ansible_hostname": "localhost",
|
|
"ansible_interfaces": [
|
|
"lo",
|
|
"virbr0",
|
|
"eth0"
|
|
],
|
|
"ansible_kernel": "2.6.32-220.2.1.el6.x86_64",
|
|
"ansible_lo": {
|
|
"device": "lo",
|
|
"ipv4": {
|
|
"address": "127.0.0.1",
|
|
"netmask": "255.0.0.0",
|
|
"network": "127.0.0.0"
|
|
},
|
|
"ipv6": [
|
|
{
|
|
"address": "::1",
|
|
"prefix": "128",
|
|
"scope": "host"
|
|
}
|
|
],
|
|
"macaddress": "00:00:00:00:00:00",
|
|
"mtu": "16436",
|
|
"type": "loopback"
|
|
},
|
|
"ansible_machine": "x86_64",
|
|
"ansible_memfree_mb": 166,
|
|
"ansible_memtotal_mb": 993,
|
|
"ansible_processor": [
|
|
"Intel(R) Core(TM) i7-2677M CPU @ 1.80GHz"
|
|
],
|
|
"ansible_processor_cores": "NA",
|
|
"ansible_processor_count": 1,
|
|
"ansible_product_name": "VMware Virtual Platform",
|
|
"ansible_product_serial": "REDACTED",
|
|
"ansible_product_uuid": "REDACTED",
|
|
"ansible_product_version": "None",
|
|
"ansible_python_version": "2.6.6",
|
|
"ansible_selinux": {
|
|
"config_mode": "enforcing",
|
|
"mode": "permissive",
|
|
"policyvers": 24,
|
|
"status": "enabled",
|
|
"type": "targeted"
|
|
},
|
|
"ansible_ssh_host_key_dsa_public": "REDACTED",
|
|
"ansible_ssh_host_key_rsa_public": "REDACTED",
|
|
"ansible_swapfree_mb": 1933,
|
|
"ansible_swaptotal_mb": 2015,
|
|
"ansible_system": "Linux",
|
|
"ansible_system_vendor": "VMware, Inc.",
|
|
"ansible_virbr0": {
|
|
"device": "virbr0",
|
|
"ipv4": {
|
|
"address": "192.168.122.1",
|
|
"netmask": "255.255.255.0",
|
|
"network": "192.168.122.0"
|
|
},
|
|
"macaddress": "AA:BB:CC:DD:EE:FF",
|
|
"mtu": "1500",
|
|
"type": "ether"
|
|
},
|
|
"ansible_virtualization_role": "guest",
|
|
"ansible_virtualization_type": "VMware",
|
|
|
|
More ansible facts will be added with successive releases.
|
|
|
|
If facter or ohai are installed, variables from these programs will
|
|
also be snapshotted into the JSON file for usage in templating. These
|
|
variables are prefixed with ``facter_`` and ``ohai_`` so it's easy to
|
|
tell their source.
|
|
|
|
All variables are bubbled up to the caller. Using the ansible facts and choosing
|
|
to not install facter and ohai means you can avoid ruby-dependencies
|
|
on your remote systems.
|
|
|
|
Example action from `/usr/bin/ansible`::
|
|
|
|
ansible testserver -m setup
|