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 [12/07/2018 10:49]
captnfab [Utilisation du conteneur]
doc:autres:vm:lxc:mode-utilisateur [12/07/2018 11:28]
captnfab [Préparation]
Ligne 81: Ligne 81:
 Il faut activer certaines fonctionnalités des cgroups pour que l'on puisse lancer les conteneurs utilisateurs. Il faut activer certaines fonctionnalités des cgroups pour que l'on puisse lancer les conteneurs utilisateurs.
  
 +== Configuration du noyau ==
 Vérifier que le fichier ''/​sys/​fs/​cgroup/​cpuset/​cgroup.clone_children''​ est bien à 1 par défaut sur le système. Vérifier que le fichier ''/​sys/​fs/​cgroup/​cpuset/​cgroup.clone_children''​ est bien à 1 par défaut sur le système.
 <code root>cat /​sys/​fs/​cgroup/​cpuset/​cgroup.clone_children</​code>​ <code root>cat /​sys/​fs/​cgroup/​cpuset/​cgroup.clone_children</​code>​
Ligne 95: Ligne 96:
 <code root>​sysctl --sys</​code>​ <code root>​sysctl --sys</​code>​
  
 +== Création des cgroups ==
 +Pour l'​instant,​ les cgroups nécessaires ne sont pas créés par défaut. Créer les fichiers suivant :
 +<code bash /​usr/​local/​sbin/​prepare-lxc-cgroups>#​!/​bin/​sh
 +LXC_USERS=$(cat /​etc/​lxc/​lxc-users)
 +for d in /​sys/​fs/​cgroup/​*
 +do
 +  f=$(basename $d)
 +  if [ "​$f"​ = "​cpuset"​ ]
 +  then
 +    echo 1 > $d/​cgroup.clone_children;​
 +  elif [ "​$f"​ = "​memory"​ ]
 +  then
 +    echo 1 > $d/​memory.use_hierarchy;​
 +  fi
 +  for u in $LXC_USERS
 +  do
 +    mkdir -p $d/$u
 +    chown -R $u $d/$u
 +  done
 +done
 +</​code>​
 +et
 +<code bash /​usr/​local/​bin/​move-pid-to-cgroup>#​!/​bin/​sh
 +PID=$1
 +for d in /​sys/​fs/​cgroup/​*
 +do
 +        echo $PID > $d/​$USER/​tasks
 +done</​code>​
 +à rendre exécutables :
 +<code root>​chmod a+x /​usr/​local/​sbin/​prepare-lxc-cgroups
 +chmod +x /​usr/​local/​bin/​move-pid-to-cgroup</​code>​
 +
 +== Accès ==
 +Et rajouter ''​lxcuser-test''​ dans le fichier ''/​etc/​lxc/​lxc-users''​. S'il y a plusieurs utilisateurs,​ ils doivent être séparés par un espace.
 +<code ini /​etc/​lxc/​lxc-users>​lxcuser-test</​code>​
 +
 +== Automatisation ==
 +Que l'on lancera automatiquement via systemd en créant ce service :
 +<code ini /​etc/​systemd/​system/​lxc-cgroups.service>​
 +[Unit]
 +Description=Préparation cgroups pour lxc
 +After=local-fs.target
 + 
 +[Service]
 +Type=oneshot
 +RemainAfterExit=yes
 +ExecStart=/​usr/​local/​sbin/​prepare-lxc-cgroups
 +  ​
 +[Install]
 +WantedBy=multi-user.target
 +</​code>​
 +
 +Et en l'​activant :
 +<code root>​systemctl enable /​etc/​systemd/​system/​lxc-cgroups.service
 +systemctl daemon-reload
 +systemctl start lxc-cgroups</​code>​
  
 ===== Création du conteneur ===== ===== Création du conteneur =====
Ligne 167: Ligne 224:
 ===== Utilisation du conteneur ===== ===== Utilisation du conteneur =====
  
-Pour l'​instant,​ les cgroups nécessaires ne sont pas créés par défaut. ​Il faut, en tant que ''​lxcuser-test'', ​lancer ​le script suivant avant de lancer ​le conteneur. +Il faut, en tant que ''​lxcuser-test'', ​et dans le shell qui lancera ​le conteneur, exécuter la commande suivante (qui ajoutera le shell au cgroup) : 
-<code user>for d in /​sys/​fs/​cgroup/​* +<code user>move-pid-to-cgroup ​$$</​code>​
-do +
-        f=$(basename $d) +
-        echo "​looking at $f" +
-        if [ "​$f"​ = "​cpuset"​ ]; then +
-                echo 1 | sudo tee -a $d/​cgroup.clone_children;​ +
-        elif [ "​$f"​ = "​memory"​ ]; then +
-                echo 1 | sudo tee -a $d/​memory.use_hierarchy;​ +
-        fi +
-        sudo mkdir -$d/$USER +
-        sudo chown -R $USER $d/$USER +
-        echo $$ > $d/​$USER/​tasks +
-done</​code>​ +
  
   * Lancement   * Lancement
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