« A portée de main, toutes les informations sur mon parcours. »


BTS Services Informatiques aux Organisations, un parcours passionnant au cœur des technologies et de l’innovation.

iosE12_firmware_update.yml

Contenu du playbook principal :

---
- name: Mise à jour des switchs IOS vers la version 15.2(7)E13
hosts: all
gather_facts: false
ignore_unreachable: true
connection: network_cli
vars_files:
- vault.yml
vars:
cp_server: X.X.X.X
tasks:
- name: Récupération des facts IOS (hardware)
cisco.ios.ios_facts:
gather_subset:
- hardware
register: ios_facts_output
- name: Vérification du modèle actuel | FAIL si différent de son modèle réel
ansible.builtin.set_fact:
current_model: "{{ ios_facts_output.ansible_facts.ansible_net_model }}"
failed_when:
- current_model != netbox_model
- name: Extraction de l'espace libre (/flash:) | FAIL si pas assez d'espace
ansible.builtin.set_fact:
free_space_bytes: >-
{{ (ios_facts_output.ansible_facts
.ansible_net_filesystems_info['flash:']
.spacefree_kb | int) * 1024 }}
- name: Vérification de l'espace libre
ansible.builtin.fail:
msg: >
Espace insuffisant sur : {{ ansible_host }}
Minimum attendu: {{ firmware_size_bytes }}
Espace disponible: {{ free_space_bytes }}
failed_when: (free_space_bytes | int) <= (firmware_size_bytes | int)
- name: Définir la plateforme actuelle du switch | FAIL si différent de sa plateforme réelle
ansible.builtin.set_fact:
current_platform: "{{ ios_facts_output.ansible_facts.ansible_net_version }}"
changed_when: current_platform == meant_platform
notify: Copier le firmware via SCP
handlers:
- name: Copier le firmware via SCP
ansible.builtin.include_tasks: roles/iosE12_playbook/tasks/handler.yml