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

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 EOLE

    • 1
      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