Projet

Général

Profil

Installation Gateway dans nebula » Historique » Version 16

« Précédent - Version 16/97 (diff) - Suivant » - Version actuelle
Gilles Grandgérard, 02/07/2014 11:19


Avant Propos

OpenNebula et Eole-Ci-Tests

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 :

RAW=[TYPE="kvm",DATA="<devices><filesystem type='mount' accessmode='squash'><source dir='/var/lib/one/datastores/eole-ci'/><target dir='eole-ci'/></filesystem></devices>" ]

Une fois la machine instanciée, pour monter le partage il faut executer :

mkdir /mnt/eole-ci-tests
mount -t 9p -o trans=virtio eole-ci /mnt/eole-ci-tests -oversion=9p2000.L

Pour installer le service 'eole-ci-tests', executer

/mnt/eole-ci-tests/scripts/postinstall/postinstall.sh <vm_nebula_id>

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

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é
    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"  ]
    

Le modele de réseau

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

[[http://dev-eole.ac-dijon.fr/projects/eole-ci-tests/repository/revisions/master/entry/ModeleReseauTestEole.png]]

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 )
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

  • 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
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
                                        #....
  • test.yaml

todo

Installation

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

Faire :

ssh://git@dev-eole.ac-dijon.fr/eole-ci-tests.git

Ajout de la gateway dans le fichier ModulesConf.yaml

il faut créer une entré dans "gateways" de la forme

  - user: gilles
    prefixe: ggg
    ipsweole: 82

  • 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

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.

Creation d'un test

todo

Lancement dans jenkins

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

todo

h2.