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

Attention : Le déploiement de Automation 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 Automation 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 Automation 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 pour Automation 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 minion.conf du minion. Par défaut, l'emplacement du répertoire est etc/salt/minion.d.
  2. Ouvrez le fichier minion.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 Automation 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 master Salt à 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
    

Modifier le fichier Pillar de paramètres de Automation Config

Pendant cette tâche d'installation, vous modifiez cinq sections du fichier de mappage Pillar des paramètres Automation Config pour fournir les valeurs adaptées à votre environnement. Ces paramètres sont utilisés par les fichiers d'état de configuration pour déployer et gérer votre déploiement de Automation Config.

Pour copier et modifier le fichier d'état des paramètres de Automation Config :

  1. Sur le master Salt, accédez au répertoire /srv/pillar/sse/.
  2. Ouvrez le fichier sse_settings.yaml dans un éditeur. La Section 1 de ce fichier contient quatre variables qui correspondent aux quatre nœuds. Remplacez les valeurs des quatre variables par les ID de minion (pas les adresses IP ni les noms DNS) des nœuds correspondants. Utilisez les ID de minion que vous avez enregistrés précédemment.

    Par exemple :

    # PostgreSQL Server (Single value)
    pg_server: postgres-database-1
    
    # Redis Server (Single value)
    redis_server: redis-database-1
    
    # SaltStack Enterprise Servers (List one or more)
    eapi_servers:
      - saltstack-enterprise-api-server-1
    
    # Salt Masters (List one or more)
    salt_masters:
      - saltmaster-1
    Note : Les variables pg_server et redis_server sont des variables simples, car la plupart des configurations réseau n'ont qu'une seule base de données PostgreSQL et Redis. En revanche, les variables eapi_servers et salt-masters sont formatées dans une liste, car il est possible d'avoir plusieurs nœuds RaaS et masters Salt.
  3. Dans la Section 2 de ce fichier, modifiez les variables pour spécifier le point de terminaison et le port de votre nœud PostgreSQL :
    • pg_endpoint : remplacez la valeur par l'adresse IP ou le nom DNS (pas l'ID de minion) de votre serveur PostgreSQL. Si vous êtes dans un environnement virtualisé, spécifiez l'adresse interne, par opposition à l'adresse publique.
    • pg_port : le port PostgreSQL standard est fourni, mais peut être remplacé, si nécessaire.
    • pg_username et pg_password : entrez les informations d'identification de l'utilisateur que l'API (RaaS) utilisera pour s'authentifier sur PostgreSQL. Cet utilisateur est créé lorsque vous exécutez l'Highstate d'orchestration de configuration.
    Note : La variable est spécifiée comme pg_endpoint, car certaines installations peuvent avoir configuré un serveur (ou un cluster) PostgreSQL distinct qui n'est pas géré par ce processus d'installation. Si c'est le cas, excluez l'action. N'appliquez pas l'Highstate au serveur PostgreSQL pendant l'étape Appliquer les Highstates aux nœuds plus tard dans le processus.
  4. Répétez l'étape précédente pour modifier la Section 3 de ce fichier, et modifiez les variables correspondantes pour spécifier le point de terminaison et le port de votre nœud Redis.
  5. Dans la Section 4 de ce fichier, modifiez les variables associées au nœud RaaS :
    • S'il s'agit d'une nouvelle installation, ne modifiez pas les valeurs par défaut des variables eapi_username et eapi_password. Pendant l'orchestration de la configuration, le processus d'installation établit la base de données avec ces informations d'identification par défaut. Il a besoin de ces informations d'identification pour se connecter via le service eAPI afin d'établir vos cibles et tâches par défaut dans Automation Config. Vous modifierez le mot de passe par défaut lors d'une étape de post-installation ultérieure.
    • Pour la variable eapi_endpoint, remplacez la valeur par l'adresse IP ou le DNS (pas l'ID de minion) de votre nœud RaaS.
      Note : La variable est spécifiée en tant que eapi_endpoint, car certaines installations hébergent plusieurs serveurs eAPI derrière un équilibrage de charge.
    • Par défaut, la variable eapi_ssl_enabled est définie sur True. Lorsqu'elle est définie sur True, SSL est activé. Il est fortement recommandé de le laisser activé. La validation SSL n'est pas requise par le programme d'installation, mais constitue probablement une exigence de sécurité dans les environnements qui hébergent leur propre autorité de certification.
    • Par défaut, la variable eapi_standalone est définie sur False. Cette variable fournit une direction vers les états de configuration si des données de Pillar sont utilisées dans un scénario d'installation à nœud unique. Dans ce scénario, toutes les communications IP sont dirigées vers l'adresse de bouclage. Dans le scénario d'installation multiple, vous devez conserver la valeur False.
    • Par défaut, la variable eapi_failover_master est définie sur False. Cette variable prend en charge les déploiements dans lequel les masters Salt (et les minions) fonctionnent en mode de basculement.
    • La variable eapi_key définit la clé de chiffrement que Automation Config utilise pour gérer les données chiffrées dans la base de données PostgreSQL. Cette clé doit être unique pour chaque installation. Une valeur par défaut est fournie, mais une clé personnalisée peut être générée en exécutant la commande suivante dans un terminal distinct en dehors de l'éditeur :
      openssl rand -hex 32
  6. Dans la Section 5 de ce fichier, modifiez les variables pour ajouter vos identifiants client uniques :
    • La variable customer_id identifie de manière unique un déploiement SaltStack. Elle devient le suffixe du nom de schéma de la base de données raas_* (API (RaaS)) dans PostgreSQL. Une valeur par défaut est fournie, mais une clé personnalisée peut être générée en exécutant la commande suivante dans un terminal distinct en dehors de l'éditeur :
      cat /proc/sys/kernel/random/uuid
    • La variable cluster_id définit l'ID d'un ensemble de masters Salt lorsqu'elle est configurée en mode à masters multiples Actif ou Basculement. Cet ID empêche les minions dépendant de plusieurs masters Salt d'être signalés plusieurs fois dans Automation Config.

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é Automation 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 à Automation 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.