Déploiement d’un cluster de nœuds Cyberwatch indépendants avec Swarm

Cette page indique la procédure d’installation de Cyberwatch en mode satellite sans utiliser swarm pour la communication entre les nœuds.

Pour assurer une communication correcte entre le maître et le satellite, il est impératif que les deux instances Cyberwatch disposent de la même version.

Prérequis

Prérequis réseaux et matrice de flux

Flux requis à la mise en place d’un nœud satellite :

SourceDestinationProtocolePortDescription
nœud satellitenœud maîtreTCP3306Connexion à la base de données SQL
nœud satellitenœud maîtreTCP6379Connexion à la base en cache Redis
nœud satellitedownload.docker.comTCP443Installation et mises à jour de Docker
nœud satelliteharbor.cyberwatch.frTCP443Registry des images Docker Cyberwatch
nœud satellitedl.cyberwatch.comTCP443Dépôt des paquets Cyberwatch
flowchart LR
  SAT["Nœud satellite"]
  SAT -- "TCP 3306 · base SQL" --> MASTER["Nœud maître"]
  SAT -- "TCP 6379 · cache Redis" --> MASTER
  SAT -- "TCP 443 · Docker" --> DOCKER["download.docker.com"]
  SAT -- "TCP 443 · images" --> HARBOR["harbor.cyberwatch.fr"]
  SAT -- "TCP 443 · paquets" --> DL["dl.cyberwatch.com"]

Prérequis matériels

La machine doit disposer au minimum de 2 vCPU, 8 Go de mémoire et 32 Go d’espace disque réparti dans /var/lib/docker (12Go) et dans /var/lib/containerd (20Go).

Il est recommandé d’assigner l’intégralité de l’espace disque à la partition racine /. Le découpage ci-dessus est donné à titre informatif.

Voici comment vérifier les prérequis matériels :

  1. Vérifier le nombre de vCPU :

    lscpu | grep "CPU(s):"
    
  2. Vérifier la mémoire disponible :

    free -m
    
  3. Vérifier l’espace disque disponible pour le dossier /var/lib/docker/ :

    df /var/lib/docker/
    

Installation du nœud maître

  1. Suivre la procédure standard de déploiement et s’arrêter juste avant de configurer Cyberwatch

  2. Configurer Cyberwatch :

    • Configurer Cyberwatch dans le cas d’un nœud maître porteur de la base de données :

      sudo cyberwatch configure --master
      
    • Configurer Cyberwatch dans le cas d’un nœud maître avec une base de données externe :

      sudo cyberwatch configure --master --no-db
      

Installation du nœud satellite

Les secrets et le certificat racine du nœud maître sont recopiés sur le nœud satellite avant sa configuration :

sequenceDiagram
  participant M as Nœud maître
  participant A as Administrateur
  participant S as Nœud satellite
  Note over M,S: Même version de Cyberwatch sur les deux nœuds
  A->>S: Procédure standard, arrêt avant la configuration
  A->>M: cyberwatch show-secrets
  M-->>A: secrets
  A->>S: /etc/cyberwatch/secrets.env
  A->>M: cyberwatch show-root-cert
  M-->>A: certificat racine
  A->>S: /etc/cyberwatch/certs/cbw-root-ca-cert.pem
  A->>S: cyberwatch configure --satellite
  S->>M: Connexion SQL (3306) et Redis (6379)
  1. Suivre la procédure standard de déploiement et s’arrêter juste avant de configurer Cyberwatch

  2. Exécuter la commande suivante sur le nœud maître :

    sudo cyberwatch show-secrets
    
  3. Écrire le résultat de la commande précédente sur le nœud satellite dans le fichier /etc/cyberwatch/secrets.env :

    vim /etc/cyberwatch/secrets.env
    chmod 600 /etc/cyberwatch/secrets.env
    
  4. Exécuter la commande suivante sur le nœud maître :

    sudo cyberwatch show-root-cert
    
  5. Écrire le résultat de la commande précédente sur le nœud satellite dans le fichier /etc/cyberwatch/certs/cbw-root-ca-cert.pem :

    mkdir -p /etc/cyberwatch/certs
    vim /etc/cyberwatch/certs/cbw-root-ca-cert.pem
    
  6. Configurer Cyberwatch :

    sudo cyberwatch configure --satellite
    

Validation du fonctionnement

  1. Afin de valider que le nœud satellite est en mesure de joindre le nœud maître, vérifier les logs sidekiq :

    sudo cyberwatch logs sidekiq