Tech-Thiel

Technik die nicht nur mich begeistert

Proxmox CM erstellen

Flott einen Container einrichten und schon kann es mit den neuen Projekt losgehen.

Grundlage für den Container sind Templates und diese muss man sich erst mal in sein Proxmox herunterladen. Bei der Installation wurde mindestens eines der vorhandenen Storages die Option gegeben Templates zu speichern.

Das können wir prüfen. Unter Datacenter (1) > Storage (2) und sehen hier in einer Zeile Container Templates (3). Das ist unser Storage.

Zu diesem wechseln wir also (1) und rufen CT Templates (2) auf. Mit Klick auf Templates (3) erhalten wir dann eine Liste der bekannten Templates.

Hier finden sich blanke Betriebssysteme oder auch Schlüsselfertige (Turnkey) Templates in denen z.B. bereits eine Nextcloud, ein WordPress oder ähnliches installiert ist. In der Regel verwende ich die Turnkey-Templates aber nicht, sondern installiere mir ein plain Ubuntu Container.

Das gewünschte Template markieren und dann Download anklicken. Nach einer kurzen Zeit ist das Template heruntergeladen.

Man kann Templates auch aus anderen Quellen besorgen – sei aber nur am Rande erwähnt. Ein Template kann natürlich beliebig oft genutzt werden, von Zeit zu Zeit lohnt es sich aber, nachzuschauen ob es eine aktueller Version des Templates gibt. Spart einem später etwas Zeit bei den Updates.

Gut … jetzt beginnt die eigentlich Einrichtung des Containers. Klick auf Create CT in der oberen rechten Ecke, startet den Dialog. Im Create-Dialog gibt es diverse Auswahlen zu treffen.

Node: Bei den meisten Hobbyisten wird es nur einen Node geben. Wenn es dann doch mehr sind, hier bitte die gewünschte Maschine auswählen.
CT ID: wird automatisch vergeben
Hostname: Der Hostname findet sich später an jeder möglichen Ecke wieder. Im Backend von Proxmox, in den Routereinstellungen und je nach Routertyp ist es auch die URL über die man den Server im Netzwerk erreichen kann. Der hier gewählte Name piholetest wird hinter einer Fritz Box also zu piholetest.fritz.box.
Unprivilged container: Ein unprivilegierter Container ist stärker vom Stammsystem abgeschotet. Das macht den Container aber auch das gesamte System einfach etwas sicherer. Sorgt aber im Umkehrschluss auch für Funktionale Einschränkungen. Zum Beispiel kann in dem Fall kein Netzlaufwerk gemountet werden. Ich erzeuge also Grundsätzlich nur priviligierte Container – man weiß ja nie was man braucht und hinterher ändern kann man das nämlich nicht mehr.
Resource Pool: keine Ahnung. Bleibt leer.
Password / Confirm Password / SSH Public Key: Für den Root Zugriff braucht man ein Passwort. Zusätzlich kann man auch eine SSH Schlüssel hinterlegen um den Zugriff abzusichern.

Mit Next geht es weiter.

Wir wählen den Storage aus, auf dem unser Template liegt und dann das gewünschte Tempalte (in meinem Fall also immer das aktuelle Ubunutu). Mit Klick auf Next geht es weiter.

Links lassen sich zusätzliche Speichermedien einfügen (nicht verstanden wozu das gut ist – für den Heim-Einsatz vermutlich egal). Unter Storage wählte man das gewünschte Laufwerk aus und mit Disk size wird der zur Verfügung gestellte Speicherplatz gewählt. Dieser kann später natürlich erweitert werden, von daher muss man hier nicht „zu großzügig“ sein. Im Default wird der Speicherplatz auch nicht reserviert. Bedeutet: Auf einer 100 GB Platte kann ich 10 Container einrichten die jeweils 100 GB Speicherplatz haben.

¯\_(ツ)_/¯

Mit Next kommen wir zu CPU. Hier kann man die Anzahl an Cores auswählen die der Container verwenden darf. Auch diese Zuordnung reserviert keine Ressourcen. Ich nehme daher immer das was geht. Also 4 Cores. Genauso bei Memory. Immer das Maximum.

Unter Network kann man der Maschine eine IP vergeben, oder man wählt DCHP aus. Dann wird beim Booten der Router eine IP-Adresse im lokalen Netzwerk erteilen. Wenn der Router keine lokale Namensauflösung (server.fritz.box) anbietet ist die Vergabe einer festen IP von Vorteile. So kann man die jeweilige Maschine immer unter der gleichen Adresse erreichen.

Nach meiner Erfahrung sind die IP-Adressen im lokalen Netzwerk aber auch bei der Verwendung von DCHP in der Regel statisch.

Unter DNS übernimmt man die Daten vom Host-System und ist schon auf der Zusammenfassung(Confirm). Hier setzen wir den Haken bei Start after create nicht und erzeugen mit Finsish den neuen Container.

Erscheint im Output die Ausgabe TASK OK ist der Container so gut wie fertig.

Jetzt noch schnell den Container auswählen (1) und die Features markieren (2) und über Edit bearbeiten (3). Nesting und Fuse aktiviere ich immer. NFS und SMB/CIFS nur wenn Laufwerke mounten möchte.

Eventuell aktiviere ich noch, das der Container beim Booten des Server automatisch mit gebootet werden soll und schon kann der Container über Start oben rechts gestartet werden.

Der erste Start dauert Erfahrungsgemäß einen Moment länger. Auch wenn die Maschine links im Menü schon mit einem grünen Haken versehen und somit eigentlich schon ready ist, einfach noch nen Moment warten. Kaffee oder Bier holen. Reine Erfahrung.

Dann auf die Console des Server wechseln und mit root und dem vergebenen Passwort einloggen.

Jetzt einen User anlegen:

adduser benutzername

Statt Benutzername natürlich den gewünschten Benutzernamen eintragen und Enter drücken. Es wird ein Passwort und ein paar weitere Angaben abgefragt. Damit der Nutzer Anwendung installieren kann muss ihm noch die Fähigkeit gegeben werden sudo auszuführen:

usermod -aG sudo benutzername

Fein … jetzt kann die Konsole geschlossen werden. Jetzt wird über die Windows Eingabeaufforderung oder der Linux Shell eine SSH-Verbindung aufgebaut.

ssh benutzername@container-ip-adresse

War die Eingabe korrekt, wird das Passwort abgefragt und man ist drin.

Jetzt erstmal alles auf dem aktuellen Stand bringen

sudo apt update && sudo apt upgrade

Jetzt ist der Container bereit um Software aller Art anzunehmen .. weiter gehts mit:


Erstellt / letzte Bearbeitung:

/