La "piscine", dont le nom est inspiré de certaines pratiques dans les écoles d'informatique, se veut une sorte d'atelier collectif ou chacun est autonome et plonge sur les sujets de son choix, individuellement ou en petits groupes. Nous vous proposons en ligne un [ensemble de plongeons] (https://gitlab.in2p3.fr/MaitresNageurs/PiscineJI/tree/master) : des tutoriels courts (15 à 20 minutes), auto-suffisants, nécessitant le moins d'installation possible, notamment en s'appuyant sur des images Docker ou VirtualBox. Vous êtes libre d'essayer les plongeons de votre choix, à votre rythme. Nous cherchons à élargir au maximum le champ des propositions et des technologies. Si vous avez un sujet qui vous tient à coeur ou qui vous semble important, n'hésitez pas à contribuer. Il ne s'agit pas d'écrire un document d'expert, mais d'aider vos collègues à se mettre à l'eau. # Préparation aux plongeons ## Instructions générales Les tutoriels que nous vous proposons devront être exécutés sur vos ordinateurs portables, par le biais d'images Docker ou de machines virtuelles VirtualBox. Pour cette raison, nous vous demandons de pré-installer Docker et VirtualBox sur vos ordinateurs AVANT de venir aux JIs, ceci jusqu'à l'exécution de la machine "hello-world" (pour Docker) afin d'être bien surs que cela fonctionne. Vous veillerez à avoir une quantité raisonnable d'espace libre sur vos ordinateurs portables, car les machines virtuelles sont gourmandes... ## Installation VirtualBox C'est [ici](https://www.virtualbox.org/) ## Installation Docker ### Sur Linux C'est [ici](http://www.docker.com/products/docker#/linux). ### Sur Windows Si votre windows est <10, il faudra utiliser l'[ancienne mouture de docker] (https://www.docker.com/products/docker-toolbox), reposant sur VirtualBox. (Attention ceci est vrai seulement à partir d'une certaine release de Windows10 (*1511 November update, Build 10586 or later*) qui n'est pas nécessairement celle que vous avez installé) Sinon, vous pouvez utiliser la [nouvelle mouture] (http://www.docker.com/products/docker#/windows) où la machine virtuelle est moins visible, et où vous pouvez utilisez exactement les mêmes commandes Docker que vos collègues Linux. ### Sur MacOSX Si votre matériel est trop vieux (< 2010), il faudra utiliser l'[ancienne mouture de docker](https://www.docker.com/products/docker-toolbox), reposant sur VirtualBox. Plutôt qu'une installation graphique, on peut utiliser [Homebrew](http://brew.sh/) (*The missing package manager for OS X*) pour la gestion de son installation : $> brew update $> brew cleanup && brew cask cleanup $> brew cask install dockertoolbox Avec un matériel récent, utilisez plutôt la [nouvelle mouture] (http://www.docker.com/products/docker#/mac) où la machine virtuelle est moins visible, et où vous pouvez utilisez exactement les mêmes commandes Docker que vos collègues Linux. Là encore, [brew](http://brew.sh/) simplifie la tâche : $> brew update $> brew cleanup && brew cask cleanup $> brew cask install docker ## Cas particulier : X11 forwarding Si pour mon plongeon spécifique, j'ai besoin de faire tourner dans un conteneur Docker une application graphique, il faut qu'elle puisse envoyer ses instructions au serveur X11 de la machine hôte. A supposer que votre variable d'environnement DISPLAY soit correctement définie et comprenne un numéro IP, tel que `172.18.80.184:0`, et que les connexions "externes" aient été autorisées (`xhost +`), il peut suffire d'exporter la variable DISPLAY en lancant le conteneur. Dans une fenêtre de commandes de la machine hôte, essayez (en utilisant le bon numéro ip) : ``` export DISPLAY=172.18.80.184:0 xhost + docker run -e DISPLAY=$DISPLAY gns3/xeyes ``` En cas de résistance, peut-être en ajoutant un lien vers `/tmp/.X11-unix` : ``` export DISPLAY=172.18.80.184:0 xhost + docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw gns3/xeyes ``` Si vous etes sur MacOSX avec la dernière version (boguée) de XQuartz (2.7.9), pauvre de vous ! Pour commencer, on n'oublie pas d'autoriser les connexions externes dans les préférences de sécurité de XQuartz. Ensuite, on ajoute après la ligne 107 du fichier `/opt/X11/bin/startx` (`defaultserverargs="$defaultserverargs -nolisten tcp"`) les deux lignes suivantes : ``` else defaultserverargs="$defaultserverargs -listen tcp" ``` Et on redémarre XQuartz en priant. ## Cas particulier : mon clavier azerty n'est pas reconnu Avec VirtualBox plus qu'avec Docker, on peut avoir des soucis de clavier. Ci-dessous, un collection de trucs qui peuvent fonctionner... ou pas. ### Ligne de commande Tentez "loadkeys fr". Si la commande "loadkeys" est absente, essayez d'installer le package "kbd". ### Serveur X11 Si vous avez lancé votre machine virtuelle en mode graphique et qu'elle comprend un serveur X11, vous pouvez aussi tenter "setxkbmap fr". ### Sur MacOSX, c'est encore pire... Si votre "alt" de gauche ne fonctionne pas, parfois celui de droite fonctionne.