Projet

Général

Profil

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

Joël Cuissinat, 13/02/2018 12:05

1 6 Joël Cuissinat
{{>toc}}
2 6 Joël Cuissinat
3 1 Joël Cuissinat
h1. Scribe+eole-ad+Seth-conteneur
4 1 Joël Cuissinat
5 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.
6 2 Joël Cuissinat
7 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._
8 2 Joël Cuissinat
9 2 Joël Cuissinat
h2. Mise en œuvre du module Seth dans un conteneur LXC
10 2 Joël Cuissinat
11 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
12 1 Joël Cuissinat
13 3 Joël Cuissinat
h3. Génération du conteneur
14 3 Joël Cuissinat
15 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".
16 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.
17 2 Joël Cuissinat
18 2 Joël Cuissinat
<pre>
19 2 Joël Cuissinat
apt install lxc1 lxc-templates debootstrap cgroup-lite 
20 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
21 2 Joël Cuissinat
</pre>
22 1 Joël Cuissinat
23 3 Joël Cuissinat
h3. Configuration du conteneur
24 3 Joël Cuissinat
25 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.
26 2 Joël Cuissinat
27 2 Joël Cuissinat
Nous nous sommes adaptés au paramétrage proposé par défaut :
28 2 Joël Cuissinat
* conteneur dans @/var/lib/lxc/@
29 2 Joël Cuissinat
* réseau des conteneurs en 10.0.3.0/24
30 2 Joël Cuissinat
31 2 Joël Cuissinat
<pre>
32 2 Joël Cuissinat
root@scribe:~# cat /var/lib/lxc/seth/config 
33 2 Joël Cuissinat
# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
34 2 Joël Cuissinat
35 2 Joël Cuissinat
# Common configuration
36 2 Joël Cuissinat
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
37 2 Joël Cuissinat
38 2 Joël Cuissinat
# Container specific configuration
39 2 Joël Cuissinat
lxc.utsname = seth
40 2 Joël Cuissinat
lxc.arch = amd64
41 2 Joël Cuissinat
lxc.rootfs.backend = dir
42 2 Joël Cuissinat
lxc.rootfs = /var/lib/lxc/seth/rootfs
43 2 Joël Cuissinat
44 2 Joël Cuissinat
# EOLE look for /dev/lxc to detect container mode and behave differently
45 2 Joël Cuissinat
lxc.devttydir = LXC
46 2 Joël Cuissinat
47 2 Joël Cuissinat
# Automatic start at bootup
48 2 Joël Cuissinat
lxc.start.auto = 1
49 2 Joël Cuissinat
50 2 Joël Cuissinat
# Network configuration
51 2 Joël Cuissinat
# eth0 on eth0
52 2 Joël Cuissinat
lxc.network.type = macvlan
53 2 Joël Cuissinat
lxc.network.link = ens4
54 2 Joël Cuissinat
lxc.network.flags = up
55 2 Joël Cuissinat
lxc.network.name = eth0
56 2 Joël Cuissinat
lxc.network.mtu = 1500
57 2 Joël Cuissinat
lxc.network.macvlan.mode = bridge
58 2 Joël Cuissinat
59 2 Joël Cuissinat
# containers on br0
60 2 Joël Cuissinat
# Reuse LTSP server IP
61 2 Joël Cuissinat
# http://eole.ac-dijon.fr/documentations/2.6/partielles/beta/EOLE/co/02-fichiers.html
62 2 Joël Cuissinat
lxc.network.type=veth
63 2 Joël Cuissinat
lxc.network.link=lxcbr0
64 2 Joël Cuissinat
lxc.network.flags=up
65 2 Joël Cuissinat
lxc.network.name = containers
66 2 Joël Cuissinat
lxc.network.mtu = 1500
67 2 Joël Cuissinat
lxc.network.veth.pair = seth_0
68 1 Joël Cuissinat
lxc.network.ipv4 = 10.0.3.54/24
69 3 Joël Cuissinat
</pre>
70 3 Joël Cuissinat
71 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, ...).
72 3 Joël Cuissinat
73 3 Joël Cuissinat
* Installer la clef SSH publique pour se connecter en root
74 3 Joël Cuissinat
75 3 Joël Cuissinat
<pre>
76 3 Joël Cuissinat
mkdir /var/lib/lxc/seth/rootfs/root/.ssh/
77 3 Joël Cuissinat
cp ~root/.ssh/id_rsa.pub /var/lib/lxc/seth/rootfs/root/.ssh/authorized_keys
78 3 Joël Cuissinat
chmod -R 600 /var/lib/lxc/seth/rootfs/root/.ssh/
79 3 Joël Cuissinat
</pre>
80 3 Joël Cuissinat
81 3 Joël Cuissinat
* Configurer les sources APT
82 3 Joël Cuissinat
83 3 Joël Cuissinat
<pre>
84 3 Joël Cuissinat
grep -iv envole /etc/apt/sources.list > /var/lib/lxc/seth/rootfs/etc/apt/sources.list
85 3 Joël Cuissinat
</pre>
86 3 Joël Cuissinat
87 3 Joël Cuissinat
* Démarrer le conteneur
88 3 Joël Cuissinat
89 3 Joël Cuissinat
<pre>
90 3 Joël Cuissinat
lxc-start -n seth -d
91 2 Joël Cuissinat
</pre>
92 4 Joël Cuissinat
93 4 Joël Cuissinat
h3. Installation du module Seth dans le conteneur
94 4 Joël Cuissinat
95 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.
96 5 Joël Cuissinat
97 5 Joël Cuissinat
h2. Configuration du module Seth (fichier joint)
98 5 Joël Cuissinat
99 5 Joël Cuissinat
h3. Interfaces
100 5 Joël Cuissinat
101 5 Joël Cuissinat
Comme proposé dans le tutoriel :
102 5 Joël Cuissinat
* la première carte réseau du module Seth a un accès direct au réseau externe (mode bridge) 
103 5 Joël Cuissinat
* la seconde carte est configurée pour accéder au bridge interne
104 5 Joël Cuissinat
105 5 Joël Cuissinat
Ce qui donne :
106 5 Joël Cuissinat
* Général :
107 5 Joël Cuissinat
** Nombre d'interfaces à activer : 2
108 5 Joël Cuissinat
* Interface-0 :
109 5 Joël Cuissinat
** Adresse IP de la carte : 192.168.0.27
110 5 Joël Cuissinat
** Adresse IP de la passerelle par défaut : 192.168.0.1
111 5 Joël Cuissinat
* Interface-1
112 5 Joël Cuissinat
* Adresse IP de la carte : 10.0.3.54
113 5 Joël Cuissinat
114 5 Joël Cuissinat
Dans le cadre de la maquette, les 2 groupes variables suivants ont été configurées en 0/0 pour les 2 interfaces :
115 5 Joël Cuissinat
* Adresse IP réseau autorisée pour les connexions SSH
116 5 Joël Cuissinat
* Adresse IP réseau autorisée pour administrer le serveur
117 5 Joël Cuissinat
118 5 Joël Cuissinat
h3. Autres paramètres
119 5 Joël Cuissinat
120 5 Joël Cuissinat
Les paramètres généraux ont été configurés pour être cohérents avec l'aca.scribe.
121 5 Joël Cuissinat
* Nom DNS du réseau local : ac-test.fr
122 5 Joël Cuissinat
* Nom de domaine académique (ex : ac-dijon) : ac-test
123 5 Joël Cuissinat
* Adresse IP du serveur DNS : 192.168.232.2
124 5 Joël Cuissinat
125 5 Joël Cuissinat
NB : Pour plus de confort, penser à désactiver la variables _Vérifier la complexité des mots de passe_ :o
126 5 Joël Cuissinat
127 5 Joël Cuissinat
128 5 Joël Cuissinat
h3. Problèmes rencontrés
129 5 Joël Cuissinat
130 5 Joël Cuissinat
* *Samba 4.7* : normalement, le module Seth nécessite un Maj-Auto préalable à l'instance pour installer une version de Samba plus récente. 
131 5 Joël Cuissinat
Un soucis de packaging nous a obligé à revenir à la version 4.3 pour laquelle, il a fallu :
132 5 Joël Cuissinat
** hacker le script : @/usr/share/eole/postservice/25-manage-samba@
133 5 Joël Cuissinat
** trouver que la paquet libtevent0 installé via le dépôt supplémentaire faisait planter le samba 4.3 (segfault)
134 5 Joël Cuissinat
* *hostnamectl* : la commande n'est pas fonctionnelle dans le conteneur (https://bugzilla.redhat.com/show_bug.cgi?id=1353831 ?), nous avons commenté son appel dans @/usr/lib/eole/samba4.sh@
135 7 Joël Cuissinat
136 7 Joël Cuissinat
137 7 Joël Cuissinat
h2. Mise en place d'Eole-AD sur Scribe (fichier joint)
138 7 Joël Cuissinat
139 7 Joël Cuissinat
h3. Installation et configuration 
140 7 Joël Cuissinat
141 7 Joël Cuissinat
Utilisation de la procédure habituelle : installation du paquet + configuration + enregistrement des certificats d'autorité
142 7 Joël Cuissinat
143 7 Joël Cuissinat
Au niveau de la configuration, il faut penser que le Scribe ne peut communiquer avec le Seth que via le réseau interne.
144 7 Joël Cuissinat
145 7 Joël Cuissinat
* onglet Active directory
146 7 Joël Cuissinat
** Nom du serveur Active Directory : seth
147 7 Joël Cuissinat
** Adresse IP du serveur Active Directory : 10.0.3.54 (NB : on peut également le déclarer en tant que serveur NTP dans l'onglet général)
148 7 Joël Cuissinat
** Compte administrateur du domaine AD : Administrator
149 7 Joël Cuissinat
** Synchroniser l'annuaire en LDAPS : oui
150 7 Joël Cuissinat
151 7 Joël Cuissinat
Je ne sais pas si c'est nécessaire mais j'ai déclaré explicitement : 10.0.3.54 -> seth.ac-test.fr en tant qu'hôte supplémentaire dans l'onglet Réseau avancé.
152 7 Joël Cuissinat
153 7 Joël Cuissinat
h3. Problèmes rencontrés