L’objectif de cet atelier était de déployer une infrastructure de génération d’images fresh install avec l’outil SaltStack.
Le travail a été divisé en 3 sous-ateliers :
- Générer une image master depuis l’ISO EOLE ;
- Générer une image EOLE depuis une Ubuntu cloud ;
- Déployer et configurer une image master existante.
Voici le compte rendu du deuxième sous-atelier.
Générer une image EOLE depuis une Ubuntu cloud
Exploration de l’automatisation de création d’images disque pour machine virtuelles
Le but est de fournir une image d’Eolebase à partir d’une image ubuntu-cloud. Le processus doit être automatique via Salt.
Processus suivi
- Contextualiser l’image de base avec la clef SSH du serveur Salt ;
- Paramétrer Salt Master ;
- Déployer une image ubuntu-cloud ;
- Installer le paquet eole-server ;
- Enregistrer l’image de la machine virtuelle.
Contextualiser l’image de base avec la clef SSH du serveur Salt
Dans les paramètres du template OpenNebula de l’image ubuntu-cloud que l’on va utiliser, il faut enregistrer la clef publique SSH associée à la clef privée utilisée dans le configuration du “cloud-provider” (cf section suivante).
Paramétrer Salt-Master
Création des fichiers de configuration nécessaires :
- /etc/salt/cloud.providers.d/nebula.conf
# Note: This example is for /etc/salt/cloud.providers or any file in the
# /etc/salt/cloud.providers.d/ directory.
nebula:
# Set up the location of the salt master
#
minion:
master: 192.168.2.53
# Define xml_rpc setting which Salt-Cloud uses to connect to the OpenNebula API. Required.
#
xml_rpc: http://192.168.2.13:2633/RPC2
# Define the OpenNebula access credentials. This can be the main "oneadmin" user that OpenNebula uses as the
# OpenNebula main admin, or it can be a user defined in the OpenNebula instance. Required.
#
#user: oneadmin
#password: peadeatLabs6
user: joe
password: nebula2016
# Define the private key location that is used by OpenNebula to access new VMs. This setting is required if
# provisioning new VMs or accessing VMs previously created with the associated public key.
#
private_key: /root/joe.rsa
driver: opennebula
- /etc/salt/cloud.profiles.d/nebula.conf
eolebase:
provider: nebula
template: ubuntu-16.04-server-amd64.context
image: ubuntu-16.04-server-amd64.context-disk-0
minion:
startup_states: sls
sls_list:
- eolebase
Installer le paquet eole-server
Création d’une règle Salt pour installer le paquet eole-server sur la machine déployée
Dans le dossier /srv/salt/
- Créer un fichier top.sls avec ce contenu:
base: eole: - eolebase - Créer un fichier /srv/salt/eolebase.sls avec le contenu suivant:
eole-repo: pkgrepo.managed: - humanname: Eole - name: deb http://eole.ac-dijon.fr/eole eole-2.6.0 main cloud - dist: eole-2.6.0 - file: /etc/apt/sources.list.d/eole.list - require_in: - pkg: eole-server - gpgcheck: 1 - key_url: http://eole.ac-dijon.fr/eole/project/eole-2.6-repository.key /etc/salt/cloud.providers.d/nebula.conf: file.managed: - source: salt://cloud/cloud.providers.d/nebula.conf - target: /etc/salt/cloud.providers.d/nebula.conf - makedirs: True eole-server: pkg: - installed
Application de cette règle automatiquement après le déploiement
Créer le répertoire /etc/salt/cloud.maps.d/ et dans ce répertoire, créer un fichier do-eolebase.map avec le contenu suivant:
eolebase:
- BuildEolebase:
minion:
startup_states: eolebase
grains:
roles: eolebase
Tester la création d’Eolebase via Salt
root@deployement$>salt-cloud -m /etc/salt/cloud.maps.d/do-eolebase.map -l all
L’option -l all permet d’avoir tous les messages de débogage pendant le processus de déploiement et les résultats attendus sont :
- L’image doit pouvoir se déployer sans problème ;
- Salt doit s’installer sur le machine déployée ;
- eole-server doit s’installer depuis les dépôts Eole.
Enregistrer l’image de la machine virtuelle
Faute de temps nous n’avons pas testé l’enregistrement de l’image de la machine virtuelle.

