logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:autres:vm:lxc:mode-utilisateur [09/12/2015 15:01]
captnfab [Préparation]
doc:autres:vm:lxc:mode-utilisateur [09/12/2015 19:35]
captnfab [Utilisation du conteneur]
Ligne 20: Ligne 20:
  
 Les outils de gestion lxc : Les outils de gestion lxc :
-<code root>​apt-get install lxc cgroup-bin</​code>​+<code root>​apt-get install lxc cgroup-bin ​uidmap</​code>​
  
 D'​autres outils normalement présents par défaut : D'​autres outils normalement présents par défaut :
Ligne 74: Ligne 74:
 </​code>​ </​code>​
  
 +==== Configuration cgroups ====
 +
 +Ceci n'est pas nécessaire sous Ubuntu, qui intègre des patchs spéciaux pour que ça marche d'​entrée de jeu (mais cause des problèmes dans d'​autres situations, comme par exemple l'​utilisation d'un noyau RT.)
 +
 +Créons les fichiers suivants :
 +<code bash /​usr/​local/​etc/​lxc-cgroups-user>​
 +# Liste des utilisateurs pouvant lancer des lxc
 +LXCUSERS="​lxcuser-test"​
 +</​code>​
 +
 +<code bash /​usr/​local/​sbin/​prepare-lxc-cgroups>​
 +#!/bin/sh
 +
 +. /​usr/​local/​etc/​lxc-cgroups-users
 +
 +for u in $LXCUSERS do
 +  cgm create all $u
 +  cgm chown all $u $(id -u $u) $(id -g $u)
 +done
 +</​code>​
 +
 +<code ini /​etc/​systemd/​system/​lxc-cgroups.service>​[Unit]
 +Description=Préparation cgroups pour lxc
 +After=local-fs.target cgmanager.service
 +Requires=cgmanager.service
 +
 +[Service]
 +Type=oneshot
 +RemainAfterExit=yes
 +ExecStart=/​usr/​local/​sbin/​prepare-lxc-cgroups
 +
 +[Install]
 +WantedBy=multi-user.target</​code>​
 +
 +<code root>​chmod a+x /​usr/​local/​sbin/​prepare-lxc-cgroups
 +systemctl enable /​etc/​systemd/​system/​lxc-cgroups.service</​code>​
 ===== Création du conteneur ===== ===== Création du conteneur =====
  
Ligne 85: Ligne 121:
 === Configuration des options par défaut === === Configuration des options par défaut ===
  
 +Dans le dossier ''​~lxcuser-test/​.config/​lxc/''​ (probablement à créer), créer un fichier ''​default.conf''​ contenant la configuration suivante :
 <code ini ~lxcuser-test/​.config/​lxc/​default.conf>​lxc.network.type = veth <code ini ~lxcuser-test/​.config/​lxc/​default.conf>​lxc.network.type = veth
 lxc.network.link = lxcbr0 lxc.network.link = lxcbr0
Ligne 92: Ligne 129:
 lxc.id_map = u 0 624288 65536 lxc.id_map = u 0 624288 65536
 lxc.id_map = g 0 624288 65536</​code>​ lxc.id_map = g 0 624288 65536</​code>​
-Remplacer //624288// sur les deux dernières lignes par les valeurs du premier sous-uid/​gid alloué à votre utilisateur.+Remplacer //624288// sur les deux dernières lignes par les valeurs du premier sous-uid/​gid alloué à l'utilisateur.
  
 +<code user>​lxc-create -t download -n test -- -d debian</​code>​
  
 ==== Méthode root + chown ==== ==== Méthode root + chown ====
  
-Dans +<code user>​mkdir -p ~/​.local/​share/​lxc</​code>​ 
-[code=root]+ 
 +<code root>​lxc-create -t debian -n test -- -d debian 
 +mv /​var/​lib/​lxc/​test ~lxcuser-test/​.local/​share/​lxc/​ 
 +chown lxcuser-test ~lxcuser-test/​.local/​share/​lxc/​test{,/​*} 
 +find ~lxcuser-test/​.local/​share/​lxc/​test/​rootfs/​ -exec sh -c 'chown $(echo $(stat -c %u "​{}"​)+624288 | bc):$(echo $(stat -c %g "​{}"​)+624288 | bc) "​{}"'​ \; 
 +</​code>​ 
 +En remplaçant 624288 par les numéro initiaux des plages de sous-uid/​gid respectifs de votre user.
 ===== Utilisation du conteneur ===== ===== Utilisation du conteneur =====
  
 +<code user>cgm modepid all lxcuser-test $$
 +lxc-start -n test -d</​code>​
 ===== FAQ / Problèmes rencontrés ===== ===== FAQ / Problèmes rencontrés =====
 +Messages d'​erreur rencontrés en lançant les différentes commandes du tuto, ou encore journalctl -xe
 +
 +  * ''​lxc_container:​ Failed to chown /​dev/​pts/​X''​
 +Vérifier que le paquet ''​uidmap''​ est bien installé
 +
 +  * ''​pam_unix(sudo:​auth):​ conversation failed'',​ ''​pam_unix(sudo:​auth):​ auth could not identify password for [lxcuser-test]''​
 +Vérifier que l'on s'est bien connecté en tant que lxcuser-test via PAM (par exemple via ssh et non-pas par su/sudo)
 +
 +  * ''​ERROR ​   lxc_cgfs - Permission denied - Could not create cgroup '/​test'​ in '/​sys/​fs/​cgroup/​perf_event'​.'',​ ''​lxc_container:​ cgfs.c: lxc_cgroupfs_create:​ 956 Permission denied - Could not create cgroup '/​lxc'​ in '/​sys/​fs/​cgroup/​cpuset'​.''​
 +Vérifier que nous ne sommes pas à la racine dans les cgroups listés dans ''/​proc/​self/​cgroup''​
 +Exemple de config problématique :
 +<​code>​8:​perf_event:/​
 +7:blkio:/
 +6:​net_cls,​net_prio:/​
 +5:freezer:/
 +4:devices:/
 +3:​cpu,​cpuacct:/​
 +2:cpuset:/
 +1:​name=systemd:/​user.slice/​user-1001.slice/​session-42.scope</​code>​
 +
 +Ce problème survient quand libpam-systemd (qui ajoute automatiquement les nouvelles connexions aux bons cgroups) n'est pas installé, où quand les cgroups users ne sont pas créés dans les différents contrôleurs,​ ce qui est peut-être le comportement par défaut sous Debian ?
 +
 +  * ''​lxc_container:​ cgmanager.c:​ lxc_cgmanager_enter:​ 698 call to cgmanager_move_pid_sync failed: invalid request''​
 +Muh ? Visiblement,​ problème avec une version cgmanager trop récente (stretch/​sid et non jessie)
doc/autres/vm/lxc/mode-utilisateur.txt · Dernière modification: 18/11/2020 20:51 par captnfab

Pied de page des forums

Propulsé par FluxBB