

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Active/passive AWS IoT Greengrass V2 web
<a name="pacemaker-tutorial-setup1"></a>

Dans cette configuration, vous exécutez AWS IoT Greengrass V2 un service systemd sur une instance à la fois. Pacemaker gère la réplication DRBD, le montage du système de fichiers et le AWS IoT Greengrass V2 service en tant que ressources ordonnées. En cas de défaillance de l'instance principale, Pacemaker fait passer le DRBD de l'instance de secours au statut principal, monte le système de fichiers et démarre. AWS IoT Greengrass V2

**Important**  
Effectuez toutes les étapes [Conditions préalables et configuration du cluster](pacemaker-tutorial-prerequisites.md) avant de continuer.

**Avertissement**  
Exécutez les commandes suivantes uniquement sur l'instance principale, sauf indication contraire.

## Joindre la ressource DRBD
<a name="pacemaker-tutorial-setup1-drbd-resource"></a>

Vérifiez que le stimulateur cardiaque est en marche avant de continuer.

```
sudo systemctl status pacemaker
```

Désactivez STONITH avant de créer des ressources. Si aucun dispositif d'escrime n'est configuré, Pacemaker refusera de démarrer les ressources si STONITH est activé (valeur par défaut).

```
sudo pcs property set stonith-enabled=false
```

**Avertissement**  
STONITH est désactivé ici pour simplifier ce tutoriel. Dans un environnement de production, vous devez activer STONITH et configurer un agent de clôture (par exemple, `fence_aws` pour les instances Amazon EC2) afin d'empêcher le split brain et la corruption des données.

Démontez le périphérique DRBD sur l'instance principale et désactivez le DRBD sur toutes les instances afin que Pacemaker puisse contrôler parfaitement le cycle de vie du DRBD.

```
# On the primary instance only
sudo umount /greengrass/v2

# On all instances
sudo drbdadm down greengrass
```

Créez la ressource DRBD dans Pacemaker.

```
sudo pcs resource create drbd-greengrass \
  ocf:linbit:drbd drbd_resource=greengrass \
  op monitor interval=15s role=Promoted \
  op monitor interval=30s role=Unpromoted
```

Configurez la ressource comme pouvant être promue afin qu'une seule instance soit principale à la fois. Définissez `clone-max` le nombre d'instances de votre cluster.

```
sudo pcs resource promotable drbd-greengrass \
  promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
```

## Joindre la ressource du système de fichiers
<a name="pacemaker-tutorial-setup1-fs-resource"></a>

Toutes les AWS IoT Greengrass V2 ressources sont stockées sous`/greengrass/v2`. Cette étape indique à Pacemaker de monter le périphérique DRBD sur ce chemin sur l'instance promue. Cela garantit que le répertoire de AWS IoT Greengrass V2 données est répliqué et disponible lors du basculement.

Créez la ressource du système de fichiers dans un état désactivé. Vous l'activerez une fois que toutes les contraintes seront en place.

```
sudo pcs resource create fs_greengrass Filesystem \
    device="/dev/drbd0" \
    directory="/greengrass/v2" \
    fstype="ext4" \
    op start timeout=15s \
    op stop timeout=15s \
    --disabled
```

## Vérifier les ressources
<a name="pacemaker-tutorial-setup1-verify-resources"></a>

Vérifiez que les ressources sont créées et propagées à toutes les instances.

```
sudo pcs status
```

## Fournissez et joignez le AWS IoT Greengrass V2 ressource systemd
<a name="pacemaker-tutorial-setup1-greengrass-resource"></a>

1. **Disposition AWS IoT Greengrass V2.** Comme vous avez démonté le périphérique DRBD plus tôt, activez le mode maintenance et remontez-le pour le provisionnement :

   ```
   # Enable maintenance mode to prevent Pacemaker from interfering
   sudo pcs property set maintenance-mode=true
   
   # Check which node Pacemaker promoted to Primary
   sudo pcs status | grep drbd-greengrass
   
   # On the Promoted node, mount the DRBD device
   sudo mount /dev/drbd0 /greengrass/v2
   ```

   Provisionnement AWS IoT Greengrass V2 sur l'instance principale à l'aide du provisionnement automatique. Suivez les instructions de la section [Installer le logiciel AWSAWS IoTAWS IoT Greengrass V2 Core avec provisionnement automatique des ressources](https://docs.aws.amazon.com/greengrass/v2/developerguide/quick-installation.html).

   Assurez-vous qu' AWS IoT Greengrass V2 il est installé `/greengrass/v2` dans le répertoire (le DRBD-mounted chemin). Après le provisionnement, démontez l'appareil et désactivez le mode maintenance :

   ```
   sudo umount /greengrass/v2
   sudo pcs property set maintenance-mode=false
   ```

1. **Désactivez le AWS IoT Greengrass V2 service** afin que Pacemaker puisse le gérer à la place de systemd.

   ```
   sudo systemctl disable greengrass
   sudo systemctl stop greengrass
   ```

1. **Installez les prérequis d'exécution sur toutes les instances de secours.** AWS IoT Greengrass V2 nécessite Java et d'autres dépendances que le provisionneur automatique installe en dehors du DRBD-replicated répertoire. Installez la même version du JDK sur chaque instance de secours. Consultez [AWS IoT Greengrass V2 les exigences](https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) pour obtenir la liste complète des prérequis.

1. **Créez un fichier d'unité systemd sur d'autres instances.** Copiez le fichier d'unité AWS IoT Greengrass V2 systemd sur les instances de secours afin que Pacemaker puisse démarrer le service sur n'importe quelle instance pendant le basculement.

   ```
   # On the primary instance, view the unit file location
   systemctl show -p FragmentPath greengrass
   ```

   Copiez ce fichier sur le même chemin sur chaque autre instance. Rechargez ensuite systemd sur chaque instance de secours afin qu'il reconnaisse le nouveau fichier d'unité.

   ```
   # On each standby instance
   sudo systemctl daemon-reload
   ```

1. **Joignez la AWS IoT Greengrass V2 ressource.**

   ```
   sudo pcs resource create greengrass systemd:greengrass \
     op monitor interval=10s \
     op start timeout=60s \
     op stop timeout=60s \
     --disabled
   ```

## Créer des contraintes en matière de ressources
<a name="pacemaker-tutorial-setup1-constraints"></a>

Créez un ordre par contraintes afin que Pacemaker gère les ressources dans le bon ordre lors du basculement.

```
sudo pcs constraint order promote drbd-greengrass-clone then start fs_greengrass
sudo pcs constraint colocation add fs_greengrass with Promoted drbd-greengrass-clone score=INFINITY
sudo pcs resource group add greengrass-group fs_greengrass greengrass
sudo pcs constraint location greengrass-group prefers {{instance1}}=200
```

Activez les ressources maintenant que les contraintes sont en place.

```
sudo pcs resource enable fs_greengrass
sudo pcs resource enable greengrass
```

Vérifiez l'état final des contraintes de ressources.

```
sudo pcs constraint show
```

La sortie doit présenter les contraintes suivantes :
+ **Contraintes de localisation** — Le groupe de `greengrass-group` ressources préfère l'instance principale.
+ **Contraintes de colocation** : `fs_greengrass` fonctionne avec le promu `drbd-greengrass-clone` et `greengrass` fonctionne avec`fs_greengrass`.
+ **Contraintes d'ordre** — DRBD fait la promotion avant le démarrage du système de fichiers, et le système de fichiers ne démarre avant. AWS IoT Greengrass V2

## Vérifier le basculement
<a name="pacemaker-tutorial-setup1-failover"></a>

Simulez un basculement pour vérifier que la configuration fonctionne.

1. **Vérifiez l'état initial.** Vérifiez qu'il AWS IoT Greengrass V2 est en cours d'exécution sur l'instance principale.

   ```
   sudo pcs status
   ```

1. **Simulez une défaillance de l'instance principale.** Mettez le nœud principal en mode veille pour déclencher la migration des ressources.

   ```
   sudo pcs node standby {{primary-node-name}}
   ```

1. **Vérifiez le basculement.** Sur l'instance de secours, vérifiez l'état du cluster. Le DRBD, le système de fichiers et les AWS IoT Greengrass V2 ressources devraient maintenant être exécutés sur l'instance de secours.

   ```
   sudo pcs status
   ```

1. **Restaurez l'instance défaillante.**

   ```
   sudo pcs node unstandby {{primary-node-name}}
   ```

   Lorsque le nœud est remis en ligne, il rejoint le cluster en tant qu'instance de secours. L'instance qui a été promue lors du basculement reste l'instance principale.

**Résolution des problèmes**  
Si les ressources entrent dans un état défaillant, vous pouvez les nettoyer et les redémarrer à l'aide de la commande suivante.  

```
sudo pcs resource cleanup
```