Mise en place de Salt
Salt est un environnement de déploiement, de configuration et d'administration opensource et développé en langage Python. Cet outil repose sur la description d'actions à réaliser ou vérifier afin de faire évoluer une plateforme d'un état vers un autre. Il peut s'utiliser avec ou sans agent pré-installé.
Le déploiement est réalisé en deux étapes:
- sans agent, pour la mise en place de l'infrastructure Salt;
- avec agent, pour tout le reste.
Configuration de la machine maître
À partir d'une machine qui fera office de système maître pour Salt:
-
configuration du dépôt salt sur cette machine maître. En effet, les paquets actuellement présents dans Debian Jessie sont très anciens. Une installation à partir de SaltStack est conseillée (détails sur l'installation).
# wget -O - https://repo.saltstack.com/apt/debian/8/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add - # echo "deb http://repo.saltstack.com/apt/debian/8/amd64/latest jessie main" > /etc/apt/sources.list.d/saltstack.list # apt-get update
-
installation des paquets salt:
# apt-get install salt-master salt-ssh
-
configuration d'un environnement salt
-
définition de l'environnement: création du fichier /etc/salt/master.d/default.conf
# cat <<EOF > /etc/salt/master.d/default.conf file_roots: base: - /srv/salt/states pillar_roots: base: - /srv/salt/pillars ext_pillar: - file_tree: root_dir: /srv/salt/ext_pillars follow_dir_links: True keep_newline: True EOF
-
création du fichier de l'ensemble des cibles:
# cat <<EOF > /tmp/salt-ssh-roster ctrl-1: host: 192.168.122.11 user: root ctrl-2: host: 192.168.122.12 user: root ctrl-3: host: 192.168.122.13 user: root EOF
-
vérification de l'accès SSH sur les machines cibles (avec éventuellement acceptation des clés de machine):
# ssh ctrl-1
-
vérification de l'accès SSH par salt:
# salt '*' --roster-file /tmp/salt-ssh-roster test.ping ctrl-2: True ctrl-1: True ctrl-3: True
-
déploiement des agents salt:
# salt '*' --roster-file /tmp/salt-ssh-roster state.apply saltstack
-
Déploiement des agents
Le déploiement des agents se fait à l'aide d'un fichier de configuration salt. Dans un second temps, les communications entres le maître et ses agents étant authentifiées, il est nécessaire de valider un échange de clé entres les équipements concernés.
-
création du fichier saltstack-bootstrap. Ce fichier permet l'installation de l'agent salt sur la machine visée:
# cat <<EOF > /srv/salt/states/saltstack-bootstrap.sls salt-minion: pkgrepo: - managed - humanname: SaltStack Repo - name: deb http://repo.saltstack.com/apt/debian/8/amd64/latest {{ grains['lsb_distrib_codename'] }} main - dist: {{ grains['lsb_distrib_codename'] }} - key_url: https://repo.saltstack.com/apt/debian/8/amd64/latest/SALTSTACK-GPG-KEY.pub pkg: - latest EOF
-
mise en œuvre de ce fichier sur tous les nœuds cibles:
# salt '*' state.apply saltstack-bootstrap
-
Après quelques secondes pour qu'un premier contact entres les agents et le maître se fasse. On vérifie la disponibilité des minions:
# salt-key Accepted Keys: Denied Keys: Unaccepted Keys: ctrl-1.api.runstack.net ctrl-2.api.runstack.net ctrl-3.api.runstack.net Rejected Keys:
et on valide globalement toutes les clés en attentes (-A) sans confirmation supplémentaire (-y):
# salt-key -A -y The following keys are going to be accepted: Unaccepted Keys: ctrl-1.api.runstack.net ctrl-2.api.runstack.net ctrl-3.api.runstack.net Key for minion ctrl-1.api.runstack.net accepted. Key for minion ctrl-2.api.runstack.net accepted. Key for minion ctrl-3.api.runstack.net accepted.
Vérification de la plateforme
L'installation est validée par le simple test:
# salt '*' test.ping ctrl-3.api.runstack.net: True ctrl-2.api.runstack.net: True ctrl-1.api.runstack.net: True
Automatisation
À l'aide de l'outil osfs, cet état correspond à salt:
# osfs env-build --target salt
Première page / Page précédante / Sommaire / Page suivante / Dernière page