Ansible proved to be a very useful tool that can make our life easier.
today, I am writing about my learning experience using Ansible and what my baby-steps toward the automation and programmability world of networking!
let's start with mentioning that Ansible has two ways (as I know) of configuration to interact with network devices or servers.
1. the short way > ad-hoc
2. the more advanced way > ansible playbooks
Ansible ad-hoc provides an easy and fast access to devices from your terminal and enables you to execute commands faster then the usual process, and also can help you access a list of multiple hosts at the same time and do stuff like gathering information in one line of command.
here in my example below you can see how I used the ansible command to access a switch with ip of "10.211.10.36" and used some of the usual commands that we use on Cisco IOS to show configuration or information to do our daily tasks.
the ansible command I used was:
%ansible all -i ./hosts -m raw -a "show interface status" -u samer -k
here the "all" means all the hosts ip addresses in the file name "hosts"
another output can be seen here below to "show arp" on the same switch:
while seeing the output like this seems very easy, but there might be some problems face you to get to the point that line of command can run without errors, so here is what I got and managed to fix with some google search:
1. Error about deffie-helman group between my MACOS and the switch which
Fix:
Note: this error will be seen also when you try to make a direct ssh from your terminal to the switch without even using ansible, which makes it a problem in the ssh of the MACOS in this case and here is how to solve.
a. Go to cd /etc/ssh/ and use $sudo nano ssh_config
b. uncomment the following parts
c. paste the following at the end of the same file
save the changes and try to ssh again from your terminal, if that works then try your ad-hoc command and it should work fine.
2. Error about failing the connect to host via SSH and this showed up after fixing error 1
Failed to connect to the host via ssh: mux_client_request_session: exitval sent twice\r\n"
Fix:
paste the following into the ansible.cfg file by using nano and then saving the changes
connection: local
I hope this was helpful
Samer R. Saleem