- Scribe+eole-ad+Seth-conteneur
Scribe+eole-ad+Seth-conteneur¶
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.
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.
Mise en œuvre du module Seth dans un conteneur LXC¶
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
Génération du conteneur¶
Pour la génération du conteneur de base et les étapes suivants, nous avons juste remplacé le nom "eclair" par "seth".
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.
apt install lxc1 lxc-templates debootstrap cgroup-lite 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
Configuration du conteneur¶
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.
Nous nous sommes adaptés au paramétrage proposé par défaut :- conteneur dans
/var/lib/lxc/
- réseau des conteneurs en 10.0.3.0/24
root@scribe:~# cat /var/lib/lxc/seth/config # Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu # Common configuration lxc.include = /usr/share/lxc/config/ubuntu.common.conf # Container specific configuration lxc.utsname = seth lxc.arch = amd64 lxc.rootfs.backend = dir lxc.rootfs = /var/lib/lxc/seth/rootfs # EOLE look for /dev/lxc to detect container mode and behave differently lxc.devttydir = LXC # Automatic start at bootup lxc.start.auto = 1 # Network configuration # eth0 on eth0 lxc.network.type = macvlan lxc.network.link = ens4 lxc.network.flags = up lxc.network.name = eth0 lxc.network.mtu = 1500 lxc.network.macvlan.mode = bridge # containers on br0 # Reuse LTSP server IP # http://eole.ac-dijon.fr/documentations/2.6/partielles/beta/EOLE/co/02-fichiers.html lxc.network.type=veth lxc.network.link=lxcbr0 lxc.network.flags=up lxc.network.name = containers lxc.network.mtu = 1500 lxc.network.veth.pair = seth_0 lxc.network.ipv4 = 10.0.3.54/24
Nous avons ensuite effectué les opération qui nous semblaient adaptées à notre cas (pas de périphérique, pas de proxy, ...).
- Installer la clef SSH publique pour se connecter en root
mkdir /var/lib/lxc/seth/rootfs/root/.ssh/ cp ~root/.ssh/id_rsa.pub /var/lib/lxc/seth/rootfs/root/.ssh/authorized_keys chmod -R 600 /var/lib/lxc/seth/rootfs/root/.ssh/
- Configurer les sources APT
grep -iv envole /etc/apt/sources.list > /var/lib/lxc/seth/rootfs/etc/apt/sources.list
- Démarrer le conteneur
lxc-start -n seth -d
Installation du module Seth dans le conteneur¶
Pour cette opération, nous avons suivi à la lettre les indications de la partie 2 Transformer le conteneur en serveur EOLE du tutoriel.
Configuration du module Seth (fichier joint)¶
Interfaces¶
Comme proposé dans le tutoriel :- la première carte réseau du module Seth a un accès direct au réseau externe (mode bridge)
- la seconde carte est configurée pour accéder au bridge interne
- Général :
- Nombre d'interfaces à activer : 2
- Interface-0 :
- Adresse IP de la carte : 192.168.0.27
- Adresse IP de la passerelle par défaut : 192.168.0.1
- Interface-1
- Adresse IP de la carte : 10.0.3.54
- Adresse IP réseau autorisée pour les connexions SSH
- Adresse IP réseau autorisée pour administrer le serveur
Autres paramètres¶
Les paramètres généraux ont été configurés pour être cohérents avec l'aca.scribe.- Nom DNS du réseau local : ac-test.fr
- Nom de domaine académique (ex : ac-dijon) : ac-test
- Adresse IP du serveur DNS : 192.168.232.2
NB : Pour plus de confort, penser à désactiver la variables Vérifier la complexité des mots de passe :o
Problèmes rencontrés¶
- 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.
Un soucis de packaging nous a obligé à revenir à la version 4.3 pour laquelle, il a fallu :- hacker le script :
/usr/share/eole/postservice/25-manage-samba
- trouver que la paquet libtevent0 installé via le dépôt supplémentaire faisait planter le samba 4.3 (segfault)
- hacker le script :
- 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
Mise en place d'Eole-AD sur Scribe (fichier joint)¶
Installation et configuration¶
Utilisation de la procédure habituelle : installation du paquet + configuration + enregistrement des certificats d'autorité
Au niveau de la configuration, il faut penser que le Scribe ne peut communiquer avec le Seth que via le réseau interne.
- onglet Active directory
- Nom du serveur Active Directory : seth
- 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)
- Compte administrateur du domaine AD : Administrator
- Synchroniser l'annuaire en LDAPS : oui
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é.
Problèmes rencontrés¶
- firewall : la commande /usr/sbin/ferme.firewall appelée dans /usr/share/eole/posttemplate/00-eole-common casse l'accès aux conteneurs
- La commande
CreoleService bastion restart
rétablit l'accès, on peut l'exécuter avant l'appel à /usr/share/eole/posttemplate/05-eolead
- La commande
- accès au conteneur : les commandes instance et reconfigure modifient des choses dans la configuration réseau (à creuser).
- Après ces commandes, un redémarrage du service lxc-net semble nécessaire
- Il faut également redémarrer le service lsc mais cela doit être une conséquence du fait que le conteneur n'est pas accessible lorsqu'il démarre
Tests effectués¶
Une fois la maquette fonctionnelle :- création d'un élève via l'EAD : OK
- jonction manuelle d'une station au domaine "ac-test.fr" (en ayant paramétré le DNS sur 192.168.0.27) : OK
- connexion élève : OK (son perso est monté sur U:)
- installation du client Scribe (cliscribe-setup.exe)
=> Le client Scribe n'est pas fonctionnel (cf. message joint)