L’espace de travail Highstate est utilisé pour gérer et surveiller la configuration de votre système. Vous pouvez voir une vue historique des exécutions de Highstate dans votre infrastructure pour obtenir des analyses et des tendances liées à la dérive de configuration sur tous les minions.

En tant qu’administrateur système, vous savez qu'il est important de préserver la conformité de la configuration de votre système, d’identifier les systèmes présentant des défaillances ou des modifications, et de rétablir la conformité de ces systèmes le plus rapidement possible. L’espace de travail Highstate fournit de précieuses analyses sur la configuration de votre système. Il inclut également des outils qui peuvent vous aider à gérer la dérive de configuration.

Espace de travail Highstate dans l’interface utilisateur de SaltStack Config après une exécution récente de Highstate

Qu’est-ce que Highstate ?

Au lieu de configurer manuellement chaque minion ou chaque application successivement, vous pouvez utiliser le système de gestion de l'état de SaltStack Config pour créer des fichiers d'état que vous pouvez appliquer simultanément à de nombreux minions. Ces fichiers d'état peuvent inclure un ensemble d'instructions qui indiquent à SaltStack Config quelles opérations doivent être exécutées sur le minion et dans quel ordre. Le système de gestion de l'état garantit également que chaque minion est configuré correctement et aussi efficacement que possible.

Cependant, si vous disposez de centaines de fichiers d’état et de milliers de minions, l’exécution de chaque fichier d’état prend du temps. Une manière plus rapide et plus intuitive d’appliquer des fichiers d’état à vos minions consiste à exécuter Highstate. Lorsque vous exécutez Highstate, la fonction state.highstate est appelée. La fonction state.highstate applique tous les états Salt décrits dans un fichier top.sls que vous créez sur votre master Salt.

L’exécution de Highstate peut être utile dans les scénarios suivants:
  • Vous configurez votre infrastructure pour la première fois et vous devez normaliser les configurations dans l'ensemble de votre environnement.
  • Vous disposez de systèmes critiques dont la conformité doit être préservée. L’espace de travail Planifications dans SaltStack Config peut être utilisé pour planifier une tâche Highstate qui s’exécute une fois par semaine pour s’assurer que vos machines sont configurées correctement.

Le fichier top.sls mappe les états Salt à un groupe cible et se compose de l’environnement Salt, des critères cibles et des fichiers d’état à exécuter. Les minions téléchargent le fichier top.sls et tentent de faire correspondre les expressions qu’il contient. Si un minion correspond à l’expression, il exécute les fichiers d’état spécifiés. Par exemple, vous pouvez organiser votre fichier top.sls pour qu'il applique certains fichiers d’état à tous les minions, certains aux minions CentOS et d’autres aux minions dont les ID contiennent la chaîne web.

base: 
  '*':
    - vim
    - scripts
  'os:CentOS': 
    - match: grain 
    - centos-config 
  '*web*':
    - apache
    - django

Lors de l'exécution de Highstate, si une configuration a dérivé, SaltStack Config replace les minions et les applications dans leur état de configuration conforme. Si une configuration doit être modifiée, SaltStack Config déploie rapidement ces modifications sur les minions affectés. Vous pouvez ensuite utiliser l’espace de travail Highstate pour voir quelles modifications ont été apportées lors de la dernière exécution de Highstate. Dans l’espace de travail, les graphiques et les rapports permettent également de visualiser les modifications dans l'ensemble de votre infrastructure.

Envisagez de tester vos modifications dans un environnement de développement ou de préparation. Si vos états aboutissent, vous pouvez les appliquer dans votre environnement de production.

Vous pouvez également exécuter Highstate en mode d’exécution de test. Si vous exécutez Highstate en mode d’exécution de test, SaltStack Config génère un retour de tâche qui indique les modifications qui seraient apportées à chaque minion en cas d'application des états. Pour en savoir plus sur le mode d’exécution de test, reportez-vous à la section Création de tâches.

Important :

Vous devez créer et configurer le fichier top.sls sur votre master Salt avant d’exécuter Highstate pour la première fois. Pour plus d'informations sur les états dans Salt et sur le fichier top.sls, reportez-vous à la section Organisation des états dans le Guide de l'utilisateur Salt.

Exécuter Highstate

Après avoir configuré le fichier top.sls, vous pouvez exécuter votre premier Highstate.

Pour exécuter Highstate:

  1. Cliquez sur l’onglet États dans l’espace de travail Highstate.
  2. Cliquez sur Exécuter Highstate.
  3. Dans la boîte de dialogue, sélectionnez la cible sur laquelle exécuter Highstate.
  4. Cliquez sur Exécuter Highstate.

Une fois l’exécution de Highstate terminée, vous pouvez afficher les résultats de votre première exécution de Highstate selon plusieurs niveaux:

  • Niveau global: voir les retours Highstate dans votre environnement
  • Niveau de la cible: voir les retours Highstate par groupe cible
  • Niveau du minion: voir les retours Highstate par minion

Niveau global

Vous pouvez voir la conformité Highstate dans votre environnement dans les onglets États et Minions. Ce niveau global vous permet d’évaluer l’état global de la configuration de votre système depuis la dernière exécution de Highstate.

Espace de travail Highstate dans l’interface utilisateur de SaltStack Config après une exécution récente de Highstate

À tous les niveaux, les dernières données Highstate sont extraites de chaque minion, que les données proviennent d’une exécution de Highstate récente ou de plusieurs exécutions de Highstate. Vous pouvez utiliser le menu déroulant Limiter par dans l’onglet États pour vous assurer que l’espace de travail Highstate affiche uniquement les données les plus récentes.

Le niveau global inclut les informations suivantes pour tous les états:

Terme Description
État Déclaration d’ID pour l’état, par exemple, common-centos-packages.
Fichier SLS Fichier contenant la déclaration d’état, par exemple, centos-config.sls.
Minions Nombre de minions qui ont exécuté l’état.
Erreurs Indique si l’exécution de l’état a échoué. L’état peut échouer pour de nombreuses raisons. Par exemple:
  • Un fichier requis n’existe pas ou est inaccessible en raison des autorisations du système de fichiers.
  • Une ressource réseau ou un service n’est pas disponible.
  • Il existe un conflit de dépendance de module, de sorte que l’état ne peut pas être appliqué.

La colonne Commentaires fournit plus de détails sur la cause de l’échec de l’état.

Réussite Indique le pourcentage global d’états qui ont réussi.
Modifié Indique le pourcentage global de minions qui ont signalé des modifications pour chaque état.
Modifications Indique si l’exécution la plus récente de Highstate a entraîné des modifications.

La colonne Commentaires fournit plus de détails sur les modifications apportées.

Durée moyenne Durée moyenne d’exécution de l’état en millisecondes (ms).
Environnements Environnement Salt qui contient le fichier d’état, par exemple, base ou dev.
JID Numéro d’identification de la tâche pour l’exécution de state.highstate.

Si vous cliquez sur un état dans l’onglet États, vous pouvez afficher l’exécution la plus récente de Highstate sur chacun de vos minions Salt.

Toutes les exécutions précédentes de Highstate pour l'état de la page HTML par défaut dans SaltStack Config

Les informations suivantes sont fournies pour chaque état:

Terme Description
ID de minion ID du minion qui a exécuté l’état.
État Indique si l’exécution de l’état a échoué ou réussi.
Modifications Indique si l’exécution la plus récente de Highstate a entraîné des modifications.

La colonne Commentaires fournit plus de détails sur les modifications apportées.

Environnement Environnement Salt qui contient le fichier d’état, par exemple, base ou dev.
Cluster/Master Master Salt associé au minion.
Durée Durée d’exécution de l’état en millisecondes (ms).
Commentaire Message qui fournit des détails supplémentaires sur la réussite ou l’échec de l’exécution de l’état.
JID Numéro d’identification de la tâche pour l’exécution de state.highstate.

Vous pouvez également exécuter une tâche Highstate ad hoc au niveau global:

  1. Dans SaltStack Config, ouvrez l'espace de travail Highstate.
  2. Cliquez sur Exécuter Highstate.
  3. Dans la boîte de dialogue, sélectionnez la cible sur laquelle exécuter Highstate.
  4. Cliquez sur Exécuter Highstate.

Vous pouvez surveiller la progression de la tâche dans l’onglet Activité de l’espace de travail Highstate. Une fois la tâche terminée, vous pouvez afficher les rapports mis à jour et les détails de l’exécution de Highstate aux niveaux global, de la cible ou du minion.

Niveau de la cible

Pour afficher les retours Highstate au niveau de la cible, vous pouvez ouvrir l’espace de travail Cibles. Si vous cliquez sur une cible, vous pouvez voir toutes les exécutions d’état précédentes pour tous les minions du groupe cible.

Exécutions précédentes de Highstate pour un groupe cible CentOS dans SaltStack Config

Le niveau de la cible fournit les informations suivantes sur chaque minion du groupe cible:

Terme Description
ID de minion ID du minion.
Exécutions d'état Nombre d’exécutions d’état pour un minion.
Erreurs Indique si l’exécution de l’état a échoué. L’état peut échouer pour de nombreuses raisons. Par exemple:
  • Un fichier requis n’existe pas ou est inaccessible en raison des autorisations du système de fichiers.
  • Une ressource réseau ou un service n’est pas disponible.
  • Il existe un conflit de dépendance de module, de sorte que l’état ne peut pas être appliqué.

La colonne Commentaires fournit plus de détails sur la cause de l’échec de l’état.

Réussite Indique le pourcentage global d’états qui ont réussi.
Modifié Indique le pourcentage global d'états ayant entraîné des modifications.
Modifications Indique si l’exécution la plus récente de Highstate a entraîné des modifications.

La colonne Commentaires fournit plus de détails sur les modifications apportées.

Durée Durée d’exécution de l’état en millisecondes (ms).
Environnements Environnement Salt qui contient le fichier d’état, par exemple, base ou dev.
JID Numéro d’identification de la tâche pour l’exécution de state.highstate.

Pour exécuter une tâche Higstate ad hoc au niveau de la cible:

  1. Dans SaltStack Config, ouvrez l'espace de travail Cibles.
  2. Sélectionnez le groupe cible sur lequel vous souhaitez exécuter Highstate.
  3. Cliquez sur l'onglet Highstate.
  4. Cliquez sur Exécuter Highstate.
  5. Dans la boîte de dialogue, confirmez le groupe cible sur lequel exécuter Highstate.
  6. Cliquez sur Exécuter Highstate.

Niveau du minion

Pour afficher les retours Highstate au niveau du minion, vous pouvez ouvrir l'onglet Minions de l’espace de travail Highstate.

Renvois de Highstate pour tous les minions dans un environnement SaltStack Config

Le niveau du minion fournit les informations suivantes pour tous les minions:

Terme Description
ID de minion ID du minion.
Exécutions d'état Nombre d’exécutions d’état pour un minion.
Erreurs Indique si l’exécution de l’état a échoué. L’état peut échouer pour plusieurs raisons:
  • Un fichier requis n’existe pas ou est inaccessible en raison des autorisations du système de fichiers.
  • Une ressource réseau ou un service n’est pas disponible.
  • Il existe un conflit de dépendance de module, de sorte que l’état ne peut pas être appliqué.

La colonne Commentaires fournit plus de détails sur la cause de l’échec de l’état.

Réussite Indique le pourcentage global d’états qui ont réussi.
Modifié Indique le pourcentage global d'états ayant entraîné des modifications pour le minion.
Modifications Indique si l’exécution la plus récente de Highstate a entraîné des modifications.

Si vous cliquez sur un ID de minion, vous pouvez afficher toutes les exécutions d’état précédentes pour ce minion.

Toutes les exécutions d’état pour un minion Salt dans l’espace de travail Highstate

Les informations suivantes sont fournies:

Terme Description
Réussite Indique si l’exécution de l’état a échoué ou réussi.
Modifications Indique si l’exécution la plus récente de Highstate a entraîné des modifications.
Environnement Environnement Salt qui contient le fichier d’état, par exemple, base ou dev.
Fichier SLS Fichier contenant la déclaration d’état, par exemple, centos-config.sls.
État Déclaration d’ID pour l’état, par exemple, common-centos-packages.
Durée Durée d’exécution de l’état en millisecondes (ms).
Commentaire Message qui fournit des détails supplémentaires sur la réussite ou l’échec de l’exécution de l’état.
JID Numéro d’identification de la tâche pour l’exécution de state.highstate.

Pour exécuter une tâche Higstate ad hoc au niveau du minion:

  1. Dans SaltStack Config, ouvrez l'espace de travail Highstate.
  2. Sélectionnez le ou les minions sur lesquels vous souhaitez exécuter Highstate.
  3. Cliquez sur Exécuter Highstate.
  4. Dans la boîte de dialogue, cliquez sur Exécuter Highstate.

Afficher l’activité Highstate

L'onglet Activité de l’espace de travail Highstate est utilisé pour surveiller l’état des exécutions de Highstate. L'onglet Activité offre de la visibilité sur de nombreux types d'événements et d'activités, par exemple sur les tâches planifiées ou sur les tâches ad hoc.

Graphique interactif dans l’espace de travail Highstate qui indique le nombre de minions avec et sans modifications au cours des 30 derniers jours

Le graphique interactif de l'onglet Activité inclut plusieurs rapports permettant de fournir une vue d’ensemble des précédentes exécutions de Highstate dans votre environnement SaltStack Config. Vous pouvez afficher les résultats des dernières 24 heures jusqu’aux 30 derniers jours pour chaque rapport.

Rapport Description
Minion: durée moyenne Affiche la durée moyenne des exécutions d’état sur tous les minions, dans le temps.
Minions: modifications/aucune modification Affiche le nombre de minions qui ont signalé des modifications par rapport aux minions qui n'en ont pas signalé, dans le temps.
Minions: réussite/échec Affiche le nombre de minions qui ont signalé des exécutions d’état réussies par rapport aux minions qui ont signalé des exécutions d’état ayant échoué, dans le temps.
États: modifications/aucune modification Affiche le nombre d'états ayant entraîné des modifications par rapports aux états qui n'en ont pas entraîné, dans le temps.
États: réussite/échec Affiche le nombre d’états ayant réussi par rapport aux états ayant échoué.

L'onglet Activité comporte trois sections qui trient les tâches par état:

  • Terminé: utilisé pour surveiller l'état des tâches Highstate terminées.
  • En cours d'exécution: utilisé pour surveiller l'état des tâches Highstate en cours d'exécution.
  • À venir: utilisé pour surveiller l'état des tâches Highstate à venir.

Le tableau de l'onglet Activité affiche des informations sur l’état de la tâche, l’origine, la planification (le cas échéant), la tâche, le groupe cible et l’ID de tâche associé (JID). Vous pouvez filtrer les colonnes si nécessaire.