Dans le cadre du processus de post-installation, vous devez installer, configurer et mettre à niveau le plug-in master. Le plug-in master permet à vos masters Salt de communiquer avec Automation Config. Le plug-in master inclut divers paramètres que vous pouvez ajuster pour améliorer les performances, ce qui est particulièrement utile pour les environnements volumineux ou occupés.

En général, vous installez le plug-in master sur chaque master Salt de votre environnement qui communique avec Automation Config. Par exemple, si vous utilisez une configuration incluant plusieurs masters Salt (parfois appelé configuration à plusieurs masters), vous devez installer le plug-in master sur chaque master Salt.

Avant de commencer

L'installation et la configuration du plug-in master constituent une étape de post-installation d'une série de plusieurs étapes qui doivent se dérouler dans un ordre spécifique. Tout d'abord, terminez l'un des scénarios d'installation, puis lisez la page de post-installation Installer la clé de licence.

Vous devez installer la bibliothèque PyJWT sur votre master Salt à l'aide de la commande suivante :
pip3 install pyjwt==2.3.0

Quand devez-vous installer le plug-in master ?

Vous devez installer le plug-in master sur tous vos masters Salt après une nouvelle installation de Automation Config. Le plug-in master n'est pas nécessaire sur les masters Salt qui n'ont pas besoin de communiquer avec Automation Config.

Si vous avez utilisé le scénario d'installation Installation de SaltStack Config pour moins de 1 000 nœuds, vous n'avez pas besoin d'installer le plug-in master sur le nœud sur lequel vous avez installé Automation Config et son architecture associée. Le programme d'installation installe automatiquement le plug-in master sur le nœud du master Salt. Toutefois, le plug-in master est installé uniquement sur le master Salt sur lequel vous avez lancé le programme d'installation. Si vous avez plusieurs masters, vous devez toujours installer le plug-in master sur vos autres masters.

Si vous installez manuellement Automation Config (non recommandé), vous devez effectuer les tâches suivantes avant d'installer le plug-in master :

  • Installer et configurer la base de données PostgreSQL
  • Installer et configurer la base de données Redis
  • Activer SSL (facultatif)
Important : Pour toutes les versions, il est recommandé de mettre à jour votre configuration de plug-in master en générant un fichier de configuration par défaut et en appliquant tous les paramètres que vous souhaitez conserver de votre configuration existante. Par exemple :
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf 
...

Si vous avez installé Salt à l'aide d'onedir, le chemin d'accès à cet exécutable est /opt/salt/salt/extras-3.10/bin/sseapi-config.

Installer le plug-in master à l'aide de l'espace de travail des plug-ins master

Note : Cette fonctionnalité est prise en charge pour Automation Config 8.11.2 ou version ultérieure.
Note : Le master Salt doit être exécuté en tant qu'utilisateur racine.

Vous pouvez télécharger et installer la dernière version du plug-in master à partir de l'interface utilisateur de Automation Config en accédant à Administration > Plug-ins master. Dans l'onglet Plug-ins master, vous pouvez télécharger le plug-in ou le client.

Après avoir téléchargé le plug-in master, vous devez Configurer le plug-in master.

Installer le plug-in master à l'aide de l'interface de ligne de commande

Pour installer le plug-in master sur votre master Salt :

À partir de la version 8.13.0, le plug-in master inclut un moteur tgtmatch qui décharge désormais le groupe cible correspondant du serveur RaaS vers les masters Salt. Il est recommandé d'activer et de configurer ce moteur tgtmatch pour rendre la correspondance du groupe cible plus réactive, en particulier dans les environnements présentant les caractéristiques suivantes :

  • Un grand nombre de groupes cibles (100 ou plus)
  • Un grand nombre de minions (3 000 ou plus)
  • Des modifications fréquentes des grains de minion (quotidiennes ou plus fréquentes)
  • Des créations et des suppressions fréquentes de minions (quotidiennes ou plus fréquentes)
Pour configurer RaaS de manière que les données de correspondance cible soient fournies par les masters Salt, assurez-vous de la présence du paramètre suivant dans le fichier de configuration RaaS (/etc/raas/raas) :
target_groups_from_master_only: true
  1. Connectez-vous à votre master Salt.
  2. Si nécessaire, téléchargez le fichier wheel du plug-in master sur Customer Connect.

    Le plug-in master est inclus dans le fichier .tar.gz du programme d'installation automatisé. Après avoir téléchargé et extrait le fichier.tar.gz, vous pouvez trouver le plug-in master dans le répertoire sse-installer/salt/sse/eapi_plugin/files.

  3. Mettez à niveau le plug-in master en désinstallant, puis en réinstallant manuellement le fichier wheel Python mis à jour. Utilisez les exemples de commandes suivants, en utilisant le nom exact du fichier wheel :
    Note : Le plug-in existant doit être désinstallé pour empêcher plusieurs instances de sseapi-config.
    pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl
    mv /etc/salt/master.d/raas.conf /tmp
    salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl
    cp /tmp/raas.conf /etc/salt/master.d/raas.conf
    systemctl restart salt-master

Configurer le plug-in master

Pour configurer le master Salt après l'installation du plug-in master :

  1. Connectez-vous à votre master Salt et vérifiez que le répertoire /etc/salt/master.d existe ou créez-le.
  2. Générez les paramètres de configuration du master.
    Attention : Si vous souhaitez conserver vos paramètres lors de la mise à niveau de votre installation, sauvegardez votre fichier de configuration de plug-in master existant avant d'effectuer cette étape. Copiez ensuite les paramètres pertinents de votre configuration existante dans le fichier qui vient d'être généré.
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf
    Important : Si vous avez installé Salt à l'aide d'onedir, le chemin d'accès à cet exécutable est /opt/salt/salt/extras-3.10/bin/sseapi-config.
  3. Modifiez le fichier raas.conf généré et mettez à jour les valeurs comme suit :
    Valeur Description

    sseapi_ssl_validate_cert

    Valide le certificat que l'API (RaaS) utilise. La valeur par défaut est True.

    Si vous utilisez vos propres certificats émis par une autorité de certification, définissez cette valeur sur True et configurez les paramètres sseapi_ssl_ca, sseapi_ssl_cert et sseapi_ssl_cert:.

    Sinon, définissez cette valeur sur False pour ne pas valider le certificat.

    sseapi_ssl_validate_cert:False

    sseapi_server

    Adresse IP HTTP de votre nœud RaaS, par exemple, http://example.com, ou https://example.com si SSL est activé.

    sseapi_command_age_limit

    Définit l'âge (en secondes) après lequel les tâches anciennes et potentiellement périmées sont ignorées. Par exemple, pour ignorer les tâches datant de plusieurs jours, définissez-le sur :

    sseapi_command_age_limit:86400

    Les tâches ignorées continuent à exister dans la base de données et s'affichent avec l'état Completed dans l'interface utilisateur de Automation Config.

    Certains environnements peuvent avoir besoin que le master Salt soit hors ligne pendant de longues périodes et auront besoin du master Salt pour exécuter les tâches qui ont été mises en file d'attente après son retour en ligne. Si cela s'applique à votre environnement, définissez la limite d'âge sur 0.

    sseapi_windows_minion_deploy_delay Définit un délai pour permettre à tous les services Windows requis de devenir actifs. La valeur par défaut est de 180 secondes.
    sseapi_linux_minion_deploy_delay Définit un délai pour permettre à tous les services Linux requis de devenir actifs. La valeur par défaut est de 90 secondes.
    sseapi_local_cache
         load: 3600
         tgt: 86400
         pillar: 3600
         exprmatch: 86400
         tgtmatch: 86400

    Définit la durée pendant laquelle certaines données sont mises en cache localement sur chaque master Salt. Les valeurs sont en secondes. Les exemples de valeurs sont des valeurs recommandées.

    • load : charges utiles salt save_load()

    • tgt : groupes cibles SSE

    • pillar : données de Pillar SSE (chiffrées)

    • exprmatch : données de correspondance d'expression cible SSE

    • tgtmatch : données de correspondance du groupe cible SSE

  4. FACULTATIF : cette étape est uniquement nécessaire pour les installations manuelles. Pour vérifier que vous pouvez vous connecter à SSL avant de connecter le plug-in master, modifiez le fichier raas.conf généré pour mettre à jour les valeurs suivantes. Si vous ne mettez pas à jour ces valeurs, le plug-in maître utilise le certificat généré par défaut.
    Valeur Description
    sseapi_ssl_ca Chemin d'accès à un fichier d'autorité de certification.
    sseapi_ssl_cert Chemin d'accès au certificat. La valeur par défaut est /etc/pki/raas/certs/localhost.crt.
    sseapi_ssl_key Chemin d'accès à la clé privée du certificat. La valeur par défaut est /etc/pki/raas/certs/localhost.key.
    id Mettez cette ligne en commentaire en ajoutant un # au début. Cela n'est pas obligatoire.
  5. FACULTATIF : mettez à jour les paramètres liés aux performances. Pour les environnements de grande taille ou fortement sollicités, vous pouvez améliorer les performances des communications entre le master Salt et Automation Config en ajustant les paramètres suivants.
    • Configurez les moteurs de plug-in master :

      Le plug-in master eventqueue et les moteurs rpcqueue déchargent certaines communications avec Automation Config des chemins de code critiques pour les performances vers des processus dédiés. Pendant que les moteurs attendent de communiquer avec Automation Config, les charges utiles sont stockées dans le système de fichiers local du master Salt afin que les données persistent lors des redémarrages de celui-ci. Le moteur tgtmatch déplace le calcul des correspondances du groupe cible de minions du serveur RaaS vers les services salt-master.

      Pour activer les moteurs, assurez-vous de la présence des paramètres suivants dans le fichier de configuration du plug-in master Salt (raas.conf) :

      engines: 
           - sseapi: {} 
           - eventqueue: {} 
           - rpcqueue: {} 
           - jobcompletion: {} 
           - keyauth: {} 
           - tgtmatch: {}

      Pour configurer le moteur eventqueue, vérifiez la présence des paramètres suivants :

      sseapi_event_queue: 
        name: sseapi-events 
        strategy: always 
        push_interval: 5 
        batch_limit: 2000 
        age_limit: 86400 
        size_limit: 35000000 
        vacuum_interval: 86400 
        vacuum_limit: 350000 

      Les paramètres de file d'attente peuvent être ajustés en fonction de leur interfonctionnement. Par exemple, en supposant une moyenne de 400 événements par seconde sur le bus d'événements Salt, les paramètres indiqués ci-dessus permettent de collecter environ 24 heures de trafic d'événements mis en file d'attente sur le master Salt avant que les événements les plus anciens soient supprimés pour cause de limites de taille ou d'ancienneté.

      Pour configurer le moteur rpcqueue, vérifiez les paramètres suivants dans raas.conf :

      sseapi_rpc_queue: 
        name: sseapi-rpc 
        strategy: always 
        push_interval: 5 
        batch_limit: 500 
        age_limit: 3600 
        size_limit: 360000 
        vacuum_interval: 86400 
        vacuum_limit: 100000 
      Pour configurer le moteur tgtmatch, assurez-vous de la présence de ces paramètres dans le fichier de configuration du plug-in master (/etc/salt/master.d/raas.conf)
      engines: 
          - sseapi: {} 
          - eventqueue: {} 
          - rpcqueue: {} 
          - jobcompletion: {} 
          - keyauth: {} 
          - tgtmatch: {} 
      
      sseapi_local_cache:     
          load: 3600 
          tgt: 86400 
          pillar: 3600 
          exprmatch: 86400 
          tgtmatch: 86400 
      
      sseapi_tgt_match: 
          poll_interval: 60     
          workers: 0 
          nice: 19
      Note : Pour utiliser la correspondance cible sur les services salt-master, le paramètre de configuration suivant doit également être présent dans la configuration RaaS : target_groups_from_master_only: true.
    • Limitez les tailles de charge utile des grains de minions :
      sseapi_max_minion_grains_payload: 2000
    • Activez l'annulation des tâches d'une ancienneté supérieure à une période définie (en secondes). Par exemple, utilisez la valeur 86400 pour que les tâches remontant à plus d'une journée soient ignorées. Lorsque la valeur 0 est choisie, cette fonctionnalité est désactivée :
      sseapi_command_age_limit:0
      Note :

      Lors des mises à niveau du système, l'activation de ce paramètre est utile pour empêcher l'exécution inattendue d'anciennes commandes stockées dans la base de données.

    Ensemble, la mise en file d'attente des événements dans Salt et les moteurs de mise en file d'attente, la mise en correspondance des cibles salt-master, la limite de taille de la charge utile des grains et la limite d'ancienneté des commandes dans le plug-in master Salt augmentent le débit et réduisent la latence des communications entre le master Salt et Automation Config dans les chemins de code les plus sensibles aux performances.

  6. Redémarrez le service de master.
    sudo systemctl restart salt-master
  7. FACULTATIF : vous pouvez exécuter une tâche de test pour vous assurer que le plug-in master permet désormais la communication entre les nœuds master et RaaS.
    salt -v '*' test.ping

Même si aucune activité ne s'affiche, par exemple si aucun minion n'est connecté, cela est probablement le signe d'une configuration correcte.

Référence des paramètres de configuration

Ces paramètres dans le fichier de configuration permettent à chaque master Salt de se connecter à l'API (RaaS). Ces paramètres se trouvent dans le fichier de configuration /etc/salt/master.d/raas.conf.

Important :

Les paramètres du master Salt du fichier raas.conf sont prioritaires sur les paramètres existants dans /etc/salt/master. Si vous avez personnalisé les paramètres fileserver_backend ou ext_pillar dans /etc/salt/master, vous devez fusionner manuellement ces paramètres pour qu'ils se regroupent dans un seul fichier. Vous pouvez éventuellement redéfinir l'ordre des serveurs principaux pour en modifier la priorité.

Le tableau suivant explique les paramètres de configuration généraux :

Option Description
id ID de master Salt, autogénéré s'il n'est pas défini
sseapi_server URL du serveur SSEAPI, par exemple https://sse.example.com:443
engines Moteurs Salt à activer, sseapi, eventqueue, rpcqueue, jobcompletion et keyauth recommandés.
master_job_cache sseapi pour utiliser le cache des tâches de master Automation Config
event_return Système de retour d'événements Salt, sseapi recommandé pour utiliser le système de retour d'événements Automation Config
ext_pillar sources de Pillar externes, sseapi recommandés
fileserver_backend serveurs principaux de fichiers, sseapi et roots recommandés
sseapi_update_interval fréquence de mise à jour à partir du serveur de fichiers (secondes, valeur par défaut 60)
sseapi_poll_interval fréquence d'interrogation de Automation Config pour obtenir de nouvelles données (secondes, valeur par défaut 30)
sseapi_jce_poll_interval ajoute un délai entre les itérations dans le moteur jobcompletion afin qu'un maximum de 5 760 commandes find_job soient envoyées par jour par le master Salt (en secondes, 15 par défaut)
sseapi_timeout délai d'attente pour les appels API (RaaS) (secondes, valeur par défaut 200)
sseapi_pubkey_path chemin d'accès au fichier de clé publique pour l'authentification du master Salt dans Automation Config
sseapi_key_rotation Intervalle de rotation de la clé d'authentification Automation Config du master Salt (secondes, 86 400 par défaut)
sseapi_cache_pillar mise en cache éventuelle des données du Pillar dans Automation Config (True ou False, False par défaut)
sseapi_cluster_id (facultatif) Nom du cluster du master Salt, pour regrouper les masters Salt en clusters dans Automation Config
sseapi_failover_master le master Salt est un master Salt de basculement (True ou False, False par défaut)
sseapi_command_age_limit ignorer ou non les commandes API (RaaS) plus anciennes qu'une durée définie (secondes, 0 pour désactiver, valeur par défaut 0)

Le tableau suivant explique les paramètres SSL :

Option Description
sseapi_ssl_key chemin d'accès à la clé privée du certificat
sseapi_ssl_cert chemin d'accès au certificat
sseapi_ssl_validate_cert valider ou non le certificat SSL de Automation Config (True ou False, True par défaut)

Le tableau suivant explique les paramètres du moteur de file d'attente des événements, qui figurent sous le titre sseapi_event_queue :

Option Description
name Nom de la file d'attente des événements (sseapi-events par défaut, il n'est pas nécessaire de le modifier)
strategy Quand mettre en file d'attente des événements (always, on_failure ou never, never par défaut)
push_interval Fréquence de transmission d'événements à Automation Config (secondes, 5 par défaut)
batch_limit Nombre maximal d'événements à transmettre à Automation Config par intervalle (2 000 par défaut)
age_limit Ancienneté maximale de l'événement mis en file d'attente ; abandonner les événements les plus anciens (secondes, 86 400 par défaut)
size_limit Taille maximale de la file d'attente ; abandonner les événements les plus anciens (événements, 35 000 000 par défaut)
vacuum_interval Fréquence de vidage de la base de données de file d'attente (secondes, 86 400 par défaut)
vacuum_limit Taille maximale de la file d'attente lors du vidage de la base de données de file d'attente (événements, 350 000 par défaut)

Le tableau suivant explique les paramètres du moteur de file d'attente RPC, qui s'affichent sous le titre sseapi_rpc_queue :

Option Description
name Nom de la file d'attente des événements (sseapi-rpc par défaut, il n'est pas nécessaire de le modifier)
strategy Quand mettre en file d'attente des événements (always, on_failure ou never, never par défaut)
push_interval Fréquence d'envoi d'appels Automation Config (secondes, 5 par défaut)
batch_limit Nombre maximal d'appels à transmettre à Automation Config par intervalle (500 par défaut)
age_limit Ancienneté maximale des appels mis en file d'attente ; abandonner les entrées les plus anciennes (secondes, 3 600 par défaut)
size_limit Taille maximale de la file d'attente ; abandonner les entrées les plus anciennes (événements, 360 000 par défaut)
vacuum_interval Fréquence de vidage de la base de données de file d'attente (secondes, 86 400 par défaut)
vacuum_limit Taille maximale de la file d'attente lors du vidage de la base de données de file d'attente (entrées, 100 000 par défaut)
Le tableau suivant explique les paramètres du moteur de mise en correspondance des cibles, qui s'affichent sous le titre sseapi_tgt_match :
Option Description
poll_interval Fréquence, en secondes, à laquelle le moteur doit demander des informations mises à jour sur le groupe cible à partir de RaaS (60 par défaut)
workers Nombre de processus worker qui doivent être créés pour effectuer des calculs de correspondance de groupe cible. La valeur par défaut (0) crée un processus par cœur de CPU, jusqu’à une limite de 8.
adéquat Adéquation de la priorité des travailleurs correspondant au groupe cible. La valeur par défaut (19) donne aux travailleurs la priorité de planification la plus faible pour éviter toute interférence avec d'autres processus s'exécutant sur le service salt-master.

Le tableau suivant explique les paramètres de chemin d'accès. Après la génération de la configuration initiale, modifiez avec précaution ces paramètres. Les modules seront copiés dans ces répertoires à partir du processus d'installation. Cependant, l'ajout de chemins supplémentaires n'aura pas d'effet négatif.

Option Description
beacons_dirs chemin(s) de modules externes de balise
engines_dirs chemin(s) de modules externes de moteurs
fileserver_dirs chemin(s) de modules externes de serveur de fichiers
pillar_dirs chemin(s) de modules externes de Pillar
returner_dirs chemin(s) de modules externes de système de retour
roster_dirs chemin(s) de modules externes de liste
runner_dirs chemin(s) de modules externes d'exécuteur
module_dirs chemin(s) de modules externes Salt
proxy_dirs chemin(s) de modules externes de proxy
metaproxy_dirs chemin(s) de modules externes de métaproxy
states_dirs chemin(s) de modules externes d'états

Étape suivante

Après l'installation et la configuration du plug-in master, vous devez effectuer des étapes de post-installation supplémentaires. L'étape suivante consiste à configurer le nœud RaaS. Pour poursuivre le processus de post-installation, consultez Vérifier le fichier de configuration RaaS.