Mettre à jour le socle de l’orchestrateur Swarm

Cette page indique la procédure de mise à jour du socle Cyberwatch.

Différents points de contrôles sont présents dans cette procédure. Si l’un de ces points de contrôle n’est pas atteint, contactez le support Cyberwatch.

Prérequis

  • La version de Docker est supérieure ou égale à 20.10.10.
  • Les flux réseau vers dl.cyberwatch.fr et harbor.cyberwatch.fr sont autorisés.

Mettre à jour Docker

Pour les machines de type Debian :

apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Pour les machines de type Red Hat :

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Lien vers la documentation en ligne de Docker

Point de contrôle : valider la version de docker à l’aide de la commande

docker version

Mettre à jour le socle

  1. Avant toute autre opération, mettre à jour l’application Cyberwatch via la procédure standard.

  2. Vérifier que le paquet cyberwatch est installé :

    sudo cyberwatch version
    

    Si la commande n’existe pas, migrer le socle vers la version 5.0.

  3. Dans le cas contraire, mettre à jour le paquet :

    Pour les distributions basées sur Debian :

    sudo apt update
    sudo apt install cyberwatch
    

    Pour les distributions basées sur Red Hat :

    sudo dnf install cyberwatch
    

Migrer le socle v2.X vers le socle v5.X

À partir de la version 5.0 du socle Cyberwatch, la façon d’installer Cyberwatch a évolué. Cyberwatch s’installe maintenant avec le gestionnaire de paquet du système d’exploitation.

Cette section décrit comment migrer le socle depuis une version 2.X vers 5.X.

  1. Avant de migrer le socle, s’assurer que le socle est au moins en version 2.31 :

    sudo cat ~cyberwatch/cbw-on-premise/VERSION
    
  2. Si ce n’est pas le cas, mettre à jour le socle en version 2.X :

    1. S’assurer que le compte de maintenance possède bien l’ensemble des fichiers du socle (La commande doit être réalisée depuis un compte privilégié. Attention, l’utilisateur cyberwatch ne possède pas les privilèges sudoer.) :

      sudo chown -R cyberwatch: /home/cyberwatch/cbw-on-premise
      
    2. Se connecter avec le compte de service, puis se rendre dans le dossier du socle :

      sudo su - cyberwatch
      cd /home/cyberwatch/cbw-on-premise/
      
    3. Éteindre l’application :

      bash cyberwatch.sh stop
      
    4. Stocker les changements non standards apportés au socle :

      git diff > /home/cyberwatch/diff
      
    5. Mettre à jour le dépôt git du socle Cyberwatch :

      git fetch
      git checkout master
      git reset --hard origin/master
      
    6. Configurer à nouveau l’application Cyberwatch :

      La commande de configuration accepte les options --master, --satellite, --no-db et --offline. Utiliser celles qui sont nécessaires pour le cas d’usage de la machine.

      ./cyberwatch.sh configure
      
    7. Point de contrôle : valider que la version du socle a bien changé.

      cat /home/cyberwatch/cbw-on-premise/VERSION
      
  3. Installer le socle Cyberwatch en tant que paquet :

    Pour les distributions basées sur Debian :

    sudo install -m 0755 -d /usr/share/keyrings
    curl https://dl.cyberwatch.fr/apt/APT-CYBERWATCH-GPG-KEY | sudo gpg --dearmor -o /usr/share/keyrings/cyberwatch.gpg
    sudo chmod a+r /usr/share/keyrings/cyberwatch.gpg
    echo "deb [signed-by=/usr/share/keyrings/cyberwatch.gpg] https://dl.cyberwatch.fr/apt any main" | sudo tee /etc/apt/sources.list.d/cyberwatch.list > /dev/null
    sudo apt update
    sudo apt install cyberwatch
    

    Pour les distributions basées sur Red Hat :

    sudo yum-config-manager --add-repo https://dl.cyberwatch.fr/rpm/cyberwatch.repo
    sudo dnf install cyberwatch
    
  4. Reconfigurer le socle Cyberwatch :

    La commande de configuration accepte les options --master, --satellite, --no-db et --offline. Utiliser celles qui sont nécessaires pour le cas d’usage de la machine.

    sudo cyberwatch configure
    
  5. Vérifier que l’instance fonctionne correctement depuis l’interface web.

  6. Optionnel : Cas de l’absence de mot de passe Redis.

    Suite à une migration de socle, le secret REDIS_PASSWORD est obligatoire sur toute instance. Cette variable n’est pas présentes pour les instances ayant été déployées avant sa création.

    Vérifier sa présence :

    grep REDIS_PASSWORD /etc/cyberwatch/secrets.env
    

    Si cette variable n’est pas définie une erreur se produit lors de la communication avec la base redis.

    Ce type de logs apparaissent alors :

    # cyberwatch logs sidekiq
    Redis::CommandError: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
    

    Il s’agit alors d’effectuer la procédure adéquate sur chacun des nœuds Cyberwatch :

    1. Pour toute instance n’étant pas un satellite.

      Générer un mot de passe redis en executant la commande :

      echo "REDIS_PASSWORD=$(openssl rand -hex 16)" >> /etc/cyberwatch/secrets.env
      
    2. Pour les instances satellites.

      Il suffit de prendre en compte la valeur du champ REDIS_PASSWORD précédemment générée sur l’instance maître. Cela nécessite de récupérer la valeur de ce champ depuis le fichier /etc/cyberwatch/secrets.env de l’instance maître, puis de l’ajouter à la fin du fichier du même nom sur le satellite.

      Puis de redémarrer chacun des nœuds en executant la commande :

      cyberwatch restart
      
  7. Archiver tous les fichiers du dossier cbw-on-premise :

    sudo tar cvf cbw-on-premise-v2.tar /home/cyberwatch/cbw-on-premise
    
  8. Déplacer l’archive dans un dossier hors du répertoire /home/cyberwatch.

  9. Supprimer l’utilisateur cyberwatch ainsi que tous ses dossiers :

    sudo userdel cyberwatch -r
    

Retour en haut