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.
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
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.
Si vous êtes dans un environnement virtualisé, spécifiez l'adresse interne, par opposition à l'adresse publique.
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 :
- 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 estetc/salt/minion.d
. - Ouvrez le fichier
minion.conf
dans un éditeur. Définissez le paramètreid
sur votre ID de minion préféré. Par exemple :id: postgres-database-1
- 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 :
- Sur le master Salt, accédez au répertoire
sse-installer
. - Copiez les fichiers Pillar et d'état du répertoire
sse_installer
danspillar_roots
etfile_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.
- 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. - 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 %}
- 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 :
- Sur le master Salt, accédez au répertoire
/srv/pillar/sse/
. - 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 variablespg_server
etredis_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 variableseapi_servers
etsalt-masters
sont formatées dans une liste, car il est possible d'avoir plusieurs nœuds RaaS et masters Salt. - 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
etpg_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 commepg_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. -
- 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.
- 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
eteapi_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 queeapi_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 surTrue
. Lorsqu'elle est définie surTrue
, 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 surFalse
. 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 valeurFalse
. - Par défaut, la variable
eapi_failover_master
est définie surFalse
. 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
- S'il s'agit d'une nouvelle installation, ne modifiez pas les valeurs par défaut des variables
- 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éesraas_*
(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.
- La variable
Appliquer les Highstates aux nœuds
- 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
- 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
- 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.
- 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
- 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.