When installing Ansible on Linux, ansible.cfg and hosts files are at /etc/ansible. Instead of changing the files there, I am going to create a more contained Ansible environment.
I am doing this because of the following 3 reasons.
- The configuration and host list does not get affected by external changes.
- The changes can be traced with source control like Git.
- The changes can be reviewed by your peers for any error.
Let’s create the ansible.cfg file.
ansible-config init --disabled -t all > ansible.cfg
Now I am going to create hosts file in the same directory with the following content.
[jenkins]
jenkins.hayato-iriumi.net ansible_user=opc
[test]
ansibletest.westcentralus.cloudapp.azure.com ansible_user=azureuser
Now add or uncomment the following line in ansible.cfg file.
inventory=./hosts
Test run.
ansible all -m ping
As long as you can access those hosts from your ssh, the command should be successful.
ansibletest.westcentralus.cloudapp.azure.com | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
jenkins.hayato-iriumi.net | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}