This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ansible:ansible_variables [2021/09/13 10:26] manu |
ansible:ansible_variables [2025/05/21 16:24] (current) manu |
||
---|---|---|---|
Line 97: | Line 97: | ||
"ansible_distribution_version": "15.1", | "ansible_distribution_version": "15.1", | ||
</cli> | </cli> | ||
+ | |||
+ | Example of facts on AIX | ||
+ | <code> | ||
+ | { | ||
+ | "_ansible_facts_gathered": true, | ||
+ | "ansible_all_ipv4_addresses": [ | ||
+ | "10.10.10.100" | ||
+ | ], | ||
+ | "ansible_all_ipv6_addresses": [ | ||
+ | "::1%1" | ||
+ | ], | ||
+ | "ansible_apparmor": { | ||
+ | "status": "disabled" | ||
+ | }, | ||
+ | "ansible_architecture": "chrp", | ||
+ | "ansible_date_time": { | ||
+ | ... | ||
+ | }, | ||
+ | "ansible_distribution": "AIX", | ||
+ | "ansible_distribution_major_version": "7", | ||
+ | "ansible_distribution_release": "2", | ||
+ | "ansible_distribution_version": "7.2", | ||
+ | "ansible_nodename": "myaixhost", | ||
+ | "ansible_os_family": "AIX", | ||
+ | "ansible_pkg_mgr": "yum", | ||
+ | "ansible_processor": "PowerPC_POWER8", | ||
+ | "ansible_processor_cores": 8, | ||
+ | "ansible_processor_count": 1, | ||
+ | "ansible_product_name": "IBM,8284-22A", | ||
+ | "ansible_product_serial": "21xxxxV", | ||
+ | |||
+ | </code> | ||
+ | |||
+ | Example on linux ppc64le | ||
+ | <code> | ||
+ | { | ||
+ | "_ansible_facts_gathered": true, | ||
+ | "ansible_all_ipv4_addresses": [ | ||
+ | "10.x.x.x0" | ||
+ | ], | ||
+ | "ansible_all_ipv6_addresses": [ | ||
+ | "fe80::5b6c:b599:xxx9:xxxc" | ||
+ | ], | ||
+ | "ansible_apparmor": { | ||
+ | "status": "disabled" | ||
+ | }, | ||
+ | "ansible_architecture": "ppc64le", | ||
+ | "ansible_bios_date": "NA", | ||
+ | "ansible_bios_vendor": "NA", | ||
+ | "ansible_bios_version": "NA", | ||
+ | "ansible_board_asset_tag": "NA", | ||
+ | "ansible_board_name": "NA", | ||
+ | "ansible_board_serial": "NA", | ||
+ | "ansible_board_vendor": "NA", | ||
+ | "ansible_board_version": "NA", | ||
+ | "ansible_chassis_asset_tag": "NA", | ||
+ | "ansible_chassis_serial": "NA", | ||
+ | "ansible_chassis_vendor": "NA", | ||
+ | "ansible_chassis_version": "NA", | ||
+ | "ansible_cmdline": { | ||
+ | "BOOT_IMAGE": "/vmlinuz-4.18.0-240.el8.ppc64le", | ||
+ | "ansible_distribution": "CentOS", | ||
+ | "ansible_distribution_file_parsed": true, | ||
+ | "ansible_distribution_file_path": "/etc/redhat-release", | ||
+ | "ansible_distribution_file_variety": "RedHat", | ||
+ | "ansible_distribution_major_version": "8", | ||
+ | "ansible_distribution_release": "NA", | ||
+ | "ansible_distribution_version": "8.4", | ||
+ | "ansible_nodename": "mylnxhost", | ||
+ | "ansible_os_family": "RedHat", | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ==== How to Create and Use Custom Facts in Ansible ==== | ||
+ | |||
+ | Custom facts (local facts) are the variables which are declared on ansible managed host. Custom facts are declared in ini or json file in the /etc/ansible/facts.d directory on managed host. File names of custom facts must have .fact extension. | ||
+ | |||
+ | https://www.linuxtechi.com/create-use-custom-facts-in-ansible/ | ||
+ | |||
+ | |||
+ | Get the value of a variable Ex: var1 | ||
+ | <cli prompt='#'> | ||
+ | opensuse:~ # ansible -i "node2," all -e "var1=toto" -m debug -a 'msg={{ var1 }}' | ||
+ | </cli> | ||
+ | |||
+ | ===== Ansible inventory ===== | ||
+ | |||
+ | <cli prompt='$'> | ||
+ | $ ansible --version | grep 'config file' | ||
+ | config file = /home/tux/.ansible.cfg | ||
+ | $ ansible-config dump --only-changed | ||
+ | DEFAULT_BECOME(/home/tux/.ansible.cfg) = True | ||
+ | DEFAULT_BECOME_METHOD(/home/tux/.ansible.cfg) = sudo | ||
+ | DEFAULT_HOST_LIST(/home/tux/.ansible.cfg) = ['/home/tux/ | ||
+ | inventory'] | ||
+ | DEFAULT_REMOTE_USER(/home/tux/.ansible.cfg) = ansible | ||
+ | </cli> | ||
+ | |||
+ | List all hosts, use the keyword **all**. To specify all host not in a group use **ungrouped** | ||
+ | <cli prompt='$'> | ||
+ | $ ansible all --list-hosts | ||
+ | hosts (21): | ||
+ | green.example.com | ||
+ | blue.example.com | ||
+ | 192.168.100.1 | ||
+ | 192.168.100.10 | ||
+ | alpha.example.org | ||
+ | beta.example.org | ||
+ | www001.example.com | ||
+ | www002.example.com | ||
+ | www003.example.com | ||
+ | db-99-node.example.com | ||
+ | db-100-node.example.com | ||
+ | db-101-node.example.com | ||
+ | </cli> | ||
+ | |||
+ | List the group webservers | ||
+ | <cli prompt='$'> | ||
+ | $ ansible webservers --list-hosts | ||
+ | hosts (10): | ||
+ | alpha.example.org | ||
+ | beta.example.org | ||
+ | 192.168.1.100 | ||
+ | 192.168.1.110 | ||
+ | www001.example.com | ||
+ | www002.example.com | ||
+ | www003.example.com | ||
+ | </cli> | ||
+ | |||
+ | Print inventory in YML format | ||
+ | <cli prompt='$'> | ||
+ | $ ansible-inventory --list --yaml | ||
+ | all: | ||
+ | children: | ||
+ | ungrouped: | ||
+ | hosts: | ||
+ | 172.16.120.161: {} | ||
+ | 172.16.120.185: {} | ||
+ | 172.16.120.188: {} | ||
+ | </cli> | ||
+ | |||
+ | ===== Custom variable ===== | ||
+ | |||
+ | ==== Time / date ==== | ||
+ | |||
+ | <code> | ||
+ | - hosts: test | ||
+ | vars: | ||
+ | time: "{{ lookup('pipe', 'date -d \"1 day ago\" +\"%Y%m%d\"') }}" | ||
+ | </code> | ||
+ | |||
+ |