What do you do when you suddenly get a task to change 100 switches and 20 router’s hostname before taking the weekend or vacation?
Do not panic, the solution is Ansible playbook and is very fast.
1. Create an empty YAML file and name it hostname-changer with below codes:
--- - name: Change hostname hosts: Cisco gather_facts: false tasks: - name: configure top level configuration ios_config: lines: hostname {{ inventory_hostname }} - name: save running to start-config when modified ios_config: save_when: modified
2. Add hostname and IP for each switch and router. Create an empty text file and name it customhosts with below codes:
3. Run this command:
the inventory (-i, the device or devices to target – customhosts parameter is our host’s inventory, which lets Ansible know which hosts, or groups of hosts, to call plays against)ansible-playbook -i customhosts hostname-changer.yaml -u UserName -k -c local
the connection method (-c, the method for connecting and executing ansible)
the user (-u, the username for the SSH connection)
the SSH connection method (-k, please prompt for the password)