it-wiki:proxmox:lxccontainer
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
it-wiki:proxmox:lxccontainer [2018/06/05 10:32] – [Alternative feine Variante] marko | it-wiki:proxmox:lxccontainer [2025/06/22 09:46] (aktuell) – [LXC Container Template erstellen] marko | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== LXC Container ====== | ====== LXC Container ====== | ||
+ | * [[usb_passthrough|USB Device an Container durchreichen]]\\ | ||
+ | * [[hdd_passthrough|Festplatte an Container durchreichen]]\\ | ||
+ | * [[docker_in_lxc|Docker in einem LXC Container betreiben]]\\ | ||
+ | * [[apache_private_tmp|Apache permission denied]] | ||
+ | ===== Tastaturlayout und Locale setzen nach lxc Template installation ===== | ||
+ | <code bash> | ||
+ | dpkg-reconfigure locales | ||
+ | </ | ||
===== LXC Container Template erstellen ===== | ===== LXC Container Template erstellen ===== | ||
Zeile 11: | Zeile 19: | ||
rm / | rm / | ||
rm / | rm / | ||
+ | Puppet Agent Zertifikat bereinigen | ||
+ | <code bash> | ||
+ | On the master: | ||
+ | puppet cert clean template.tuxnet.lan | ||
+ | On the agent: | ||
+ | 1a. On most platforms: find / | ||
+ | 1b. On Windows: del " | ||
+ | </ | ||
- Container verlassen | - Container verlassen | ||
- In der Proxmox Webgui alle Netzwerkinterfaces des Containers entfernen | - In der Proxmox Webgui alle Netzwerkinterfaces des Containers entfernen | ||
- | - Über die Webgui ein Backup vom Container erstellen\\ Mode: Stop\\ Compression: | + | - Über die Webgui ein Backup vom Container erstellen\\ Mode: Stop\\ Compression: |
- Per SSH auf dem Proxmox Host in den allgemeinen Container Backupordner wechseln\\ Standardmäßig **/ | - Per SSH auf dem Proxmox Host in den allgemeinen Container Backupordner wechseln\\ Standardmäßig **/ | ||
- Das .tar.gz File muss in den richtigen Ordner für Container Templates geschoben werden\\ Standardmäßig **/ | - Das .tar.gz File muss in den richtigen Ordner für Container Templates geschoben werden\\ Standardmäßig **/ | ||
Zeile 260: | Zeile 276: | ||
Dieser CT wird natürlich nicht automatisch gestartet! | Dieser CT wird natürlich nicht automatisch gestartet! | ||
Und wir lassen ihn auch ausgeschaltet. | Und wir lassen ihn auch ausgeschaltet. | ||
+ | |||
+ | ==== Weitere Alternative ==== | ||
+ | |||
+ | === Software (nach)installieren === | ||
+ | |||
+ | Ich gehe hier davon aus, dass folgende Pakete bereits in einem der vorherigen Schritte Einzug auf dem Server gefunden haben: | ||
+ | * mdadm | ||
+ | * lvm2 | ||
+ | * xfsprogs | ||
+ | |||
+ | < | ||
+ | # aptitude install lxc | ||
+ | </ | ||
+ | |||
+ | === logisches Volume erstellen === | ||
+ | |||
+ | Ich gehe hier davon aus, dass folgende Voraussetzungen bereits in einem der vorherigen Schritte konfiguriert wurden: | ||
+ | * eine Netzwerkbrücke (z. B. " | ||
+ | * ein Software-RAID1 (z. B. "/ | ||
+ | * eine Volume-Gruppe für logische Volumen (z. B. " | ||
+ | |||
+ | < | ||
+ | # lvcreate -L2G -n lxc_template sys | ||
+ | </ | ||
+ | |||
+ | === Dateisystem erstellen und einhängen === | ||
+ | |||
+ | < | ||
+ | # mkfs.xfs -L template / | ||
+ | # mkdir / | ||
+ | # mount / | ||
+ | </ | ||
+ | |||
+ | === LinuX Container erstellen === | ||
+ | |||
+ | < | ||
+ | # lxc-create -n template -t debian -- -r jessie | ||
+ | </ | ||
+ | |||
+ | In der letzten Ausgabe des Befehls, erfährt man das root-Passwort für den Container. | ||
+ | |||
+ | Wer mag, kann es sich aufschreiben, | ||
+ | |||
+ | === LXC anpassen === | ||
+ | |||
+ | == Netzwerkkonfiguration == | ||
+ | |||
+ | < | ||
+ | # cat <<EOF >> / | ||
+ | lxc.network.type = veth | ||
+ | lxc.network.flags = up | ||
+ | lxc.network.link = br0 | ||
+ | lxc.network.ipv4 = 192.168.0.254/ | ||
+ | lxc.network.ipv4.gateway = 192.168.0.1 | ||
+ | lxc.network.hwaddr = 02: | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | == Debian Repository == | ||
+ | |||
+ | < | ||
+ | # cat <<EOF > / | ||
+ | deb http:// | ||
+ | deb http:// | ||
+ | deb http:// | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | === (mein persönliches) " | ||
+ | |||
+ | < | ||
+ | # wget https:// | ||
+ | -O / | ||
+ | # chown root:root / | ||
+ | # chmod 700 / | ||
+ | </ | ||
+ | |||
+ | == /etc/hosts == | ||
+ | |||
+ | < | ||
+ | # echo " | ||
+ | # cat / | ||
+ | # mv / | ||
+ | </ | ||
+ | |||
+ | == / | ||
+ | |||
+ | < | ||
+ | # mv / | ||
+ | # cp / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # sed ' | ||
+ | # mv / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # sed ' | ||
+ | # mv / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # sed ' | ||
+ | # mv / | ||
+ | </ | ||
+ | |||
+ | Die Zeile | ||
+ | < | ||
+ | PS1=' | ||
+ | </ | ||
+ | durch | ||
+ | < | ||
+ | PS1=' | ||
+ | </ | ||
+ | ersetzten (z. B. mit " | ||
+ | |||
+ | < | ||
+ | # sed " | ||
+ | # mv / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # sed " | ||
+ | # mv / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # echo ' | ||
+ | </ | ||
+ | |||
+ | == root-Passwort ändern == | ||
+ | |||
+ | < | ||
+ | # echo " | ||
+ | # passwd -R / | ||
+ | </ | ||
+ | |||
+ | == öffentlichen SSH-Schlüssel (ggf. erstellen und) integrieren == | ||
+ | |||
+ | Wenn man für root auf dem Host noch keinen SSH-Schlüsselpaar erzeugt hat, muss man es wie folgt nachholen: | ||
+ | < | ||
+ | # ssh-keygen -b 2048 -t rsa -N "" | ||
+ | </ | ||
+ | |||
+ | Danach kopieren wir den öffentlichen Schlüssel in den LXC, damit wir uns später per SSH vom Host aus im Gast anmelden können: | ||
+ | < | ||
+ | # cp / | ||
+ | </ | ||
+ | |||
+ | ===== LX Container convert privileged to unprivileged Container ===== | ||
+ | < | ||
+ | vzdump 204 --exclude-path / | ||
+ | pct restore 204 vzdump-lxc-204-2019_05_04-13_59_11.tar --storage pool2_ct --unprivileged | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | --- // |
it-wiki/proxmox/lxccontainer.1528194737.txt.gz · Zuletzt geändert: von marko