Number 1: Preparing Ansible.cfg
ansible.cfg is used to customize the behavior of Ansible and define various settings and options for managing infrastructure and deploying applications. Inside you ansible_cluster. Create an ansible.cfg
[defaults]
inventory = inventory
private_key_file = ~/.ssh/id_rsa
become = true
become_user = root
Number 2: To Test the Connection with Nodes via SSH
[root@h001 ansible_cluster]# ansible all -m ping
192.168.200.161 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
192.168.200.160 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
192.168.200.162 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
192.168.200.163 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
Number 3: Listing Hosts
[root@h001 ansible_cluster]# ansible all --list-hosts
hosts (4):
192.168.200.160
192.168.200.161
192.168.200.162
192.168.200.163
Number 4: Gather Facts about Hosts
Lots of information regarding the hosts….. If you want to limit to a single hosts, use the parameter “–limit”
[root@h001 ansible_cluster]# ansible all -m gather_facts --limit 192.168.200.161
192.168.200.161 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.200.161"
],
"ansible_all_ipv6_addresses": [
"fe80::5eed:8cff:fe80:aee3"
],
"ansible_apparmor": {
"status": "disabled"
},
"ansible_architecture": "x86_64",
"ansible_bios_date": "02/02/2023",
"ansible_bios_vendor": "HPE",
"ansible_bios_version": "U46",
"ansible_board_asset_tag": "NA",
"ansible_board_name": "ProLiant DL360 Gen10 Plus",
...
...
...
Number 4a: Gather Facts about Hosts Distribution
[root@h001 ansible_cluster]# ansible all -m gather_facts --limit 192.168.200.161 |grep distribution
"ansible_distribution": "Rocky",
"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": "Green Obsidian",
"ansible_distribution_version": "8.7",
References:
- Learn Linux TV Chapter 4
- Ansible Quickstart
- Ansible CLI cheatsheet