Projet

Général

Profil

Scribe+eole-ad+Seth-conteneur » Historique » Version 4

Joël Cuissinat, 13/02/2018 11:31

1 1 Joël Cuissinat
h1. Scribe+eole-ad+Seth-conteneur
2 1 Joël Cuissinat
3 1 Joël Cuissinat
On part d'un Scribe sur lequel on installe et on configure un module Seth dans un conteneur LXC puis on met en œuvre Eole-AD comme si on avait deux serveurs distincts.
4 2 Joël Cuissinat
5 2 Joël Cuissinat
_Pour la maquette, j'ai choisi d'utiliser un serveur aca.scribe-2.6.2-instance-AvecImport afin de minimiser les problèmes liés à l'environnement réseau._
6 2 Joël Cuissinat
7 2 Joël Cuissinat
h2. Mise en œuvre du module Seth dans un conteneur LXC
8 2 Joël Cuissinat
9 2 Joël Cuissinat
Pour mettre en place le conteneur, nous avons suivi le tutoriel réalisé par Daniel qui permettait d'installer un module Eclair dans un conteneur : https://dev-eole.ac-dijon.fr/issues/21060
10 1 Joël Cuissinat
11 3 Joël Cuissinat
h3. Génération du conteneur
12 3 Joël Cuissinat
13 2 Joël Cuissinat
Pour la génération du conteneur de base et les étapes suivants, nous avons juste remplacé le nom "eclair" par "seth".
14 2 Joël Cuissinat
Dans notre cas, comme le mode conteneur d'EOLE n'est pas utilisé sur le maître, il manque des outils et des mécanismes pour que lxc fonctionne directement.
15 2 Joël Cuissinat
16 2 Joël Cuissinat
<pre>
17 2 Joël Cuissinat
apt install lxc1 lxc-templates debootstrap cgroup-lite 
18 2 Joël Cuissinat
lxc-create -n seth -t ubuntu -- -r xenial -u ubuntu -S ~root/.ssh/id_rsa.pub --packages 'wget' --mirror http://eole.ac-dijon.fr/ubuntu
19 2 Joël Cuissinat
</pre>
20 1 Joël Cuissinat
21 3 Joël Cuissinat
h3. Configuration du conteneur
22 3 Joël Cuissinat
23 2 Joël Cuissinat
Pour configurer le conteneur, nous nous sommes également inspirés de la configuration proposée pour Eclair en ignorant la problématique du montage NFS.
24 2 Joël Cuissinat
25 2 Joël Cuissinat
Nous nous sommes adaptés au paramétrage proposé par défaut :
26 2 Joël Cuissinat
* conteneur dans @/var/lib/lxc/@
27 2 Joël Cuissinat
* réseau des conteneurs en 10.0.3.0/24
28 2 Joël Cuissinat
29 2 Joël Cuissinat
<pre>
30 2 Joël Cuissinat
root@scribe:~# cat /var/lib/lxc/seth/config 
31 2 Joël Cuissinat
# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
32 2 Joël Cuissinat
33 2 Joël Cuissinat
# Common configuration
34 2 Joël Cuissinat
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
35 2 Joël Cuissinat
36 2 Joël Cuissinat
# Container specific configuration
37 2 Joël Cuissinat
lxc.utsname = seth
38 2 Joël Cuissinat
lxc.arch = amd64
39 2 Joël Cuissinat
lxc.rootfs.backend = dir
40 2 Joël Cuissinat
lxc.rootfs = /var/lib/lxc/seth/rootfs
41 2 Joël Cuissinat
42 2 Joël Cuissinat
# EOLE look for /dev/lxc to detect container mode and behave differently
43 2 Joël Cuissinat
lxc.devttydir = LXC
44 2 Joël Cuissinat
45 2 Joël Cuissinat
# Automatic start at bootup
46 2 Joël Cuissinat
lxc.start.auto = 1
47 2 Joël Cuissinat
48 2 Joël Cuissinat
# Network configuration
49 2 Joël Cuissinat
# eth0 on eth0
50 2 Joël Cuissinat
lxc.network.type = macvlan
51 2 Joël Cuissinat
lxc.network.link = ens4
52 2 Joël Cuissinat
lxc.network.flags = up
53 2 Joël Cuissinat
lxc.network.name = eth0
54 2 Joël Cuissinat
lxc.network.mtu = 1500
55 2 Joël Cuissinat
lxc.network.macvlan.mode = bridge
56 2 Joël Cuissinat
57 2 Joël Cuissinat
# containers on br0
58 2 Joël Cuissinat
# Reuse LTSP server IP
59 2 Joël Cuissinat
# http://eole.ac-dijon.fr/documentations/2.6/partielles/beta/EOLE/co/02-fichiers.html
60 2 Joël Cuissinat
lxc.network.type=veth
61 2 Joël Cuissinat
lxc.network.link=lxcbr0
62 2 Joël Cuissinat
lxc.network.flags=up
63 2 Joël Cuissinat
lxc.network.name = containers
64 2 Joël Cuissinat
lxc.network.mtu = 1500
65 2 Joël Cuissinat
lxc.network.veth.pair = seth_0
66 1 Joël Cuissinat
lxc.network.ipv4 = 10.0.3.54/24
67 3 Joël Cuissinat
</pre>
68 3 Joël Cuissinat
69 3 Joël Cuissinat
Nous avons ensuite effectué les opération qui nous semblaient adaptées à notre cas (pas de périphérique, pas de proxy, ...).
70 3 Joël Cuissinat
71 3 Joël Cuissinat
* Installer la clef SSH publique pour se connecter en root
72 3 Joël Cuissinat
73 3 Joël Cuissinat
<pre>
74 3 Joël Cuissinat
mkdir /var/lib/lxc/seth/rootfs/root/.ssh/
75 3 Joël Cuissinat
cp ~root/.ssh/id_rsa.pub /var/lib/lxc/seth/rootfs/root/.ssh/authorized_keys
76 3 Joël Cuissinat
chmod -R 600 /var/lib/lxc/seth/rootfs/root/.ssh/
77 3 Joël Cuissinat
</pre>
78 3 Joël Cuissinat
79 3 Joël Cuissinat
* Configurer les sources APT
80 3 Joël Cuissinat
81 3 Joël Cuissinat
<pre>
82 3 Joël Cuissinat
grep -iv envole /etc/apt/sources.list > /var/lib/lxc/seth/rootfs/etc/apt/sources.list
83 3 Joël Cuissinat
</pre>
84 3 Joël Cuissinat
85 3 Joël Cuissinat
* Démarrer le conteneur
86 3 Joël Cuissinat
87 3 Joël Cuissinat
<pre>
88 3 Joël Cuissinat
lxc-start -n seth -d
89 2 Joël Cuissinat
</pre>
90 4 Joël Cuissinat
91 4 Joël Cuissinat
h3. Installation du module Seth dans le conteneur
92 4 Joël Cuissinat
93 4 Joël Cuissinat
Pour cette opération, nous avons suivi à la lettre les indications de la partie *2 Transformer le conteneur en serveur EOLE* du tutoriel.