README.md 5.6 KB
Newer Older
CHAMONT David's avatar
CHAMONT David committed
1
La "piscine", dont le nom est inspiré de certaines pratiques dans les écoles
CHAMONT David's avatar
CHAMONT David committed
2 3 4
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.

5
Nous vous proposons en ligne un [ensemble de plongeons]
CHAMONT David's avatar
CHAMONT David committed
6 7
(https://gitlab.in2p3.fr/MaitresNageurs/PiscineJI/tree/master) :
des tutoriels courts (15 à 20 minutes), auto-suffisants, nécessitant le moins
CHAMONT David's avatar
CHAMONT David committed
8 9
d'installation possible, notamment en s'appuyant sur des images Docker ou
VirtualBox. 
CHAMONT David's avatar
CHAMONT David committed
10

11
Vous êtes libre d'essayer les plongeons de votre choix, à votre rythme.
CHAMONT David's avatar
CHAMONT David committed
12

CHAMONT David's avatar
Detail.  
CHAMONT David committed
13
Nous cherchons à élargir au maximum le champ des propositions
CHAMONT David's avatar
CHAMONT David committed
14 15 16
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.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34


# 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

35
C'est [ici](https://www.virtualbox.org/)
36 37 38 39 40

## Installation Docker

### Sur Linux

41
C'est [ici](http://www.docker.com/products/docker#/linux).
42 43 44

### Sur Windows

45 46 47 48 49
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é)
50

51 52 53 54
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.
55 56 57

### Sur MacOSX

58 59 60 61 62 63
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 :
64

65
    $> brew update
66 67 68
    $> brew cleanup && brew cask cleanup
    $> brew cask install dockertoolbox

69 70 71 72 73 74
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 :
75

76
    $> brew update
77 78 79
    $> brew cleanup && brew cask cleanup
    $> brew cask install docker

80
## Cas particulier : X11 forwarding
81

82
Si pour mon plongeon spécifique, j'ai besoin de faire tourner dans un
83 84 85 86 87
conteneur Docker une application graphique linux, il faut qu'elle puisse
envoyer ses instructions au serveur X11 de la machine hôte. Pour tester
que votre configuration fonctionne, nous allons essayer de faire
exécuter l'image `gns3/xeyes`, qui se contente de faire apparaitre
deux yeux sur votre écran.
88

89
### Sur Linux
90

91 92 93 94
Le cas le plus simple : vous vous assurez que la variable `DISPLAY` est
définie et contient `:0`, vous glissez un petit `xhost +` pour autoriser
les connexions extérieures, et vous faite suivre `DISPLAY` à votre
conteneur, ainsi qu'un accès au répertoire temporaire adéquat :
95 96

```
97
export DISPLAY=:0
98 99 100 101
xhost +
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw gns3/xeyes
```

102 103 104 105 106 107 108 109 110 111 112
### Sur MacOSX (avec Docker nouvelle mouture)

C'est un peu plus chaud.

D'abord, pour disposer d'un serveur X11, il faut installer XQuartz,
et autoriser les connexions externes dans ses préférences de sécurité.

Si vous avez la dernière version de XQuartz (2.7.9), il y a un bug à corriger
à la main.... après la ligne 107 du fichier `/opt/X11/bin/startx`
(`defaultserverargs="$defaultserverargs -nolisten tcp"`) ajoutez les deux
lignes suivantes et redémarrez XQuartz en priant :
113 114 115 116 117 118

```
else
    defaultserverargs="$defaultserverargs -listen tcp"
```

119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
*Sources : [forums.docker.com](https://forums.docker.com/t/x11-forwarding-issues-with-release-10/11252),
[bugs.freedesktop.org](https://bugs.freedesktop.org/show_bug.cgi?id=95379).*

Ensuite, sans doute à cause de la couche "xhyve",
le conteneur doit récupérer un DISPLAY qui contient le numéro IP
de la machine hôte. Pour récupérer ce numéro IP, il faut scruter
les lignes "inet" dans la sortie de la commande `ifconfig`. Une
fois que vous l'avez :

```
export DISPLAY=IP:0
xhost +
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw gns3/xeyes
```

### Sur Windows 10 (avec Docker nouvelle mouture)

AHEM...
137

CHAMONT David's avatar
CHAMONT David committed
138

139
## Cas particulier : mon clavier azerty n'est pas reconnu
140

141 142 143
Avec VirtualBox plus qu'avec Docker, on peut avoir des soucis
de clavier. Ci-dessous, un collection de trucs qui peuvent
fonctionner... ou pas.
144 145 146

### Ligne de commande

147 148
Tentez "loadkeys fr". Si la commande "loadkeys" est absente,
essayez d'installer le package "kbd".
149 150 151

### Serveur X11

152 153
Si vous avez lancé votre machine virtuelle en mode graphique et qu'elle
comprend un serveur X11, vous pouvez aussi tenter "setxkbmap fr".
154 155 156

### Sur MacOSX, c'est encore pire...

157 158
Si votre "alt" de gauche ne fonctionne pas, parfois celui de droite
fonctionne.
159 160