Projet

Général

Profil

Installation Gateway dans nebula » Historique » Version 13

Version 12 (Gilles Grandgérard, 21/05/2014 18:05) → Version 13/97 (Gilles Grandgérard, 21/05/2014 18:08)

h1. Avant Propos

h2. OpenNebula et Eole-Ci-Tests

h3. Ajouter le partage 'eole-ci-tests' sur une VM

Si vous avez besoin de monter 'eole-ci-tests' sur une VM, il faut ajouter une ligne RAW dans la configuration du modèle :
<pre>
RAW=[TYPE="kvm",DATA="<devices><filesystem type='mount' accessmode='squash'><source dir='/var/lib/one/datastores/eole-ci'/><target dir='eole-ci'/></filesystem></devices>" ]
</pre>

Une fois la machine instanciée, pour monter le partage il faut executer :
<pre>
mkdir /mnt/eole-ci-tests
mount -t 9p -o trans=virtio eole-ci /mnt/eole-ci-tests -oversion=9p2000.L
</pre>

Pour installer le service 'eole-ci-tests', executer
<pre>
/mnt/eole-ci-tests/scripts/postinstall/postinstall.sh <vm_nebula_id>
</pre>

Attention: La mise à jour du git 'eole-ci-tests' est faite toutes les 15 minutes par Jenkins. Lors de ce process, tous les fichiers sont ECRASES

h3. Exemple de propriété d'une VM dans Nebula

* Exemple de template utilisé dans Nebula pour la machine Amon de l'établissement Etb2 pour l'utilisateur Ggg
La selection de l'image (version et architecture) est automatisé. Le UNAME est selectionné automatiquement
L'architecture réseau les switchs générés d'après le modele
Le context est généré
<pre>
NAME = "ggg.etb2.amon"
CPU = "0.05"
MEMORY = "512"
VCPU = "1"
FEATURES = [ acpi="yes", pae="no" ]
GRAPHICS = [ KEYMAP="fr", LISTEN="0.0.0.0", TYPE="vnc" ]
INPUT = [ BUS="usb", TYPE="tablet" ]
RAW = [ TYPE="kvm", DATA="<devices><filesystem type='mount' accessmode='squash'><source dir='/var/lib/one/datastores/eole-ci'/><target dir='eole-ci'/></filesystem></devices>" ]
DISK = [ DRIVER="qcow2", IMAGE="amon-2.4-daily-amd64.fi", IMAGE_UNAME="gilles" ]
OS = [ ARCH="x86_64", BOOT="hd" ]
NIC = [ MODEL="virtio", NETWORK="SW-ggg-academie", NETWORK_UNAME="gilles" ]
NIC = [ MODEL="virtio", NETWORK="SW-ggg-admin2", NETWORK_UNAME="gilles" ]
NIC = [ MODEL="virtio", NETWORK="SW-ggg-pedago2", NETWORK_UNAME="gilles" ]
NIC = [ MODEL="virtio", NETWORK="SW-ggg-dmz2", NETWORK_UNAME="gilles" ]
CONTEXT = [ VM_ID="$VMID", VM_HOSTNAME="amon", VM_MACHINE="etb2.amon", VM_TEMPLATE="ggg.etb2.amon", VM_USER="ggg" ]
</pre>

h2. Le modele de réseau

h3. Modèle de réseau de test pour les VM Nebula

!ModeleReseauTestEole.png!

h2. Les fichiers de configuration

* ModulesConf.yaml

Ce fichier décrit globalement les modules Eole.
Il est utilisé pour :
* générer les context de chaque modele de VM
* générer les fresh install eole ( <module>-<version>-<architecure>.fi dans nebula )
* générer les daily ( <module>-<versionMajer>-daily-<architecure>.fi dans nebula )

<pre><code class="yaml"> <pre>
eoleVersions: # liste des numéros de version géré dans l'env de test
- 2.3.13-rc1
- 2.4.0

gateways: # liste des gateways par utilisateur Nebula
- user: gilles # le nom de l'utilisateur Nebula
prefixe: ggg # le prefixe a utilisé pour les templates, switchs, et vm
ipsweole: 82 # l'adresse ip sur le réseau sw-eole

modules: # La liste des modules connus
- module: base # le nom du module dans les modeles
memoire: 1024 # permet de définir la mémoire requise pour ce module
versions: # la liste des versions de ce module
- versionMajeur: 2.3 # dans la version 2.3..
menu: 1 # ... le module est en position 1 sur le menu d'installation
actif: oui # indique que le module est déactivé dans les tests
container: non # permet d'indiquer aux tests qu'il faut faire l'installation des conteneurs ou non
- versionMajeur: 2.4 ...
menu: 1
...
</code></pre> </pre>

* ModeleReseautestEole.yaml

Attention: Les gateway de chaque réseau est toujours l'ip .1 de chaque réseau
Il est utilisé pour :
* générer les context de chaque modele de VM
* générer les templates de chaque machine
* démarrer les VM lors des tests en Itégration Continue

<pre><code class="yaml"> <pre>
bases:
- base: eole23 # nom de la base utiliser dans la description d'une machine (cf ci dessous )
versionMajeur: 2.3 # quel est la version majeur a utiliser. La version mineur sera déduite du fichier ModulesConf.yaml
- base: winpcadmin
imageNebula: windows-xp-sp3.vm # si imageNebula est presente, alors la base n'est pas EOLE ==> windows ou autre
architecture: amd64 # dans ce cas, l'architecture doit être définie
....

switchs: # c'est la liste des switchs nécessaire à ce modele
- sw: academie # c'est l'id du switch . dans Nebula, il correspond à "SW-<pefixe>-academie"
network: 192.168.0 # c'est le réseau associé à ce switch
...

networks: # ce tag est la racine de description de tous les établissements
- etablissement: aca # ce tag correspond à un etablissement dont le nom est 'aca'. Toutes les machines définies sous l'établissement seront
# préfixées par <prefixe_user>.<etablissement>
machines: # c'est la liste des machines

- machine: eolebase # chaque machine a : un nom (eolebase).
# le template de cette machine sera <prefixe_user>.<etablissement>.<machine> (ggg.aca.eolebase)
# le nom dns sera : <machine>.<etablissement>@ac-test.fr pour les etablissement et
# <machine>@ac-test.fr pour les machines en académie
# Ce nom est important car il va définir un template dans les configurations enregistrées dans eole-ci-test
module: base # c'est le nom du module (cf ModulesConf.yaml). La valeur est obligatoire pour les modules Eole
base: eole24 # identifie l'image de base à utiliser eole23, eole24, win...
switchs: # ce tag décris les liens de la machine
- sw: academie # le nom du switch
host: 24 # l'ip sur ce switch
...

- machine: sphynx24a
module: sphynx
base: eole24
switchs: # exemple avec plusieurs switchs
- sw: academie
host: 11
- sw: agriates
host: 11
- sw: ha1
host: 11
...

- machine: pcadmin # exemple pour un poste client
base: winpcadmin
switchs:
- sw: admin1
host: 20
...
</code></pre> </pre>

* test.yaml

todo

h1. Installation

h2. Récupération du dépot eole-ci-test

Faire :
<pre>
ssh://git@dev-eole.ac-dijon.fr/eole-ci-tests.git
</pre>

h2. Ajout de la gateway dans le fichier ModulesConf.yaml

il faut créer une entré dans "gateways" de la forme
<pre>
- user: gilles
prefixe: ggg
ipsweole: 82
</pre>

* Le prefixe sera ajouter à tous les templates, et à toutes les VM démarrées.
Les switchs auront la forme SW-<prefixe>-<switch_dans_modele>
* ipsweole est l'ip a utilisr dans 192.168.230 comme gateway vers le réseau

h2. Ajout de la clef publique ssh dans eole-ci-tests/security/authorized_keys

Les clefs publiques SSH preentent dans eole-ci-tests/security/authorized_keys sont automatiquement concatenées dans /root/.ssh/authorized_keys au 1er démarrage de la VM.
L'acces a chaque VM peut se faire sans mot de passe.

Utiliser le nom 'user@hostname' pour votre fichier de cle.

h1. Creation d'un test

todo

h1. Lancement dans jenkins

h2. Mise à jour de "eole-ci-tests" sur toutes les VM

todo

h2.