mwallraf.oneos_upgrader
oneos_upgrader
Rôle Ansible pour mettre à jour les dispositifs Ekinops OneAccess fonctionnant sous le logiciel OneOS. Il existe deux principales versions du système d'exploitation : OneOS 5 et OneOS 6.
OneOS 5 est très similaire à Cisco IOS-XE et l'image logicielle doit être présente dans la mémoire flash, avec une commande de démarrage nécessaire pour indiquer quel logiciel doit être chargé.
OneOS 6 a des banques de logiciels principales et redondantes, et chaque banque peut avoir un logiciel différent chargé. Vous devez indiquer quelle banque doit être la principale avant de redémarrer le routeur.
Ce rôle prend en charge les deux versions automatiquement.
Exigences
- ansible.utils
- mwallraf.ekinops
Échecs
En cas d'échec, le processus sera annulé pour un hôte, ce qui pourrait signifier que le rapport ne sera pas généré. Les hôtes échoués ne sont également pas affichés dans le rapport.
Étiquettes de rôle
Il y a 4 étiquettes que vous pouvez utiliser pour définir le mode du rôle. Si aucune étiquette n'est spécifiée, une mise à jour complète sera effectuée :
- rapport : exécute uniquement les vérifications préalables et génère un rapport d'état (par défaut, cette étiquette sera toujours exécutée)
- préparation : effectue toutes les tâches possibles pour préparer une mise à jour mais ne provoquera pas d'interruption, dans la plupart des cas cela signifie qu'un redémarrage est uniquement requis après le processus de préparation
- chargement : effectue uniquement le processus de téléchargement des fichiers, seuls les fichiers nécessaires à la mise à jour seront téléchargés
- mise à jour : effectue toutes les étapes nécessaires pour terminer la mise à jour
Variables par défaut du rôle
Les variables suivantes sont configurées par défaut mais peuvent être remplacées si nécessaire :
- auto_configure_pre_requisites : active ou désactive la configuration automatique des prérequis (ex : activer le serveur SCP) PAR DÉFAUT = vrai
Variables calculées
Les variables suivantes seront calculées en fonction des variables données et de la configuration en cours :
- running_os_is_compliant : indique si le système d'exploitation en cours est déjà conforme ou non (comparé à wanted_os_version)
- boot_os_is_compliant : indique si le système de démarrage est déjà conforme ou non (comparé à wanted_boot_version)
- scp_is_enabled : indique si SCP est activé ou non
Processus de mise à jour
En fonction des étiquettes, le processus de mise à jour peut être différent. Par défaut, une mise à jour complète sera effectuée.
Mode rapport
En mode rapport, nous ferons uniquement quelques vérifications de base et générerons un rapport indiquant si le routeur doit être mis à jour et s’il y a suffisamment d’espace disque.
Utilisation :
ansible-playbook -i hosts playbook.yml --tags report
Tâches du playbook :
- se connecter et obtenir des faits
- définir des faits supplémentaires pour déterminer l'état du routeur et du processus de mise à jour
- afficher un message de débogage pour chaque hôte
Détails :
- tâches :
- oneos_upgrader : RECUEILLIR DES FAITS > nom_hôte ÉTIQUETTES : [toujours]
- oneos_upgrader : RECUEILLIR DES FAITS > obtenir les détails du système ÉTIQUETTES : [toujours]
- oneos_upgrader : RECUEILLIR DES FAITS > obtenir les détails SSH ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > obtenir les statistiques du fichier OS souhaité ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > wanted_os_file_stats ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > obtenir les statistiques du fichier de démarrage souhaité ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > wanted_boot_file_stats ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > obtenir les statistiques du fichier de récupération souhaité ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > wanted_recovery_file_stats ÉTIQUETTES : [toujours]
- oneos_upgrader : RECUEILLIR DES FAITS > afficher la mémoire ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > fact_memory ÉTIQUETTES : [toujours]
- oneos_upgrader : PRINCIPAL > exécuter des tâches spécifiques au système d'exploitation pour recueillir des faits ÉTIQUETTES : [rapport, préparation, mise à jour]
- oneos_upgrader : DÉFINIR UN FAIT > calculer si des mises à jour sont nécessaires ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > scp_is_enabled ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > vérifier si les fichiers existent sur le disque ou dans la banque de logiciels ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > exigence de téléchargement de fichiers ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > recovery_file_exists_on_disk ÉTIQUETTES : [toujours]
- oneos_upgrader : DÉFINIR UN FAIT > calcul de l'espace disque suffisant ÉTIQUETTES : [toujours]
- oneos_upgrader : RAPPORT > obtenir les détails de l'hôte ÉTIQUETTES : [rapport, préparation, mise à jour]
- DEBUG > afficher toutes les variables ÉTIQUETTES : [toujours]
- Modèle d'un fichier à /etc/file.conf ÉTIQUETTES : [toujours]
Un modèle est prévu pour générer un rapport CSV, comme cela doit être exécuté comme dernière tâche dans le play, il doit être appelé depuis le playbook.
post_tasks:
- name: RAPPORT > sauvegarder dans un fichier
ansible.builtin.template:
src: "roles/oneos_upgrader/templates/report_overview.j2"
dest: report.txt
tags:
- toujours
Mode de préparation
En mode de préparation, toutes les vérifications nécessaires sont effectuées et tous les fichiers sont téléchargés, et la mise à jour est préparée sans provoquer d'interruptions.
Utilisation :
ansible-playbook -i hosts playbook.yml --tags staging
Tâches du playbook :
- se connecter et obtenir des faits
- définir des faits supplémentaires pour déterminer l'état du routeur et du processus de mise à jour
- si l'appareil n'a pas d'espace, les anciens fichiers seront supprimés
- recalculer l'espace disque
- si des tâches pré-configurées existent, elles seront mises en œuvre (ex : activer SCP)
- télécharger les fichiers si nécessaire
- s'il n'y a pas d'espace pour tous les fichiers, les fichiers de démarrage seront d'abord copiés
- la banque de logiciels ou le fichier de démarrage est préparé SI des mises à jour d'image de démarrage ne sont pas en attente
Si plusieurs mises à jour sont requises (BOOT + RÉCUPÉRATION + OS), il n'est pas possible de tout préparer en même temps. S'il y a suffisamment d'espace disque pour tous les fichiers, le téléchargement sera terminé. Le chargement du fichier ne peut être effectué que sur le premier fichier (ex : BOOT) car il nécessite un redémarrage pour continuer. Par conséquent, les mises à jour multi-étapes doivent être effectuées étape par étape, ou des étapes supplémentaires seront réalisées pendant le processus de mise à jour.
Ansible role for upgrading Ekinops-OneAccess OneOS devices
ansible-galaxy install mwallraf.oneos_upgrader