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:53] manu |
ansible:ansible_variables [2025/05/21 16:24] (current) manu |
||
|---|---|---|---|
| Line 119: | Line 119: | ||
| "ansible_distribution_release": "2", | "ansible_distribution_release": "2", | ||
| "ansible_distribution_version": "7.2", | "ansible_distribution_version": "7.2", | ||
| - | "ansible_nodename": "aixb200", | + | "ansible_nodename": "myaixhost", |
| "ansible_os_family": "AIX", | "ansible_os_family": "AIX", | ||
| "ansible_pkg_mgr": "yum", | "ansible_pkg_mgr": "yum", | ||
| Line 129: | Line 129: | ||
| </code> | </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> | ||
| + | |||
| + | |||