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
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.