Comment installer et configurer les serveurs Salt Master et Minion sur Ubuntu 14.04

introduction

SaltStack est un système puissant, flexible et performant de gestion de la configuration et d'exécution à distance. Il peut être utilisé pour gérer votre infrastructure à partir d’un emplacement centralisé tout en minimisant les étapes de maintenance manuelle. Pour en savoir plus sur certaines des terminologies et des outils impliqués avec SaltStack, consultezthis guide.

Dans cet article, nous allons nous concentrer sur la configuration d’un serveur maître Salt pour gérer votre infrastructure. Nous montrerons également comment installer le démon Salt Minion sur d’autres ordinateurs afin de les gérer avec Salt. Nous allons utiliser deux serveurs Ubuntu 14.04 pour illustrer ces étapes.

Conditions préalables

Pour commencer, vous devez avoir au moins deux instances de serveur Ubuntu 14.04. Ceux-ci doivent avoir un utilisateur non root configuré avec les privilègessudo. Vous pouvez apprendre comment créer et configurer ces utilisateurs en suivant nosUbuntu 14.04 initial server setup guide.

Lorsque vous êtes prêt à commencer, connectez-vous au serveur que vous souhaitez utiliser en tant que maître Salt avec votre utilisateursudo. Nous allons d'abord configurer cette machine.

Installer le démon maître

Le démon maître Salt peut être installé de différentes manières sur Ubuntu 14.04. Voici un bref aperçu des avantages et des inconvénients de chaque méthode:

  • Ubuntu SaltStack PPA: utilise les outils de gestion des packages natifs Ubuntu pour installer et mettre à jour les logiciels requis. C'est la méthode d'installation la plus simple mais, comme c'est le cas au moment d'écrire ces lignes, les packages peuvent être considérablement obsolètes.

  • Salt-Bootstrap: ce script d'amorçage tente de fournir une méthode plus universelle pour installer et configurer Salt. Il peut essayer d'utiliser les outils logiciels natifs disponibles, ce qui signifie qu'il peut toujours essayer de s'installer à partir du PPA ci-dessus. Il fournit également un accès facile aux versions de développement de Salt.

Ci-dessous, nous décrirons comment installer à l'aide de la méthode Ubuntu PPA. Nous fournirons également des instructions sur la manière d'utiliser le scriptsalt-bootstrap pour installer à la fois les versions stable et de développement de Salt master.

C'est à vous de décider quelle option correspond le mieux à vos besoins. Si vous rencontrez des problèmes, il est possible que des correctifs de bogues soient disponibles dans la version de développement. Cependant, il y a aussi une chance de rencontrer des bogues récemment publiés.

Installer la version stable du PPA officiel

L'installation à partir du PPA Ubuntu est la méthode d'installation la plus simple.

Pour commencer, vous devez ajouter le SaltStack PPA au serveur que vous utiliserez en tant que maître. Vous pouvez le faire en tapant:

sudo add-apt-repository ppa:saltstack/salt

Une fois que vous avez confirmé l’ajout du PPA, celui-ci sera ajouté à votre système. Pour indexer les nouveaux packages disponibles, vous devez mettre à jour votre index de package local. Ensuite, vous pouvez installer le logiciel approprié:

sudo apt-get update
sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc

Dans la commande ci-dessus, nous avons installé les démons maître maître et sbire. Cela nous permettra également de contrôler notre serveur maître avec Salt. Nous avons également installésalt-ssh etsalt-cloud, ce qui nous donne plus de flexibilité dans la façon dont nous nous connectons et contrôlons les ressources. Nous avons également inclus le package de documentation.

À ce stade, vous avez terminé l'installation de Salt Master. Passez auxinitial master configuration section pour que vos nouveaux services soient opérationnels.

Installer la version stable en utilisant Salt-Bootstrap

Une alternative à l'utilisation directe du PPA consiste à installer la version stable à l'aide du scriptsalt-bootstrap. Vous pouvez le télécharger sur le site Web de SaltStack. Une des raisons pour lesquelles vous pouvez choisir d'utiliser cette méthode d'installation du système stable par rapport à la méthode ci-dessus est qu'elle récupère certaines de ses dépendances du gestionnaire de paquetspip. Cela peut vous donner des versions plus à jour de certaines dépendances de Salt.

Pour commencer, déplacez-vous vers votre répertoire personnel ou vers un autre emplacement où vous disposez d'autorisations en écriture. Nous pouvons utilisercurl pour télécharger le script d'amorçage. Nous suivrons les instructions trouvées sur lessalt-bootstrap GitHub page et utiliserons le nom de sortie qu'ils ont sélectionné pour plus de clarté:

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

À ce stade, examinez le script pour vous assurer qu'il ne fait rien que vous n'approuviez pas:

less ~/install_salt.sh

Le scriptsalt-bootstrap est géré par l'équipe SaltStack, mais vous devez toujours vérifier le contenu des scripts externes avant de les exécuter.

Lorsque vous êtes satisfait des actions qui seront entreprises, exécutez le script en le passant àsh. Nous utiliserons l'indicateur-P pour que le script puisse utiliserpip comme source de dépendance, si nécessaire. Sans cet indicateur, l'installation échouera probablement. Nous devons également inclure l'indicateur-M pour que le démon Salt Master soit installé. Tous les utilitaires de Salt helper seront automatiquement inclus.

La commande complète dont nous avons besoin est:

sudo sh install_salt.sh -P -M

À ce stade, vous avez terminé l'installation de Salt Master. Passez auxinitial master configuration section pour que vos nouveaux services soient opérationnels.

Installer la version de développement en utilisant Salt-Bootstrap

Nous pouvons également utiliser le scriptsalt-bootstrap pour installer une version de développement de Salt en utilisantgit. Cela peut être utile pour accéder à de nouvelles fonctionnalités et, plus important encore, à des correctifs de bogues plus récents qui pourraient ne pas être disponibles dans la version PPA du logiciel.

Le script nécessaire est le même scriptsalt-bootstrap que celui utilisé ci-dessus. Seules les options que nous utilisons seront différentes. Dans cet esprit, si vous ne possédez pas encore le script, téléchargez-le dans votre répertoire personnel:

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

Encore une fois, jetez un coup d'œil au script pour vous assurer que vous êtes d'accord avec les opérations qu'il effectuera:

less ~/install_salt.sh

Lorsque vous êtes satisfait, vous pouvez passer le script àsh pour l'exécuter. Nous inclurons l'indicateur-P pour indiquer au script d'obtenir les dépendances avecpip si nécessaire. L'indicateur-M est inclus pour spécifier que nous souhaitons installer Salt Master. Nous terminerons la commande avecgit develop pour indiquer au script que nous voulons utiliser lesSaltStack GitHub repo pour installer la version de développement la plus récente au lieu du PPA Ubuntu.

La commande complète dont nous avons besoin est:

sudo sh install_salt.sh -P -M git develop

À ce stade, vous avez terminé l'installation de Salt Master. Nous allons ensuite configurer le maître pour que les nouveaux services soient opérationnels.

Configuration initiale du maître

Ensuite, nous devons configurer le maître de sel.

Créer les structures du répertoire des sels

Tout d'abord, nous allons créer la structure de répertoires de gestion de la configuration dans laquelle le maître Salt recherchera divers fichiers. Ceux-ci sont tous sous le répertoire/srv par défaut. Nous avons besoin de/srv/salt et/srv/pillar pour commencer. Créez-les maintenant en tapant:

sudo mkdir -p /srv/{salt,pillar}

Modifier la configuration de Salt Salt

Ensuite, nous ajusterons le fichier de configuration principal de Salt. Ouvrez le fichier avec les privilègessudo dans votre éditeur de texte:

sudo nano /etc/salt/master

La première chose que nous allons faire est de définir le dictionnairefile_roots. Cela spécifie essentiellement les emplacements où Salt Master cherchera des instructions de gestion de la configuration. Lebase spécifie l'environnement par défaut. Deux des répertoires que nous avons créés précédemment seront utilisés à cette fin. Les/srv/salt seront utilisés pour les instructions créées par l'administrateur, et les/srv/formulas seront réservés pour les configurations pré-packagées téléchargées à partir de sources externes:

/etc/salt/master

file_roots:
  base:
    - /srv/salt
    - /srv/formulas

Note

[.note] # Il est important de reproduire exactement les formats donnés. Salt utilise des fichiers de configuration de style YAML. Celles-ci nécessitent une attention stricte à l'espacement et à l'indentation pour que le démon interprète correctement les valeurs.
#

Ensuite, nous allons configurer le répertoire racine pour la configuration de notre pilier Salt. Cela ressemble beaucoup à la configuration ci-dessus et utilise le troisième répertoire que nous avons créé:

/etc/salt/master

pillar_roots:
  base:
    - /srv/pillar

C’est tout ce que nous devons configurer pour le maître pour le moment. Enregistrez et fermez le fichier lorsque vous avez terminé.

Modifier la configuration du séide

Nous avons également installé le démon Salt Minion sur cette machine afin de pouvoir le maintenir en conformité avec le reste de nos politiques d'infrastructure. Ouvrez ensuite la configuration de Salt minion avec les privilègessudo:

sudo nano /etc/salt/minion

Le seul changement que nous devons faire est de spécifier le maître auquel ce serviteur doit se connecter. Dans ce cas, le séide doit se connecter au processus maître exécuté sur le même ordinateur. Définissez la clémaster égale à l'adresse de bouclage locale127.0.0.1 afin que le serviteur se connecte correctement:

/etc/salt/minion

master: 127.0.0.1

Enregistrez et fermez le fichier lorsque vous avez terminé.

Redémarrer les processus

Maintenant, nous devons redémarrer les démons Salt Master et Minion pour pouvoir utiliser nos nouvelles configurations:

sudo restart salt-master
sudo restart salt-minion

Les deux démons vont redémarrer, en tenant compte des modifications de configuration que nous avons décrites.

Accepter la clé de sbire

Après le redémarrage, le démon Salt Minion a automatiquement contacté le maître Salt avec ses informations d'identification. En tant qu’administrateur, il vous suffit de vérifier et d’accepter la clé du séide pour permettre la communication.

Commencez par énumérer toutes les clés que le maître de sel connaît:

sudo salt-key --list all

Vous devriez voir quelque chose comme ça. Lessaltmaster ci-dessous doivent correspondre à l'identifiant Salt minion de votre système. C'est typiquement le nom d'hôte de votre serveur:

OutputAccepted Keys:
Denied Keys:
Unaccepted Keys:
saltmaster
Rejected Keys:

Comme vous pouvez le constater, notre séide a envoyé sa clé au maître, mais elle n’a pas encore été acceptée. Pour des raisons de sécurité, avant d'accepter la clé, nous allons exécuter deux commandes.

Nous devons nous assurer que le résultat de cette opération (qui nous indique l'empreinte de la clé générée par le séide du sel):

sudo salt-call key.finger --local
Outputlocal:
    24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

Correspond à l’empreinte trouvée ici (l’empreinte de la clé que le maître de sel doit accepter). Remplacez l'ID de sbire ici:

sudo salt-key -f saltmaster
OutputUnaccepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

Une fois que vous avez vérifié que ces valeurs sont identiques, vous pouvez accepter la clé en tapant:

sudo salt-key -a saltmaster

Après avoir accepté la clé, vous pouvez voir que la clé a été déplacée dans la section «Clés acceptées»:

sudo salt-key --list all
OutputAccepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
Rejected Keys:

Maintenant, vous pouvez vérifier que les processus maître et maître de sel communiquent correctement en tapant:

sudo salt '*' test.ping

Vous devriez recevoir un message indiquant que la vérification de l'état de santé a réussi:

Outputsaltmaster:
    True

Votre serveur maître Salt est maintenant configuré. Nous pouvons maintenant montrer comment installer un serveur supplémentaire de minion Salt.

Installer un séide séparé

Maintenant que notre serveur principal Salt est opérationnel, nous pouvons vous montrer comment amener un nouveau serveur sous le contrôle de Salt en tant que serviteur.

Encore une fois, nous avons plusieurs façons d'installer les logiciels nécessaires, maisyou should match the method used for the master server. Cela garantira que vous n’avez pas d’incompatibilité de version entre Salt master et minion. Les sbires qui sont plus à jour que leur serveur maître peuvent avoir un comportement imprévisible.

Lorsque vous êtes prêt, connectez-vous à votre deuxième serveur avec votre utilisateursudo.

Installer le Stable Master de l'APP officiel

Si vous avez installé votre serveur maître Salt à partir du PPA SaltStack, vous pouvez ajouter le même PPA sur votre serveur minion Ubuntu:

sudo add-apt-repository ppa:saltstack/salt

Cette fois, il suffit d'installer l'exécutablesalt-minion. Mettez à jour votre index de paquet local après avoir ajouté le PPA et installez le logiciel en tapant:

sudo apt-get update
sudo apt-get install salt-minion

Votre séide sel devrait maintenant être installé. Passez à la section surconfiguring your minion.

Installer la version stable en utilisant Salt-Bootstrap

Si vous avez installé la version stable à l'aide desalt-bootstrap, vous pouvez télécharger le même script sur votre machine minion:

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

Nous appellerons le script presque de la même manière que sur le maître de sel. La seule différence est que nous omettons l'indicateur-M, car nous n'avons pas besoin d'installer les outils principaux et les démons:

sudo sh install_salt.sh -P

Votre séide sel devrait maintenant être installé. Passez à la section surconfiguring your minion.

Installer la version de développement en utilisant Salt-Bootstrap

Si vous avez installé la version de développement actuelle sur Salt Master à l'aide desalt-bootstrap, vous pouvez installer le processus compagnon minion en utilisant le même script. Téléchargez-le sur votre séide en tapant:

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

La commande dont nous avons besoin pour installer le séide est presque identique à celle utilisée sur le maître. La seule différence est que nous omettons l'indicateur-M pour indiquer que nous n'avons pas besoin des outils et du démon Salt Master:

sudo sh install_salt.sh -P git develop

Lorsque vous avez terminé, continuez de configurer votre instance de séide.

Configurez le Minion

Maintenant que le sbire est installé, nous pouvons le configurer pour qu'il communique avec notre maître de sel.

Obtenez l'empreinte digitale de la clé publique Salt Master

Avant de commencer, nous devrions saisir l’empreinte digitale de la clé Salt Master. Nous pouvons ajouter cela à notre configuration de sbire pour une sécurité accrue.

Sur votre serveur maître Salt, tapez:

sudo salt-key -F master

La sortie devrait ressembler à ceci:

OutputLocal Keys:
master.pem:  12:db:25:3d:7f:00:a3:ed:20:55:94:ca:18:f8:67:97
master.pub:  7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92
Accepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

La valeur de la clémaster.pub, située sous la section «Local Keys» est l'empreinte digitale que nous recherchons. Copiez cette valeur à utiliser dans notre configuration Minion.

Modifier la configuration de Minion

De retour sur votre nouveau Salt minion, ouvrez le fichier de configuration du minion avec les privilègessudo:

sudo nano /etc/salt/minion

Nous devons spécifier l'emplacement où le maître de sel peut être trouvé. Cela peut être un nom de domaine DNS pouvant être résolu ou une adresse IP:

/etc/salt/minion

master: ip_of_salt_master

Ensuite, définissez l'optionmaster_finger sur la valeur d'empreinte digitale que vous avez copiée depuis le maître Salt il y a un instant:

/etc/salt/minion

master_finger: '7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92'

Enregistrez et fermez le fichier lorsque vous avez terminé.

Maintenant, redémarrez le démon Salt Minion pour implémenter vos nouvelles modifications de configuration:

sudo restart salt-minion

Le nouveau séide doit contacter le service des salines à l’adresse indiquée. Il enverra ensuite sa clé à accepter par le maître. Afin de vérifier la clé en toute sécurité, vous devez vérifier l'empreinte digitale de la clé sur le nouveau serveur minion.

Pour ce faire, tapez:

sudo salt-call key.finger --local

Vous devriez voir une sortie qui ressemble à ceci:

Outputlocal:
    32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

Vous devrez vérifier que l'empreinte digitale de clé reçue par le serveur maître correspond à cette valeur.

Accepter la clé du séide sur le maître-sel

De retour sur votre serveur maître Salt, nous devons accepter la clé.

Tout d’abord, vérifiez qu’une clé non acceptée attend sur le maître:

sudo salt-key --list all

Vous devriez voir une nouvelle clé dans la section «Clés non acceptées» associée à votre nouveau séide:

OutputAccepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:

Vérifiez l'empreinte de la nouvelle clé. Modifiez la partie en surbrillance ci-dessous avec l'ID de séide que vous voyez dans la section «Clés non acceptées»:

sudo salt-key -f saltminion

La sortie devrait ressembler à ceci:

OutputUnaccepted Keys:
saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

Si cela correspond à la valeur que vous avez reçue du serviteur lors de l'exécution de la commandesalt-call, vous pouvez accepter la clé en toute sécurité en tapant:

sudo salt-key -a saltminion

La clé doit maintenant être ajoutée à la section «Clés acceptées»:

sudo salt-key --list all
OutputAccepted Keys:
saltmaster
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:

Vérifiez que vous pouvez envoyer des commandes à votre nouveau serviteur en tapant:

sudo salt '*' test.ping

Vous devriez recevoir des réponses des deux démons minion que vous avez configurés:

Outputsaltminion:
    True
saltmaster:
    True

Conclusion

Vous devriez maintenant avoir un serveur maître Salt configuré pour contrôler votre infrastructure. Nous avons également abordé le processus de configuration d’un nouveau serveur minion. Vous pouvez suivre cette même procédure pour des serviteurs supplémentaires. Ce sont les compétences de base dont vous avez besoin pour configurer une nouvelle infrastructure pour la gestion des sels.