Tâche #31932
Scénario #32000: Traitement express MEN (14-16)
Erreur lors du gen_conteneur en mode CDROM
100%
Description
Après installation des paquets eole-lxc-controller ssmtp sur une aca.eolebase FIAvecCdrom
Test squash : https://dev-eole.ac-dijon.fr/squash/test-cases/1181/info
Demandes liées
Révisions associées
Add correct options to take care of apparmor cache
fix: #31932
Add -T for not reading cache
Add -W for writing cache
Historique
#1 Mis à jour par Matthieu Lamalle il y a environ 3 ans
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Lancement des conteneurs -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Start Systemd service lxc-net [ OK ] Start Systemd service lxc [ OK ] root - Impossible de démarrer le conteneur : mail
root@eolebase:~# tail -n5 /var/log/lxc-mail.log lxc-start mail 20210315114218.679 ERROR cgfsng - cgroups/cgfsng.c:cgfsng_monitor_create:1264 - Failed to create cgroup "(null)" lxc-start mail 20210315114218.680 ERROR cgfsng - cgroups/cgfsng.c:cgfsng_monitor_create:1264 - Failed to create cgroup "(null)" lxc-start mail 20210315114218.680 ERROR cgfsng - cgroups/cgfsng.c:cgfsng_monitor_create:1264 - Failed to create cgroup "(null)" lxc-start mail 20210315114218.681 ERROR cgfsng - cgroups/cgfsng.c:cgfsng_monitor_create:1264 - Failed to create cgroup "(null)" lxc-start mail 20210315114218.681 ERROR cgfsng - cgroups/cgfsng.c:cgfsng_monitor_create:1264 - Failed to create cgroup "(null)"
#2 Mis à jour par Emmanuel GARETTE il y a environ 3 ans
- Tâche parente
#31861supprimé
#3 Mis à jour par Emmanuel GARETTE il y a environ 3 ans
- Tracker changé de Tâche à Demande
- Sujet changé de SC-T10-001, erreur lors du gen_conteneur à Erreur lors du gen_conteneur en mode CDROM
#4 Mis à jour par Emmanuel GARETTE il y a environ 3 ans
- Version cible
Prestation Cadoles MEN 2021 11-13supprimé
#5 Mis à jour par Joël Cuissinat il y a environ 3 ans
- Description mis à jour (diff)
#6 Mis à jour par Joël Cuissinat il y a environ 3 ans
- Tâche parente mis à #32000
#7 Mis à jour par Joël Cuissinat il y a environ 3 ans
- Lié à Tâche #31933: Mettre à jour SC-T10 ajouté
#8 Mis à jour par Laurent Flori il y a environ 3 ans
- Statut changé de Nouveau à En cours
#9 Mis à jour par Laurent Flori il y a environ 3 ans
- Assigné à mis à Laurent Flori
#10 Mis à jour par Laurent Flori il y a environ 3 ans
C'est un problème avec le profile apparmor pour le cdrom (lxc-container-default-with-cdrom) si on désactive celui ci la conteneur démarre sans problème apparent.
Le profil apparmor avec cdrom n'est jamais chargé (on ne peut pas le charger à la main non plus). On peut s'en assurer avec la commande
root@eolebase:~# apparmor_status apparmor module is loaded. 17 profiles are loaded. 17 profiles are in enforce mode. /usr/bin/lxc-start /usr/bin/man /usr/lib/NetworkManager/nm-dhcp-client.action /usr/lib/NetworkManager/nm-dhcp-helper /usr/lib/connman/scripts/dhclient-script /usr/sbin/ntpd /usr/sbin/tcpdump /{,usr/}sbin/dhclient lsb_release lxc-container-default lxc-container-default-cgns lxc-container-default-with-mounting lxc-container-default-with-nesting man_filter man_groff nvidia_modprobe nvidia_modprobe//kmod 0 profiles are in complain mode. 1 processes have profiles defined. 0 processes are in enforce mode. 0 processes are in complain mode. 1 processes are unconfined but have a profile defined. /usr/sbin/ntpd (1000) root@eolebase:~#
Je n'ai pas trouvé la solution dans la documentation mais dans les fichiers de configuration eux-mêmes:
# Do not load this file. Rather, load /etc/apparmor.d/lxc-containers, which # will source all profiles under /etc/apparmor.d/lxc
et dans le fichier /etc/apparmor.d/lxc-containers:
l'entrée "#include <lxc>" est commentée. Si on la décommente et qu'on relance le service avec
systemctl restart apparmor.service, on a bien:
apparmor module is loaded. 18 profiles are loaded. 18 profiles are in enforce mode. /usr/bin/lxc-start /usr/bin/man /usr/lib/NetworkManager/nm-dhcp-client.action /usr/lib/NetworkManager/nm-dhcp-helper /usr/lib/connman/scripts/dhclient-script /usr/sbin/ntpd /usr/sbin/tcpdump /{,usr/}sbin/dhclient lsb_release lxc-container-default lxc-container-default-cgns lxc-container-default-with-cdrom <--- C'est ce qu'on cherche lxc-container-default-with-mounting lxc-container-default-with-nesting man_filter man_groff nvidia_modprobe nvidia_modprobe//kmod 0 profiles are in complain mode. 16 processes have profiles defined. 16 processes are in enforce mode. /usr/sbin/ntpd (1004) /usr/lib/systemd/systemd (836) lxc-container-default-with-cdrom /usr/lib/systemd/systemd-journald (881) lxc-container-default-with-cdrom /usr/lib/systemd/systemd-resolved (914) lxc-container-default-with-cdrom /usr/sbin/cron (916) lxc-container-default-with-cdrom /usr/bin/dbus-daemon (917) lxc-container-default-with-cdrom /usr/bin/python3.8 (919) lxc-container-default-with-cdrom /usr/sbin/rsyslogd (920) lxc-container-default-with-cdrom /usr/lib/systemd/systemd-logind (922) lxc-container-default-with-cdrom /usr/sbin/agetty (927) lxc-container-default-with-cdrom /usr/sbin/agetty (928) lxc-container-default-with-cdrom /usr/sbin/agetty (929) lxc-container-default-with-cdrom /usr/sbin/agetty (930) lxc-container-default-with-cdrom /usr/sbin/agetty (931) lxc-container-default-with-cdrom /usr/sbin/sshd (932) lxc-container-default-with-cdrom /usr/sbin/exim4 (944) lxc-container-default-with-cdrom 0 processes are in complain mode. 0 processes are unconfined but have a profile defined.
Une question demeure, comment les autres profils lxc sont-ils chargés sans que cette ligne d'include soit active dans le fichiers de configuration.
Et j'ai la réponse finalement:
le profil arrive plus tard que les profils par défaut et n'est pas traité de la même façon. Si je copie le fichier de profil dans le répertoire /etc/apparmor.d/lxc/ avant d'installer eole-lxc-controller et ssmtp, à la fin de l'installation il est bien chargé comme les autres.
Et finalement pour resoudre le problème, il n'y a même pas besoin de redémarrer le démon apparmor:
après l'installation, faire la commande suivante suffit (mercci au postinst du paquet liblxc-common ;-) ):
apparmor_parser -r -T -W /etc/apparmor.d/lxc-containers
aa-status (ou apparmor_status) confirme que 18 profiles sont chargés dont lxc avec cdrom
#11 Mis à jour par Joël Cuissinat il y a environ 3 ans
Bizarrement, jenkins dit que ça passait jusqu'à la semaine dernière : https://dev-eole.ac-dijon.fr/jenkins/job/2.8.1/job/test-eolebase-lxc-001-2.8.1-amd64/
#12 Mis à jour par Laurent Flori il y a environ 3 ans
- Statut changé de En cours à Résolu
- % réalisé changé de 0 à 100
Appliqué par commit eole-common:aaba38fd7b62499566c75f397583b43e7762df23.
#13 Mis à jour par Fabrice Barconnière il y a presque 3 ans
OK
------------------------------------------------------------------------ Lancement des conteneurs ------------------------------------------------------------------------ Start Systemd service lxc-net [ OK ] Start Systemd service lxc [ OK ]
#14 Mis à jour par Fabrice Barconnière il y a presque 3 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0