Configurer Tulip avec Ansible

Prev Next

Ansible est un outil informatique open source en ligne de commande permettant de gérer en masse des appareils en périphérie.

Pour en savoir plus sur Ansible, cliquez ici.

À qui s’adresse ce guide ?

  • Aux utilisateurs disposant de tous les Permission sur les périphériques Edge
  • Les utilisateurs familiarisés avec Ansible
  • Les utilisateurs familiarisés avec la configuration des périphériques Edge

Fonctionnement

Ansible est un logiciel de gestion informatique qui permet de copier-coller des configurations de périphériques. Pour ce faire, on utilise un périphérique de référence (ou « golden device » ) comme configuration de base validée, qui servira à configurer un périphérique cible.

Par exemple, vous pouvez configurer plusieurs nouveaux périphériques de périphérie (les périphériques cibles) en une seule fois en affectant ces périphériques à un groupe qui applique automatiquement les identifiants d’un périphérique de référence existant (le périphérique de référence). Vous pouvez mettre à jour le périphérique de référence avec de nouvelles améliorations et déployer ces mises à jour.

Edge device bulk configuration workflow

Cette méthode permet une gestion informatique automatisée et évolutive, tout en réduisant les risques d’erreurs de configuration manuelles.

Intégration des périphériques de périphérie et d’Ansible

Ces procédures décrivent comment intégrer les fonctionnalités de la collection Tulip Edge à vos workflows Ansible existants.

Installer la collection Tulip Edge

  1. Exécutez la commande suivante dans votre terminal :ansible-galaxy collection install git+https://github.com/tulip/tulip-ansible-library.git#/collections/ansible_collections/tulip/edge
  2. Pour installer le référentiel dédié aux périphériques de bord, exécutez la commande suivante :ansible-galaxy collection install tulip.edge

Configuration de l’inventaire

Ajoutez le code suivant à votre inventaire existant et complétez les variables.

  1. Dans le code suivant, nommez le groupe de périphériques et authentifiez votre instance à l’aide de l’URL de l’instance, de votre adresse e-mail et de votre mot de passe de messagerie.

[your_device_group:vars]tulip_factory_url=https://your-factory.tulip.cotulip_admin_email=admin@yourcompany.comtulip_admin_password_sha256=your_sha256_hash

  1. Dans le code suivant, indiquez le nom de votre entreprise.

tulip_client_name=NomDeVotreEntreprise tulip_client_version=1.0.0 tulip_client_description=Passerelle de production

Générer un hachage de mot de passe

Un hachage de mot de passe est une mesure de sécurité qui transforme un mot de passe en une chaîne de caractères aléatoires de longueur fixe, impossible à inverser ou à déchiffrer facilement. Cette étape permet d’éviter les risques de sécurité liés à la présence de mots de passe en clair dans votre fichier.

Pour générer des hachages de mot de passe sécurisés, saisissez la commande suivante :

echo -n "votre_mot_de_passe" | sha256sum | cut -d' ' -f1

Intégration du playbook principal

Ajoutez les playbooks nécessaires à vos workflows existants à l'aide du code suivant :


* import\_playbook: tulip.edge.register when: register\_devices | default(false) ```

### Test de l'intégration

Ajoutez un playbook de test à vos workflows à l'aide du code suivant :

```- name: Test de l'authentification Tulip Gateway hosts: test\_devices tasks: - name: Authentification de l'appareil de test import\_playbook: collections/ansible\_collections/tulip/edge/playbooks/gateway\_tulip\_auth.yml

  • nom : Vérifier que l’authentification a fonctionné import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_device_info.yml- name: Vérifier la connectivité import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_check_internet.yml

Bonnes pratiques d’intégration

  1. Gestion des variables

    • Utilisez group_vars pour les paramètres communs
    • Utilisez host\_vars pour les modifications spécifiques à un périphérique
    • Stockez les données sensibles dans Ansible Vault
  2. Gestion des erreurs


* name: Gérer l'échec de l'authentification debug: msg: "Échec de l'authentification, vérifiez les identifiants" when: auth\_result.failed | default(false) ```
* **Gestion des sauvegardes**
* Utilisez une nomenclature cohérente pour les sauvegardes, par exemple : `périphérique-composant-horodatage`
* Enregistrez les noms de sauvegarde dans des variables pour pouvoir les réutiliser
* Mettez en place des politiques de conservation des sauvegardes
* **Préserver l’idempotence**: tous les playbooks sont idempotents et peuvent donc être exécutés plusieurs fois en toute sécurité.

Pour détecter des erreurs, comprendre le déroulement de la logique ou valider le script avant son exécution, vous pouvez effectuer un test sans exécuter le logiciel proprement dit. Pour ce faire, utilisez le mode --check, comme illustré dans l’exemple ci-dessous.

`ansible-playbook gateway_tulip_auth.yml --limit test_device --check`

## Provisionnement d’un périphérique de référence

Le workflow de provisionnement d’un périphérique de référence vous permet de : 1. **Sélectionner un périphérique de référence**: choisissez un périphérique de référence correctement configuré 2. **Sauvegarder la configuration de référence**: capturer toutes les configurations des composants 3. **Déployer sur de nouveaux périphériques**: appliquer les paramètres du périphérique de référence aux périphériques neufs ou de remplacement 4. **Authentifier et vérifier**: enregistrer les périphériques et valider le déploiement

### Configuration de l’inventaire

Configurez votre inventaire avec le périphérique de référence et les périphériques cibles.

Saisissez ce qui suit dans votre terminal :

```[tulip\_edge\_devices]golden-device ansible\_host=172.16.15.130EIO-01-BCDEFA ansible\_host=172.16.15.140EIO-01-CDEFAB ansible\_host=172.16.15.141EIO-01-DEFABCansible\_host=172.16.15.150

[golden\_devices]EIO-01-ABCDEF

[newly\_provisioned]EIO-01-BCDEFAEIO-01-CDEFABEIO-01-DEFABC

[tulip\_edge\_devices:vars]

# Authentification d'usine

tulip\_factory\_url=https://your-factory.tulip.cotulip\_admin\_email=admin@votreentreprise.com tulip\_admin\_password\_sha256=votre\_hachage\_sha256

# Informations client

tulip\_client\_name=NomDeVotreEntreprise tulip\_client\_version=1.0.0 tulip\_client\_description=Passerelle de production```

### Générer un hachage de mot de passe

Un hachage de mot de passe est une mesure de sécurité qui transforme un mot de passe en une chaîne de caractères aléatoires de longueur fixe, impossible à inverser ou à déchiffrer facilement. Cette étape permet d’éviter les risques de sécurité liés à la présence de mots de passe en clair dans votre fichier.

Pour créer un [hachage SHA256](https://www.movable-type.co.uk/scripts/sha256.html) afin de stocker votre mot de passe en toute sécurité, saisissez la commande suivante :

`echo -n "votre_mot_de_passe" | sha256sum | cut -d' ' -f1`

### Provisionnement de base d’un appareil de référence

Saisissez le code suivant à chaque étape.

1. Connectez-vous à votre`périphérique` de référence :`ansible-playbook tulip.edge.login --limit golden-device`
2. Sauvegardez les`configurations` du dispositif de référence :`ansible-playbook tulip.edge.backup_mqtt_broker --limit golden-device ansible-playbook tulip.edge.backup_mqtt_bridge --limit golden-device ansible-playbook tulip.edge.backup_drivers --limit golden-device ansible-playbook tulip.edge.backup_root_certs --limit golden-device`
3. Se connecter à l’appareil ciblesansible-playbook`tulip.edge.login --limit newly_provisioned`
4. Déployer les configurations de référence sur les périphériques cibles```ansible-playbook tulip.edge.restore\_mqtt\_broker \ --limit newly\_provisioned \ -e mqtt\_broker\_backup\_name="golden-device-mqtt-broker-20241219-143022"

ansible-playbook tulip.edge.restore\_mqtt\_bridge \ --limit newly\_provisioned \ -e mqtt\_bridge\_backup\_name="golden-device-mqtt-bridge-20241219-143025"

ansible-playbook tulip.edge.restore\_drivers \ --limit newly\_provisioned \ -e drivers\_backup\_name="golden-device-drivers-20241219-143028"

ansible-playbook tulip.edge.restore\_root\_certs \ --limit newly\_provisioned \ -e root\_certs\_backup\_name="golden-device-root-certs-20241219-143030"```

1. Authentification auprès de`factoryansible-playbook tulip.edge.gateway_tulip_auth --limit newly_provisioned`
2. Enregistrement auprès de systèmes externes (facultatif)`ansible-playbook tulip.edge.register --limit newly_provisioned`
3. Vérifier`` le déploiement : `ansible-playbook tulip.edge.gateway_device_info --limit newly_provisioned` et `ansible-playbook tulip.edge.gateway_check_internet --limit newly_provisioned ```

### Meilleures pratiques pour les appareils de référence

L’approche suivante relative aux appareils de référence garantit un provisionnement cohérent et fiable de votre parc d’appareils Tulip Edge, tout en préservant une traçabilité et un contrôle complets sur vos normes de configuration.

1. **Maintenir le « golden device** » : veillez à ce que votre « golden device » soit à jour et correctement entretenu
2. **Effectuez des sauvegardes régulières**: effectuez des sauvegardes régulières de la configuration de votre appareil de référence
3. **Assurez le contrôle de version**: stockez les sauvegardes de l’appareil de référence dans un système de contrôle de version en leur attribuant des noms significatifs
4. **Mettez en place un pipeline de tests**: testez toujours les configurations de l’appareil de référence en environnement de préproduction avant leur mise en production
5. **Documentez la configuration du dispositif de référence**: documentez vos normes et procédures de configuration du dispositif de référence
6. **Assurez le contrôle d’accès**: limitez l’accès aux appareils de référence et utilisez des identifiants distincts
7. **Surveillez l'état de santé et les processus**: surveillez l'état de santé des appareils de référence et les processus de création des sauvegardes

### Dépannage

Voici comment résoudre les problèmes courants liés aux appareils de référence :

#### Le périphérique de référence est inaccessible

Commencez par tester votre connexion au périphérique de référence. Exécutez :`ansible golden-device -m ping`

Vérifiez l’état du périphérique de référence. Exécutez :`ansible-playbook tulip.edge.gateway_device_info --limit golden-device`

#### L'exécution du déploiement de sauvegarde échoue

Commencez par vérifier que le fichier de sauvegarde existe bien. Exécutez :`ls backups/golden-device-mqtt-broker-*.json`

Utilisez la convention de nommage des sauvegardes avec`l'extension : ansible-playbook tulip.edge.restore_mqtt_broker \ --limit target-device \ -e mqtt_broker_backup_name="golden-device-mqtt-broker-20241219-143022" \ -vv`

#### Problèmes d’authentification

Pour réauthentifier le périphérique de référence, exécutez :`ansible-playbook tulip.edge.login --limit golden-device`

Pour vérifier les informations d'identification du périphérique de référence dans votre inventaire, exécutez :`ansible-inventory --host golden-device`

{{snippet.Avez-vous trouvé ce que vous cherchiez ?}}