Projet

Général

Profil

http://dev-eole.ac-dijon.fr/projects/eole-ci-tests/wiki/ModeleReseaux

A) Installation pour utilisation d'une gateway

A.1) Récupération du dépot eole-ci-test

Faire :

git clone https://dev-eole.ac-dijon.fr/git/eole-ci-tests.git

A.2) Ajout de la gateway dans le eole-ci-tests

Attention:
- Le <user_nebula> n'est pas obligatoirement le même sur ONE et sur BOGDANOV. 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.

IP_EOLE=<fin de l'IP de la gateway sur le réseau EOLE pour les Bogdanov>
IP_ONE=<fin de l'IP de la gateway sur le réseau EOLE pour le ONE>
IP_AGREGATION=<fin de l'IP de la gateway agrégation 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>
IP_ROADWARRIOR=<ip du tunnel GRE 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
IP_ROADWARRIOR est facultative, Utiliser cette var si vous avez besoin d'une connexion VPN

A.3) Ajout de la clef publique ssh dans eole-ci-tests/security/authorized_keys

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.

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

A.4) Commit

git commit -am "ajout de l'utilisateur <user>" 
git push

A.5) Publication de la clef et du fichier routeur

Attendre que les Jenkins publient le commit vers les VM (15 minutes)

OU, faire :

A.6) Initialiser les réseaux dans Yggdrasil

A.7) 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
  • lancer :
     ssh root@<ipgateway>  ==> la connexion doit être sans mot de passe car la clef
    

B) Préparation du poste de travail

B.1) Modifier /etc/hosts

  • Ajouter votre gateway :
    192.168.230.<IP> gateway.ac-test.fr gateway
    
  • Vérification
    ping gateway
    ping gateway.ac-test.fr
    

B.2) 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)
    cd (eole-ci-tests.git)/scripts/
    cat hosts >> /etc/hosts
    

B.3) Activation des routes

  • Executer le fichier :
    # 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 :
    # cd <depot eole-ci-tests.git>
    # ./scripts/gateway-down.sh
    
  • Pour basculer vers une gateway précise, tapez
    # cd <depot eole-ci-tests.git>
    # ./scripts/gateway-up.sh <ip_gateway_cible>
    

B.4) Lancement du daemon send notify

  • Si vous le souhaitez, Executer le fichier :
    # 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 *

B.5) 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 :
    Host *.ac-test.fr
       IdentityFile ~/.ssh/<fichier de la clé copiée dans eole-ci-tests>
    

B.6) Astuce SSH knows hosts

  • Pour éviter les message know_hosts, vous pouvez modifier le fichier .ssh/config en ajoutant :
    # Use daily destroyed file to avoid pain with VMs
    Host *.ac-test.fr 192.168.0.* 192.168.230.1?? 192.168.230.2??
      CheckHostIP no
      UserKnownHostsFile /tmp/ac-test.fr
      StrictHostKeyChecking no
    

B.7) Vérification

  • Aller dans OpenNebual (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

C) Utilisation d'un template

C.1) 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

C.2) Obtenir le contexte de la machine

Le contexte nécessite de monter le partage VirtFs eole-ci-tests. pour cela faire :

# /root/mount.eole-ci-tests
# . /getVMContext.sh 

Le script getVMContext.sh permet de charger les variables contextuelles du module.
Attention : il faut le sourcer !

Le résultat est de la forme :

root@amonecole:/mnt/eole-ci-tests/scripts# ./getVMContext.sh 
VM_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
---
root@amonecole:/mnt/eole-ci-tests/scripts#

C.3) Configurer la machine

cd /mnt/eole-ci-tests/scripts/
  • 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 :

# ./configure-vm.sh -h

Pour lancer l'instanciation avec le configuration par 'default'

# ./configure-vm.sh -M instance

Pour lancer l'instanciation avec le configuration par 'hamaster'

# ./configure-vm.sh -M instance -C hamaster

Pour ne copier que la configuration 'hamaster'

# ./configure-vm.sh -M configeol -C hamaster

C.4)