Prérequis
- Ansible et la collection cisco.ios
- Un accès SSH aux équipements
01L’inventaire
Ces deux variables disent à Ansible qu’il parle à du Cisco IOS, en SSH, en mode ligne de commande.
[switches]
sw-acces-01 ansible_host=192.168.5.11
sw-acces-02 ansible_host=192.168.5.12
[switches:vars]
ansible_network_os=cisco.ios.ios
ansible_connection=ansible.netcommon.network_cli
ansible_user=ansible02Le playbook
backup: true enregistre la configuration courante ; backup_options choisit le nom et le dossier du fichier.
- name: Sauvegarde des configurations
hosts: switches
gather_facts: false
tasks:
- name: Sauvegarder la running-config
cisco.ios.ios_config:
backup: true
backup_options:
filename: "{{ inventory_hostname }}.cfg"
dir_path: ./backups03Repérer ce qui n’a pas été enregistré
Comparer la configuration de démarrage à la configuration courante révèle les changements faits mais jamais sauvegardés — ceux qui disparaîtraient au prochain redémarrage.
- name: startup-config contre running-config
cisco.ios.ios_config:
diff_against: startup
diff_ignore_lines:
- ntp clock .*04Versionner
ansible-playbook -i inventory.ini backup.yml
git add backups && git commit -m "Sauvegarde du $(date +%F)"À retenir
- ansible_network_os + network_cli : Ansible parle IOS.
- backup: true, un fichier par équipement.
- diff_against: startup révèle les oublis de « write memory ».
- Git pour l’historique.