Lorsque vous installez SaltStack Config, vous exécutez un Highstate d'orchestration fourni dans le programme d'installation de SaltStack Config. L'Highstate d'orchestration s'exécute sur votre master Salt et définit un environnement multi-nœuds. Il installe l'architecture SaltStack Config sur les trois autres nœuds qui hébergeront PostgreSQL, Redis et le nœud RaaS.

Attention : Le déploiement de SaltStack Config dans des conteneurs n'est pas pris en charge ni recommandé.

L'objectif final de l'installation est d'avoir quatre nœuds, chacun avec une fonction d'hôte différente. Chaque nœud est également un minion pour le master Salt :

  • Un nœud master Salt
  • Un nœud de base de données PostgreSQL
  • Un nœud de base de données Redis
  • Un nœud RaaS, également appelé nœud SaltStack Config
Attention :

Il est particulièrement important de suivre toutes les étapes répertoriées dans la section Installation de Salt sur vos nœuds. En particulier, vous devez installer les dépendances requises pour le programme d'installation de SaltStack Config sur les quatre nœuds de l'installation. Sinon, l'installation à plusieurs nœuds échoue.

Les dépendances nécessaires sont les suivantes :

  • OpenSSL
  • Modules EPEL (Extra Packages for Enterprise Linux)
  • Chiffrement Python
  • Bibliothèque Python OpenSSL

Haute disponibilité

Il est possible de configurer plusieurs masters Salt ou plusieurs nœuds RaaS. Il est également possible d'exécuter le service de master Salt sur un nœud et de combiner deux autres services ou plus sur un nœud distinct. Les étapes de configuration de ce type d'architecture système ne sont pas entièrement expliquées dans ce guide.

Les exigences en matière de haute disponibilité ou d'architecture personnalisée peuvent nécessiter des services de consultation. Cependant, avant de configurer plusieurs nœuds du même type, vous commencez généralement par le scénario d'installation à plusieurs nœuds, puis configurez une architecture supplémentaire ultérieurement.

Pour plus d'informations sur la haute disponibilité, consultez Dépendances requises de SaltStack Config.

Enregistrer les données clés pour les quatre nœuds

Avant de commencer l'installation standard, enregistrez les données clés sur chacun des quatre nœuds impliqués dans l'installation. Vous entrez ces données à plusieurs moments du processus d'installation.

Enregistrez les données clés suivantes sur chacun des quatre domaines impliqués dans l'installation :

  • Adresses IP ou noms DNS
  • ID de minion

Assurez-vous d'indiquer clairement l'adresse IP et l'ID de minion appartenant à l'hôte (le nœud de master Salt, le nœud RaaS, le nœud de base de données PostgreSQL et le nœud de base de données Redis).

Il est préférable de vérifier que vos adresses IP ou noms DNS sont corrects, car des adresses IP ou des noms DNS incorrects peuvent entraîner un échec d'installation à plusieurs nœuds.

Conservez ces données dans un enregistrement facilement accessible pour votre propre référence. Lorsque vous configurez l'orchestration, vous devez entrer ces données dans plusieurs paramètres et variables dans les fichiers de configuration. C'est pourquoi il est utile de garder cet enregistrement sous la main tout au long de l'installation.

Note :

Si vous êtes dans un environnement virtualisé, spécifiez l'adresse interne, par opposition à l'adresse publique.

Adresses IP statiques et dynamiques

Les hôtes Redis et PostgreSQL ont besoin d'adresses IP statiques ou de noms DNS auxquels les fichiers de configuration font référence. Selon le mode de déploiement du nœud RaaS, ce dernier peut également avoir besoin d'une adresse IP statique ou d'un nom DNS. Le recours à des adresses IP dynamiques dans les configurations peut modifier et rompre votre environnement.

Définition d'un ID de minion personnalisé (facultatif)

Un ID de minion est un nom unique donné à chaque minion géré par un master Salt. Par défaut, le minion s'identifie au master Salt par le nom d'hôte du système. Cependant, vous pouvez attribuer des ID personnalisés descriptifs de leur fonction ou de leur emplacement dans votre réseau.

Si vous décidez de personnaliser vos ID de minion, essayez de garder l'ID bref, mais descriptif de son rôle. Par exemple, vous pouvez utiliser apache-server-1 pour nommer l'un de vos serveurs Web ou vous pouvez utiliser datacenter-3-rack-2 correspondant à son emplacement dans un centre de données. L'objectif est de rendre les noms descriptifs et utiles pour y faire référence ultérieurement.

Pour déclarer un ID de minion :

  1. Dans le terminal du minion, accédez au répertoire contenant le fichier id.conf du minion. Par défaut, l'emplacement du répertoire est etc/salt/minion.d/id.conf.
  2. Ouvrez le fichier id.conf dans un éditeur. Définissez le paramètre id sur votre ID de minion préféré. Par exemple :
    id: postgres-database-1
  3. Après la modification d'un ID de minion, les clés du minion doivent être acceptées (ou acceptées de nouveau) par le master Salt. Pour obtenir des instructions spécifiques sur la configuration des clés, reportez-vous à la section Accepter les clés de minion sur le ou les masters.

Copier et modifier les fichiers d'état Top

Pendant cette tâche d'installation, vous copiez les fichiers d'orchestration fournis avec le programme d'installation de SaltStack Config sur le nœud du master Salt. Ensuite, vous modifiez les fichiers pour faire référence aux trois nœuds pour RaaS, la base de données Redis et la base de données PostgreSQL.

Pour copier et modifier les fichiers de configuration de l'orchestration :

  1. Sur le master Salt, accédez au répertoire sse-installer.
  2. Copiez les fichiers Pillar et d'état du répertoire sse_installer dans pillar_roots et file_roots du minion à l'aide des commandes suivantes :
    sudo mkdir /srv/salt
    sudo cp -r salt/sse /srv/salt/
    sudo mkdir /srv/pillar
    sudo cp -r pillar/sse /srv/pillar/
    sudo cp -r pillar/top.sls /srv/pillar/
    sudo cp -r salt/top.sls /srv/salt/
    Important :

    Ces instructions reposent sur des hypothèses pouvant ne pas correspondre à votre structure de répertoires, notamment si vous avez une installation Salt existante. Les instructions reposent sur les hypothèses suivantes :

    • Votre master Salt utilise la structure de répertoires par défaut. Si votre structure de répertoires a été modifiée, vous devrez peut-être modifier ces instructions pour votre structure de répertoires personnalisée.
    • Vous n'avez pas déjà un dossier nommé sse sous votre Pillar ou votre racine d'état de configuration. Si ce dossier existe, vous devrez peut-être les fusionner manuellement.
    • Vous n'avez pas déjà un fichier nommé top.sls à l'intérieur de votre Pillar ou répertoire Salt. Si ce fichier existe, vous devrez peut-être le fusionner manuellement avec votre fichier existant.
  3. Dans le répertoire /srv/pillar/, vous avez désormais un fichier nommé top.sls que vous avez copié à partir des fichiers d'installation à l'étape précédente. Ouvrez ce fichier dans un éditeur.
  4. Modifiez ce fichier pour définir la liste des ID de minion (pas les adresses IP ni les noms DNS) pour votre PostgreSQL, Redis, RaaS et master Salt. Utilisez les ID que vous avez enregistrés précédemment.

    Par exemple :

    {# Pillar Top File #}
    
    {# Define SSE Servers #}
    
    {% load_yaml as sse_servers %}
      - postgres-database-1
      - redis-database-1
      - saltstack-enterprise-api-server-1
      - saltmaster-1
    {% endload %}
    
    base:
    
    {# Assign Pillar Data to SSE Servers #}
    {% for server in sse_servers %}
      '{{ server }}':
        - sse
    {% endfor %}
  5. Dans le répertoire /srv/salt/, vous avez maintenant un fichier nommé top.sls que vous avez copié à l'étape 2. Ouvrez ce fichier dans un éditeur et vérifiez qu'il correspond aux informations suivantes :
    base:
    
      {# Target SSE Servers, according to Pillar data #}
      # SSE PostgreSQL Server
      'I@sse_pg_server:{{ grains.id }}':
        - sse.eapi_database
    
      # SSE Redis Server
      'I@sse_redis_server:{{ grains.id }}':
        - sse.eapi_cache
    
      # SSE eAPI Servers
      'I@sse_eapi_servers:{{ grains.id }}':
        - sse.eapi_service
    
      # SSE Salt Masters
      'I@sse_salt_masters:{{ grains.id }}':
        - sse.eapi_plugin
    

Appliquer les Highstates aux nœuds

  1. Sur le master Salt, synchronisez vos grains pour confirmer que le master Salt dispose des données de grain nécessaires pour chaque minion. Cette étape permet de s'assurer que les données de Pillar sont correctement générées pour la fonctionnalité SaltStack Config.

    Dans la commande qui synchronise les grains, vous pouvez cibler tous les minions, ou vous pouvez transmettre une liste d'ID de minion spécifiques pour vos nœuds (y compris le master Salt lui-même) entre parenthèses. Par exemple :

    Cibler tous les minions

    sudo salt \* saltutil.refresh_grains

    Cibler une liste de minions

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
  2. Actualisez et confirmez que chaque minion a reçu les données de Pillar définies dans le fichier sse_settings.yaml et qu'elles s'affichent comme prévu.

    Dans la commande qui actualise les données de Pillar, vous pouvez cibler tous les minions ou vous pouvez transmettre une liste des ID de minions spécifiques pour vos nœuds (y compris le master Salt lui-même) entre parenthèses. Par exemple :

    Cibler tous les minions

    sudo salt \* saltutil.refresh_pillar

    Cibler une liste de minions

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
  3. Confirmez que les données de retour Pillar sont correctes :
    sudo salt \* pillar.items

    Vérifiez que vous voyez les données de Pillar associées à SaltStack Config.

    Note :

    Vous pouvez également cibler les données de Pillar d'un minion spécifique pour vérifier que les données de Pillar ont été actualisées.

  4. Exécutez la commande qui applique l'Highstate d'orchestration au serveur PostgreSQL. Utilisez l'ID de minion que vous avez enregistré précédemment pour le serveur PostgreSQL.

    Par exemple :

    sudo salt postgres-database-1 state.highstate
  5. Répétez l'étape précédente pour chacun des serveurs suivants, en remplaçant l'ID de minion pour chaque serveur :
    • Le nœud Redis
    • Le nœud RaaS
    • Le nœud master Salt
    Note :

    Lors de l'application initiale du Highstate au master Salt, le message d'erreur suivant peut s'afficher : Authenticationerroroccurred. Cette erreur s'affiche, car le master Salt ne s'est pas encore authentifié sur le nœud RaaS, mais l'état d'installation du plug-in master redémarrera le service de master Salt et le problème sera automatiquement résolu.

Si vous rencontrez d'autres erreurs lors de l'exécution des Highstates, consultez la section Dépannage.