Projet

Général

Profil

Installation Gateway dans nebula » Historique » Version 16

Gilles Grandgérard, 02/07/2014 11:19

1 1 Gilles Grandgérard
h1. Avant Propos
2 1 Gilles Grandgérard
3 1 Gilles Grandgérard
4 10 Gilles Grandgérard
h2. OpenNebula et Eole-Ci-Tests
5 1 Gilles Grandgérard
6 9 Gilles Grandgérard
h3. Ajouter le partage 'eole-ci-tests' sur une VM
7 9 Gilles Grandgérard
8 9 Gilles Grandgérard
Si vous avez besoin de monter 'eole-ci-tests' sur une VM, il faut ajouter une ligne RAW dans la configuration du modèle :
9 9 Gilles Grandgérard
<pre>
10 9 Gilles Grandgérard
RAW=[TYPE="kvm",DATA="<devices><filesystem type='mount' accessmode='squash'><source dir='/var/lib/one/datastores/eole-ci'/><target dir='eole-ci'/></filesystem></devices>" ]
11 9 Gilles Grandgérard
</pre>
12 9 Gilles Grandgérard
13 9 Gilles Grandgérard
Une fois la machine instanciée, pour monter le partage il faut executer :
14 9 Gilles Grandgérard
<pre>
15 9 Gilles Grandgérard
mkdir /mnt/eole-ci-tests
16 9 Gilles Grandgérard
mount -t 9p -o trans=virtio eole-ci /mnt/eole-ci-tests -oversion=9p2000.L
17 1 Gilles Grandgérard
</pre>
18 1 Gilles Grandgérard
19 11 Gilles Grandgérard
Pour installer le service 'eole-ci-tests', executer
20 11 Gilles Grandgérard
<pre>
21 11 Gilles Grandgérard
/mnt/eole-ci-tests/scripts/postinstall/postinstall.sh <vm_nebula_id>
22 11 Gilles Grandgérard
</pre>
23 1 Gilles Grandgérard
24 11 Gilles Grandgérard
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
25 11 Gilles Grandgérard
26 10 Gilles Grandgérard
h3. Exemple de propriété d'une VM dans Nebula
27 1 Gilles Grandgérard
28 1 Gilles Grandgérard
* Exemple de template utilisé dans Nebula pour la machine Amon de l'établissement Etb2 pour l'utilisateur Ggg
29 1 Gilles Grandgérard
  La selection de l'image (version et architecture) est automatisé. Le UNAME est selectionné automatiquement
30 1 Gilles Grandgérard
  L'architecture réseau les switchs générés d'après le modele
31 10 Gilles Grandgérard
  Le context est généré
32 10 Gilles Grandgérard
<pre>
33 11 Gilles Grandgérard
NAME = "ggg.etb2.amon"
34 11 Gilles Grandgérard
CPU = "0.05"
35 11 Gilles Grandgérard
MEMORY = "512"
36 11 Gilles Grandgérard
VCPU = "1"
37 11 Gilles Grandgérard
FEATURES = [ acpi="yes", pae="no"  ]
38 11 Gilles Grandgérard
GRAPHICS = [ KEYMAP="fr", LISTEN="0.0.0.0", TYPE="vnc"  ]
39 11 Gilles Grandgérard
INPUT = [ BUS="usb", TYPE="tablet"  ]
40 11 Gilles Grandgérard
RAW = [ TYPE="kvm", DATA="<devices><filesystem type='mount' accessmode='squash'><source dir='/var/lib/one/datastores/eole-ci'/><target dir='eole-ci'/></filesystem></devices>" ]
41 11 Gilles Grandgérard
DISK = [ DRIVER="qcow2", IMAGE="amon-2.4-daily-amd64.fi", IMAGE_UNAME="gilles" ]
42 11 Gilles Grandgérard
OS = [ ARCH="x86_64", BOOT="hd"  ]
43 11 Gilles Grandgérard
NIC = [ MODEL="virtio", NETWORK="SW-ggg-academie", NETWORK_UNAME="gilles"  ]
44 11 Gilles Grandgérard
NIC = [ MODEL="virtio", NETWORK="SW-ggg-admin2", NETWORK_UNAME="gilles"  ]
45 11 Gilles Grandgérard
NIC = [ MODEL="virtio", NETWORK="SW-ggg-pedago2", NETWORK_UNAME="gilles"  ]
46 11 Gilles Grandgérard
NIC = [ MODEL="virtio", NETWORK="SW-ggg-dmz2", NETWORK_UNAME="gilles"  ]
47 11 Gilles Grandgérard
CONTEXT = [ VM_ID="$VMID", VM_HOSTNAME="amon", VM_MACHINE="etb2.amon", VM_TEMPLATE="ggg.etb2.amon", VM_USER="ggg"  ]
48 10 Gilles Grandgérard
</pre>
49 10 Gilles Grandgérard
50 10 Gilles Grandgérard
h2. Le modele de réseau
51 10 Gilles Grandgérard
52 10 Gilles Grandgérard
53 9 Gilles Grandgérard
54 9 Gilles Grandgérard
h3. Modèle de réseau de test pour les VM Nebula
55 9 Gilles Grandgérard
56 16 Gilles Grandgérard
[[http://dev-eole.ac-dijon.fr/projects/eole-ci-tests/repository/revisions/master/entry/ModeleReseauTestEole.png]]
57 15 Gilles Grandgérard
58 12 Gilles Grandgérard
!ModeleReseauTestEole.png!
59 9 Gilles Grandgérard
60 9 Gilles Grandgérard
61 9 Gilles Grandgérard
62 1 Gilles Grandgérard
h2. Les fichiers de configuration
63 1 Gilles Grandgérard
64 2 Gilles Grandgérard
* ModulesConf.yaml
65 1 Gilles Grandgérard
66 7 Gilles Grandgérard
Ce fichier décrit globalement les modules Eole.
67 7 Gilles Grandgérard
Il est utilisé pour :
68 7 Gilles Grandgérard
* générer les context de chaque modele de VM
69 7 Gilles Grandgérard
* générer les fresh install eole ( <module>-<version>-<architecure>.fi dans nebula )
70 7 Gilles Grandgérard
* générer les daily ( <module>-<versionMajer>-daily-<architecure>.fi dans nebula )
71 7 Gilles Grandgérard
72 13 Gilles Grandgérard
<pre><code class="yaml">
73 8 Gilles Grandgérard
eoleVersions:                           # liste des numéros de version géré dans l'env de test
74 5 Gilles Grandgérard
- 2.3.13-rc1
75 5 Gilles Grandgérard
- 2.4.0
76 1 Gilles Grandgérard
77 8 Gilles Grandgérard
gateways:                               # liste des gateways par utilisateur Nebula
78 8 Gilles Grandgérard
  - user: gilles                        # le nom de l'utilisateur Nebula 
79 8 Gilles Grandgérard
    prefixe: ggg                        # le prefixe a utilisé pour les templates, switchs, et vm
80 8 Gilles Grandgérard
    ipsweole: 82                        # l'adresse ip sur le réseau sw-eole
81 5 Gilles Grandgérard
    
82 8 Gilles Grandgérard
modules:                                # La liste des modules connus
83 8 Gilles Grandgérard
  - module: base                        # le nom du module dans les modeles
84 8 Gilles Grandgérard
    memoire: 1024                       # permet de définir la mémoire requise pour ce module
85 8 Gilles Grandgérard
    versions:                           # la liste des versions de ce module
86 8 Gilles Grandgérard
    - versionMajeur: 2.3                # dans la version 2.3..
87 8 Gilles Grandgérard
      menu: 1                           # ... le module est en position 1 sur le menu d'installation 
88 8 Gilles Grandgérard
      actif: oui                        # indique que le module est déactivé dans les tests
89 8 Gilles Grandgérard
      container: non                    # permet d'indiquer aux tests qu'il faut faire l'installation des conteneurs ou non
90 6 Gilles Grandgérard
    - versionMajeur: 2.4    ...
91 6 Gilles Grandgérard
      menu: 1
92 14 Gilles Grandgérard
93 13 Gilles Grandgérard
</code></pre>
94 5 Gilles Grandgérard
95 5 Gilles Grandgérard
* ModeleReseautestEole.yaml
96 1 Gilles Grandgérard
97 1 Gilles Grandgérard
Attention: Les gateway de chaque réseau est toujours l'ip .1 de chaque réseau
98 9 Gilles Grandgérard
Il est utilisé pour :
99 9 Gilles Grandgérard
* générer les context de chaque modele de VM
100 9 Gilles Grandgérard
* générer les templates de chaque machine
101 9 Gilles Grandgérard
* démarrer les VM lors des tests en Itégration Continue
102 8 Gilles Grandgérard
103 13 Gilles Grandgérard
<pre><code class="yaml">
104 7 Gilles Grandgérard
bases:                                  
105 7 Gilles Grandgérard
  - base: eole23                        # nom de la base utiliser dans la description d'une machine (cf ci dessous )
106 7 Gilles Grandgérard
    versionMajeur: 2.3                  # quel est la version majeur a utiliser. La version mineur sera déduite du fichier ModulesConf.yaml
107 7 Gilles Grandgérard
  - base: winpcadmin
108 7 Gilles Grandgérard
    imageNebula: windows-xp-sp3.vm      # si imageNebula est presente, alors la base n'est pas EOLE ==> windows ou autre
109 7 Gilles Grandgérard
    architecture: amd64                 # dans ce cas, l'architecture doit être définie 
110 14 Gilles Grandgérard
                                        #....
111 7 Gilles Grandgérard
112 7 Gilles Grandgérard
switchs:                                # c'est la liste des switchs nécessaire à ce modele
113 7 Gilles Grandgérard
  - sw: academie                        # c'est l'id du switch . dans Nebula, il correspond à "SW-<pefixe>-academie"
114 1 Gilles Grandgérard
    network: 192.168.0                  # c'est le réseau associé à ce switch
115 14 Gilles Grandgérard
                                        #....
116 7 Gilles Grandgérard
117 7 Gilles Grandgérard
networks:                               # ce tag est la racine de description de tous les établissements 
118 7 Gilles Grandgérard
  - etablissement: aca                  # ce tag correspond à un etablissement dont le nom est 'aca'. Toutes les machines définies sous l'établissement seront 
119 1 Gilles Grandgérard
                                        # préfixées par <prefixe_user>.<etablissement>
120 7 Gilles Grandgérard
    machines:                           # c'est la liste des machines
121 7 Gilles Grandgérard
    - machine: eolebase                 # chaque machine a : un nom (eolebase). 
122 7 Gilles Grandgérard
                                        # le template de cette machine sera <prefixe_user>.<etablissement>.<machine> (ggg.aca.eolebase) 
123 7 Gilles Grandgérard
                                        # le nom dns sera : <machine>.<etablissement>@ac-test.fr pour les etablissement et
124 7 Gilles Grandgérard
                                        #                   <machine>@ac-test.fr pour les machines en académie
125 7 Gilles Grandgérard
                                        # Ce nom est important car il va définir un template dans les configurations enregistrées dans eole-ci-test
126 8 Gilles Grandgérard
      module: base                      # c'est le nom du module (cf ModulesConf.yaml). La valeur est obligatoire pour les modules Eole
127 1 Gilles Grandgérard
      base: eole24                      # identifie l'image de base à utiliser eole23, eole24, win...
128 8 Gilles Grandgérard
      switchs:                          # ce tag décris les liens de la machine
129 8 Gilles Grandgérard
      - sw: academie                    # le nom du switch 
130 8 Gilles Grandgérard
        host: 24                        # l'ip sur ce switch
131 14 Gilles Grandgérard
                                        #....
132 7 Gilles Grandgérard
    - machine: sphynx24a
133 7 Gilles Grandgérard
      module: sphynx
134 7 Gilles Grandgérard
      base: eole24
135 8 Gilles Grandgérard
      switchs:                          # exemple avec plusieurs switchs
136 1 Gilles Grandgérard
      - sw: academie
137 7 Gilles Grandgérard
        host: 11
138 7 Gilles Grandgérard
      - sw: agriates
139 7 Gilles Grandgérard
        host: 11
140 1 Gilles Grandgérard
      - sw: ha1
141 7 Gilles Grandgérard
        host: 11
142 14 Gilles Grandgérard
                                        #....
143 8 Gilles Grandgérard
    - machine: pcadmin                  # exemple pour un poste client
144 7 Gilles Grandgérard
      base: winpcadmin
145 7 Gilles Grandgérard
      switchs:
146 7 Gilles Grandgérard
      - sw: admin1
147 7 Gilles Grandgérard
        host: 20
148 14 Gilles Grandgérard
                                        #....
149 13 Gilles Grandgérard
</code></pre>
150 1 Gilles Grandgérard
151 1 Gilles Grandgérard
* test.yaml
152 3 Gilles Grandgérard
153 3 Gilles Grandgérard
todo
154 1 Gilles Grandgérard
155 1 Gilles Grandgérard
h1. Installation
156 1 Gilles Grandgérard
157 5 Gilles Grandgérard
158 3 Gilles Grandgérard
159 1 Gilles Grandgérard
h2. Récupération du dépot eole-ci-test
160 1 Gilles Grandgérard
161 4 Gilles Grandgérard
Faire :
162 4 Gilles Grandgérard
<pre>
163 4 Gilles Grandgérard
ssh://git@dev-eole.ac-dijon.fr/eole-ci-tests.git
164 4 Gilles Grandgérard
</pre>
165 1 Gilles Grandgérard
166 3 Gilles Grandgérard
h2. Ajout de la gateway dans le fichier ModulesConf.yaml 
167 3 Gilles Grandgérard
168 3 Gilles Grandgérard
il faut créer une entré dans "gateways" de la forme 
169 3 Gilles Grandgérard
<pre>
170 3 Gilles Grandgérard
  - user: gilles
171 3 Gilles Grandgérard
    prefixe: ggg
172 3 Gilles Grandgérard
    ipsweole: 82
173 3 Gilles Grandgérard
</pre>
174 3 Gilles Grandgérard
175 3 Gilles Grandgérard
* Le prefixe sera ajouter à tous les templates, et à toutes les VM démarrées.
176 3 Gilles Grandgérard
  Les switchs auront la forme SW-<prefixe>-<switch_dans_modele>
177 1 Gilles Grandgérard
* ipsweole est l'ip a utilisr dans 192.168.230 comme gateway vers le réseau
178 1 Gilles Grandgérard
179 4 Gilles Grandgérard
h2. Ajout de la clef publique ssh dans eole-ci-tests/security/authorized_keys
180 1 Gilles Grandgérard
181 4 Gilles Grandgérard
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.
182 4 Gilles Grandgérard
L'acces a chaque VM peut se faire sans mot de passe.
183 4 Gilles Grandgérard
184 4 Gilles Grandgérard
Utiliser le nom 'user@hostname' pour votre fichier de cle.
185 3 Gilles Grandgérard
186 1 Gilles Grandgérard
h1. Creation d'un test
187 1 Gilles Grandgérard
188 3 Gilles Grandgérard
todo
189 3 Gilles Grandgérard
190 1 Gilles Grandgérard
h1. Lancement dans jenkins
191 3 Gilles Grandgérard
192 3 Gilles Grandgérard
h2. Mise à jour de "eole-ci-tests" sur toutes les VM
193 3 Gilles Grandgérard
194 3 Gilles Grandgérard
todo
195 1 Gilles Grandgérard
196 1 Gilles Grandgérard
h2.