Comment connecter un développeur vers son environnement de test (gateway)¶
http://dev-eole.ac-dijon.fr/projects/eole-ci-tests/wiki/ModeleReseaux
Récupération du dépot eole-ci-tests¶
1 | git clone https://dev-eole.ac-dijon.fr/git/eole-ci-tests.git
|
Ajout de la gateway dans le eole-ci-tests¶
Attention:
- Le <user_nebula> n’est pas obligatoirement le même sur ONE et sur DEMO. Vous aurez peut être à créer un ou deux fichiers !
- Si vous prévoyez d’utiliser les 2 environnements en même temps, utilisez deux IP !
- Attention à ce que l’adresse soit disponible: voir http://dev-eole.ac-dijon.fr/projects/eole-interne/wiki/Adressage_ip
Il faut créer un script dans ‘configuration/gateway/’ dont le nom sera ‘routeur_<user_nebula>.sh’ (Tips: copier un fichier existant !).
Penser à mettre les droits d’exécution.
Définir les Variables suivantes :
1 2 3 4 | IP_ONE=<fin de l'IP de la gateway sur le réseau EOLE pour le ONE>
IP_UTILISATEUR=<ip du poste de travail>
MAIL_UTILISATEUR=<adresse mail du développeur>
IP_GW_UTILISATEUR=<ip de la gateway>
|
NB :
IP_UTILISATEUR est facultative, la variable est utilisée pour envoyer des send-notify au travers du réseau... MAIL_UTILISATEUR est facultative, la variable est utilisée pour pour la redirection postfix sur la gateway. IP_GW_UTILISATEUR est facultative, elle est calculé d’après la valeur IP_ONE... Utiliser cette var si vous avez besoin d’une IP particuliere
Ajout de la clef publique ssh¶
Si vous n’avez pas de clés ssh, créez en une avec la commande ‘ssh-keygen’. Par défault, la clé publique est /home/<user>/.ssh/id_rsa.pub
Les clefs publiques SSH présentes dans eole-ci-tests/security/authorized_keys sont automatiquement concaténées dans /root/.ssh/authorized_keys au 1er démarrage de la VM. L’accès a chaque VM peut se faire sans mot de passe.
Astuce: Utiliser le nom 'user@hostname‘ pour votre fichier de cle.
Commit¶
1 2 3 | git add .
git commit -m "ajout de l'utilisateur <user>"
git push
|
Publication de la clef et du fichier routeur¶
Attendre que les Jenkins publient le commit vers les VM (15 minutes)
OU, faire : * Ouvrir votre navigateur, et Aller pour Jenkins : https://dev-eole.ac-dijon.fr/jenkins/job/Internes/view/Puller/job/git-clone-eole-ci-tests-to-all-vm/ * Se connecter * Cliquer sur Lancer un build * Dans l”historique des builds” un build apparait. Cliquer sur le lien * Le message de commit ‘git’ doit apparaître dans la sortie
Initialiser les réseaux dans Yggdrasil¶
- Ouvrir votre navigateur, et Aller https://dev-eole.ac-dijon.fr/jenkins/job/Internes/job/genere-modele-reseau-dans-nebula/build?delay=0sec
- Se connecter
- Saisir le nom d’utilisateur et le mot de passe
- Cliquer sur Build
- Dans “historique des builds” un build apparaît. Cliquer sur le lien
- Cliquer ensuite sur le lien ‘Console Output’
- Le texte affiche la sortie standard du processus de création des réseaux virtuels
Lancer la gateway¶
Aller dans OpenNebula (https://one.eole.lan/)
Aller dans ‘Virtual Resources’, puis ‘Templates’
Chercher ‘gateway-mensr’
Cliquer 2 fois sur ‘Instantiate’.La VM démarre.
Vérification
Se connecter en VNC avec ‘root/eole’
Taper
ip addr
==> vérifier l’IP SW EOLE1
ssh root@<ipgateway> ==> la connexion doit être sans mot de passe car la clef
Préparation du poste de travail¶
Modifier /etc/hosts¶
- Ajouter votre gateway
1 | 192.168.230.<IP> gateway.ac-test.fr gateway
|
- Vérification
1 2 | ping gateway
ping gateway.ac-test.fr
|
Ajouter tous les noms des machines ac-test.fr dans /etc/hosts¶
ATTENTION : Cette étape n’est nécessaire que si vous n’utilisez pas le DNS EOLE (192.168.232.2) ATTENTION : certains hosts ont été inscrits dans le DNS EOLE. Pour eux, il n’y a pas besoin d’entrée.
- Concatener le fichier (eole-ci-tests.git)/scripts/host dans /etc/hosts (connecté root)
1 2 | cd (eole-ci-tests.git)/scripts/
cat hosts >> /etc/hosts
|
Activation des routes¶
- Executer le fichier
1 2 | cd <depot eole-ci-tests.git>
./scripts/gateway-up.sh
|
Les routes sont inscrites...
REMARQUES:
- Ce script devra être lancé à chaque redémarrage de votre machine !
- Si vous utiliser plusieurs Gateway (one et bodgdanov), vous pouvez être amené à vouloir changer de gateway. Pour supprimer les routes actuelles, faites
1 2 | cd <depot eole-ci-tests.git>
./scripts/gateway-down.sh
|
- Pour basculer vers une gateway précise, tapez
1 2 | cd <depot eole-ci-tests.git>
./scripts/gateway-up.sh <ip_gateway_cible>
|
Lancement du daemon send notify¶
- Si vous le souhaitez, Executer le fichier
1 2 | cd <depot eole-ci-tests.git>
nohup python ./scripts/server_notify_network.py &
|
REMARQUES: * Ce script devra être lancé à chaque redémarrage de votre machine !* * Le port 50000 est ouvert en UDP sur le poste client. Il attend des messages UDP pour les afficher avec send-notify *
Selection de l’identitée SSH (Si besoin)¶
- Dans le cas, ou vous utilisez plusieurs clef publique ssh, Modifier le fichier @~/.ssh/config@ en ajoutant:
1 2 | Host *.ac-test.fr
IdentityFile ~/.ssh/'fichier de la clé copiée dans eole-ci-tests'
|
Astuce SSH knows hosts¶
- Pour éviter les message know_hosts, vous pouvez modifier le fichier @.ssh/config@ en ajoutant
1 2 3 4 5 | # Use daily destroyed file to avoid pain with VMs
Host *.ac-test.fr 192.168.230.1?? 192.168.230.2??
CheckHostIP no
UserKnownHostsFile /tmp/ac-test.fr
StrictHostKeyChecking no
|
Vérification¶
- Aller dans OpenNebula (https://one.eole.lan/)
- Aller dans ‘Virtual Resources’, puis ‘Templates’
- Chercher ‘aca.eolebase’
- Cliquer sur ‘Instantiate’. La VM démarre.
- Se connecter en VNC avec ‘root/eole’
- Taper ‘ip addr’ ==> vérifier l’IP SW EOLE
Utilisation d’un template¶
Démarrer une machine et se connecter dessus¶
- Choisir la machine dans Nebula
- l’instancier
- lancer dans une console
ssh root@nomDeMachine
(Exemple :ssh root@amonecole.etb3.ac-test.fr
)
Obtenir le contexte de la machine¶
Le contexte nécessite de monter le partage VirtFs eole-ci-tests. pour cela faire
1 2 | /root/mount.eole-ci-tests
. /getVMContext.sh
|
trucs: dans toutes les VM, l’hitorique de commande bas est ‘provisionné’ avec ces quelques commandes. Utiliser la fleche UP pour rappeller les commandes
Le script getVMContext.sh permet de charger les variables contextuelles du module. Attention : il faut le sourcer !
Le résultat est de la forme :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | root@amonecole:/mnt/eole-ci-tests/scripts# ./getVMContext.sh
VM_ONE = one
VM_ID = 7295
VM_OWNER = gerald
VM_MACHINE = etb3.amonecole
VM_MAJAUTO = DEV
VM_VERSIONMAJEUR = 2.4.1
VM_MODULE = amonecole
VM_CONTAINER = oui
VM_HOSTNAME = amonecole
VM_DNSNAME = amonecole.etb3.ac-test.fr
VM_ETABLISSEMENT = etb3
VM_ETH0_IP = 192.168.0.33
VM_ETH0_GW = 192.168.0.1
VM_ETH1_IP = 10.3.2.1
|
Configurer la machine¶
Le script configure-vm.sh permet d’appliquer une configuration à la VM. Ce script appliquera:
- la commande Maj-Auto adaptée au contexte,
- Copiera le fichier ‘config.eol’ correspondant à la machine et la version
- lancera l’instance sans questions
Pour obtenir de l’aide¶
1 | /mnt/eole-ci-tests/scripts/configure-vm.sh -h
|
Pour lancer l’instanciation avec le configuration par ‘default’¶
1 | /mnt/eole-ci-tests/scripts/configure-vm.sh -M instance
|
Pour lancer l’instanciation avec le configuration par ‘hamaster’¶
1 | /mnt/eole-ci-tests/scripts/configure-vm.sh -M instance -C hamaster
|
Pour ne copier que la configuration ‘hamaster’¶
1 | /mnt/eole-ci-tests/scripts/configure-vm.sh -M configeol -C hamaster
|