Projet

Général

Profil

Tâche #31932

Scénario #32000: Traitement express MEN (14-16)

Erreur lors du gen_conteneur en mode CDROM

Ajouté par Matthieu Lamalle il y a environ 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
15/03/2021
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

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

Lié à Distribution EOLE - Tâche #31933: Mettre à jour SC-T10 Fermé 15/03/2021

Révisions associées

Révision aaba38fd (diff)
Ajouté par Laurent Flori il y a environ 3 ans

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 #31861 supprimé

#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-13 supprimé

#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

#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

#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

Formats disponibles : Atom PDF