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
- Parametrer Salt-Master
- Deployer une image ubuntu-cloud
- Installer le paquet eole-server
- Enregistrer l'image de la vm
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é à la clef privée utilisée dans le configuration du "cloud-provider" (cf section suivante)
Création des fichiers de configurations necessaires:
# 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
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
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
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
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 debug pendant le processus de déploiement.
Nous n'avons pas été jusqu'à cette étape.