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.

À propos du projet

Ansible role for upgrading Ekinops-OneAccess OneOS devices

Installer
ansible-galaxy install mwallraf.oneos_upgrader
Licence
Unknown
Téléchargements
93
Propriétaire