Archiv nach Schlagworten: Proxmox

Proxmox/LXC Mount lokale Ordner in Unprivileged Container

Es gibt mehrere Gründe, warum man lokale Ordner in einen LXC Container mounten muss. Zb:

  • Im Backup ausschließen
  • zwischen LXC teilen

Ich habe keine offizielle oder inoffizielle Dokumentation gefunden welche meinen Vorgehensweise dokumentiert (Stand: 09/2019), daher unter Vorbehalt behandeln!

Umsetzung

Proxmox # pct stop 100

Proxmox # mkdir /opt/mountdir
Proxmox # pct set 100 -mp0 /opt/lxc/100/mountdir,mp=/opt/mountdir
Proxmox # pct start 100

LXC # ls -la /opt/mountdir
      drwxr-xr-x  9 nobody nogroup  4096 Sep 20 20:01 /opt/mountdir

Proxmox # chown -R 100000:100000 /opt/lxc/100/mountdir/

LXC # ls -la /opt/mountdir
      drwxr-xr-x  9 root root  4096 Sep 20 20:01 /opt/mountdir

Hinweise

  • Das Ganze funktioniert auch mit anderen UID/GID. Im Grunde 100000+UID/GID. Also UID 1001 wäre dann 101001.
  • Die UID/GID müssen nicht im Host-System vorhanden sein! LXC mappt die intern korrekt.
  • Ab diesem Moment kann man die Berechtigung auch innerhalb der VM korrekt setzen!

Relevante Host Konfiguration

Die folgenden Einstellungen im Proxmox-Linux dürften relevant sein, diese sollten aber von Proxmox bei der Installation vorgenommen worden sein!

cat /etc/subuid<br>root:100000:65536<br><br>cat /etc/subgid<br>root:100000:65536

Weiterführende Literatur

Die Lösungsansätze sind anders wie bei mir!
Aber als weiterführende Literatur hilfreich.

https://wiki.archlinux.org/index.php/Linux_Containers#Enable_support_to_run_unprivileged_containers_(optional)

https://pve.proxmox.com/wiki/Unprivileged_LXC_containers

Proxmox: LXC – Container Speicherplatz verkleinern

Wer schon einmal versucht hat, den Speicherplatz eines LXC-Containers unter Proxmox zu verändern, wird überrascht feststellen, dass man zwar Speicherplatz hinzufügen, jedoch nicht entfernen kann.
Beispiel: 50GB root-Partition soll auf 30GB verringert werden ..

Das klappt tatsächlich nur über ein löschen und neu anlegen des Containers!

Hier ein Einzeiler dafür:


pct stop 244 \
; vzdump 244 -storage local -compress lzo \
&& pct destroy 244 \
&& pct restore 244 $(ls -tr /var/lib/vz/dump/vzdump-*-244-*.tar.lzo | tail -n1) --rootfs local:8 \
&& pct start 244

mit „–rootfs local:8“ gibt man die neue Größe in GB an.

[Proxmox] V4 – Befehl in jedem LXC-Container ausführen

Ich habe einen Quick-and-Dirty Weg gefunden, einen Befehl in sämtlichen (laufenden!) LXC-Container auszuführen.

Auf dem Proxmox-Host-System:

cd /etc/pve/lxc
for host in $(ls | cut -d "." -f 1); do echo -n "$host : "; pct exec $host MEINBEFEHL; done

Beispiel: (in einer Zeile, zur lesbarkeit untereinander)
for host in $(ls | cut -d "." -f 1); do\
    echo -n "$host : "; \
    pct exec $host mv /usr/lib/check_mk_agent/plugins/apt /usr/lib/check_mk_agent/plugins/14400/;\
done

In meinem Beispiel würde das check-mk Plugin apt auf in allen Containern in das (bestehende) Unterverzeichnis 14400 verschoben werden.

Tipp: Falls ihr einen Befehl mit Parametern ausführen wollt müsst ihr das mitteilen!

for host in $(ls | cut -d "." -f 1); do echo -n "$host : "; pct exec $host -- MEINBEFEHL; done

Beachtet das „–„