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
etharbor.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 cbw-on-premise
-
Avant toute autre opération, mettre à jour l’application Cyberwatch via la procédure standard.
-
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.
-
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 cbw-on-premise v2.X vers cbw-on-premise 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.
-
Avant de migrer le socle, s’assurer que le socle est au moins en version 2.31 :
sudo cat ~cyberwatch/cbw-on-premise/VERSION
-
Si ce n’est pas le cas, mettre à jour le socle en version 2.X :
-
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
-
Se connecter avec le compte de service, puis se rendre dans le dossier du socle :
sudo su - cyberwatch cd /home/cyberwatch/cbw-on-premise/
-
Éteindre l’application :
bash cyberwatch.sh stop
-
Stocker les changements non standards apportés au socle :
git diff > /home/cyberwatch/diff
-
Mettre à jour le dépôt git du socle Cyberwatch :
git fetch git checkout master git reset --hard origin/master
-
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
-
Point de contrôle : valider que la version du socle a bien changé.
cat /home/cyberwatch/cbw-on-premise/VERSION
-
-
Installer le socle Cyberwatch en tant que paquet :
Pour les distributions basées sur Debian :
curl https://dl.cyberwatch.fr/apt/APT-CYBERWATCH-GPG-KEY | sudo gpg --dearmor -o /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
-
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
-
Vérifier que l’instance fonctionne correctement depuis l’interface web.
-
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 :
-
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
-
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
-
-
Archiver tous les fichiers du dossier
cbw-on-premise
:sudo tar cvf cbw-on-premise-v2.tar /home/cyberwatch/cbw-on-premise
-
Déplacer l’archive dans un dossier hors du répertoire
/home/cyberwatch
. -
Supprimer l’utilisateur cyberwatch ainsi que tous ses dossiers :
sudo userdel cyberwatch -r