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:31] – marko | it-wiki:proxmox:lxccontainer [2023/10/06 03:19] (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 | ||
Zeile 249: | Zeile 265: | ||
<code bash> | <code bash> | ||
chmod +x /Pool1/Save | chmod +x /Pool1/Save | ||
- | </bash> | + | </code> |
Wenn wir den nächsten CT erstellen, steht nebst dem Orginal auch unser neues Template.tar.gz zur Verfügung. Im weiteren Verlauf werde ich ausschliesslich das eigene verwenden, dann muss ich nich jedes mal meine Pakete enspielen und die Konfig (dash, locale, tzdata, editor) sind auch bereits erledigt. | Wenn wir den nächsten CT erstellen, steht nebst dem Orginal auch unser neues Template.tar.gz zur Verfügung. Im weiteren Verlauf werde ich ausschliesslich das eigene verwenden, dann muss ich nich jedes mal meine Pakete enspielen und die Konfig (dash, locale, tzdata, editor) sind auch bereits erledigt. | ||
Zeile 257: | Zeile 273: | ||
<code bash> | <code bash> | ||
0 1 6 * * /Pool1/Save | 0 1 6 * * /Pool1/Save | ||
- | </bash> | + | </code> |
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.1528194664.txt.gz · Zuletzt geändert: 2018/06/05 10:31 von marko