[TS-453Be] LXC Ubuntu 20.04?

  • Guten Morgen zusammen!

    Ich nutze folgendes System:
    Containerstation: 2.2.14.1638 (2020/11/19)
    Qnap: TS-453BE / FW: 4.5.1.1495

    In der Container-Station bevorzuge ich LXC-Container, da dieser meiner Meinung nach am ehesten ein "natives Linuxsystem" darstellen.
    Derzeit läuft ein LXC Ubuntu 18.04 Server.
    Über "Erstellen">"Suchen">"LXC" findet man 4 LXC Images.
    Debian 10, Fedora 28 und Ubuntu 16.04 & 18.04.

    Nun würde ich gerne Ubuntu 20.04 in einem LXC-Container laufen lassen.

    Kann ich manuell ein LXC-Image hinzufügen? Oder kommt das über ein Update?

    Vielen Dank vorab!

    Schönen Gruß
    Michael

  • Also die einfachste Variante wäre vermutlich, wenn du dir einfach die Linux Station installierst. Denn die ist nix anderes als ein LXC Container mit einer erweiterten Konfiguration. Als Bonus bekommst du eine fertige Bridge Network Konfiguration mit dazu, das manuell unter QTS zu machen ist sonst nämlich ein echter Kampf und hat bei mir neulich dazu geführt, dass das NAS über LAN gar nicht mehr erreichbar war.

  • tuxflo:
    Danke für die Antwort.
    Hab es mir gerade angesehen und ausprobiert.
    Aber ich wünsche mir eigentlich nur einen schlanken Linux-Server den ich per Terminal bediene.
    Hier muss ich erst wieder alles deinstallieren und das System wirkt mir einfach zu "überladen".
    Und LXC im Bridge-Modus, also mit eigener IP im lokalen LAN funktioniert ohne Probleme.

  • Aber ich wünsche mir eigentlich nur einen schlanken Linux-Server den ich per Terminal bediene.

    Ok, wenn dem so ist, sollte dich auch nix davon abhalten dir einen 20.04 Container mit dem Kommandozeilentool zu erstellen:

    Code
     lxc-create -t download -n ubuntu -- --dist ubuntu --release focal --arch amd64
  • tuxflo : Danke für die Antwort.

    Leider habe ich diese Rückmeldung erhalten:

    Code
    [~] # lxc-create -t download -n ubuntu -- --dist ubuntu --release focal --arch amd64                                                                        
    /usr/local/container-station/lxc/share/lxc/templates/lxc-download: line 221: getopt: command not found
    lxc-create: /home/ubuntu/src/build/amd64/source/lxc-2.0.6/src/lxc/lxccontainer.c: create_run_template: 1290 container creation template for ubuntu failed
    lxc-create: /home/ubuntu/src/build/amd64/source/lxc-2.0.6/src/lxc/tools/lxc_create.c: main: 318 Error creating container ubuntu
    [~] # 


    Ich habe mich per ssh auf dem NAS eingeloggt:
    ssh admin@192.168.X.XXX
    PW eingegeben...

  • Also ich will ja nicht unhöflich sein, aber ich frage mich wie du einen LXC Container per Kommandozeile administrieren willst, wenn du die oben genannte Fehlermeldung nicht mal richtig interpretieren und ggf. beheben kannst...


    Aber selbst wenn man den oben genannten Fehler per opkg install getopt behebt, treten nur weitere Fehler auf, weil die LXC-Templates die QNAP liefert scheinbar ewig alt sind. Wie dem auch sei man kann trotzdem einen 20.04 Container erstellen in dem man sich ein das Template "local" zur Hilfe nimmt und ein wenig anpasst (das QNAP eigene tar kommt scheinbar mit J nicht zurecht)


    Hier eine "Schritt für Schritt Anleitung" welche im wesentlichen hierauf basiert https://ubuntu.com/tutorials/create-custom-lxd-images#3-creating-basic-system-installation:


    1. debootstrap installieren (opkg install debootstrap


    2. in ein temporäres Verzeichnis wechseln, wo man die Daten zwischenspeichern kann (ich habe /homes/admin gewählt) cd /share/CACHEDEV1_DATA/homes/admin/

    3. debootstrap starten um das rootfs zu initialisieren: debootstrap --arch=amd64 focal focal-lxc  (jetzt sind quasi alle Dateien der 20.04 Version im Ordner "focal-lxc")


    4. root passwort vergeben: chroot focal-lxc/ /bin/bash und dann per passwd ein neues Passwort setzen

    5. Das Root Dateisystem packen: tar -cvzf rootfs.tar.gz -C focal-lxc/ . 

    6. eine metadata.yaml Datei anlegen. Entweder von Hand oder man nimmt die, die auch bei der Linux Station mitgeliefert wird: cp /share/CACHEDEV1_DATA/.qpkg/ubuntu-hd/lxd-config/ubuntu-2004/metadata.yaml .  und passt sie dann entsprechend an vim metadata.yaml (der aktuelle Zeitstempel kann mit date +%s generiert werden.


    Inhalt der metadata.yaml:

    Code
    architecture: "x86_64"
    creation_date: 1606913739
    properties:
    architecture: "x86_64"
    description: "custom Ubuntu 2004"
    os: "ubuntu"
    release: "focal"


    7. eine config Datei anlegen: touch config

    8. metadata.yaml und config packen: tar -cvzf metadata.tar.gz metadata.yaml config 


    Bis hierher unterscheidet sich das Prozedere eigentlich nicht von der Erstellung eines normalen Images. Unter normalen Umständen würde man dann einfach das "locale" Template verwenden um aus dem Image einen Container zu erstellen. Qnap liefert das aber leider nicht mit, darum muss man sich hier selbst helfen...


    9. das Template lxc-local anlegen: hier mussten ein paar Änderungen vorgenommen werden, da der tar Befehl von QNAP das Flag J nicht kennt. Die Datei muss ohne die Endung .txt unter /usr/share/lxc/templates/lxc-local abgelegt werden und ausführbar gemacht werden (chmod +x /usr/share/lxc/templates/lxc-local


    10. Mit Hilfe des Templates kann es jetzt an die Erstellung des Containers gehen: lxc-create -t local -n ubuntu_focal -- --fstree rootfs.tar.gz --metadata metadata.tar.gz

    11. Nach Abschluss des Prozesses sollte der Container erstellt und nutzbar sein. Zum ersten start am besten im "Foreground" Modus (-F) starten: lxc-start -n ubuntu_focal -F



    Dann sollte sowas zu sehen sein:

    Code
    Ubuntu 20.04 LTS nas console
    
    nas login: 

    und man kann sich dann mit dem in Schritt 4 vergebenen Passwort als Benutzer root einloggen können.

  • Leider findet bei mir opkg das Package "debootstrap" gar nicht und ich erhalte folgende Fehlermeldung:

    Code
    # opkg install debootstrap
    Unknown package 'debootstrap'.
    Collected errors:
     * opkg_install_cmd: Cannot install package debootstrap.
  • Kannst du mal ein opkg update ausführen und danach mal schauen was opkg list | grep debootstrap ausgibt?

  • Das habe ich auch schon versucht. Allerdings gibt mit grep dann keine Treffer aus.

    Ich habe es anders gelöst und funktioniert prima.



    Weiterführende Links:

    - https://forum.qnap.com/viewtop…4&hilit=lxc+20.04#p780154

    - https://forum.qnap.com/viewtopic.php?t=131353

    - https://www.xmodulo.com/reset-password-lxc-container.html



    Anleitung:


    cd /var/lib/lxc


    # LXC Container herunterladen

    lxc-create -n ubuntu-focal-1 -t download

    # Eingabe von

    # Distribution : ubuntu

    # Release : amd64


    # LXC Container starten

    lxc-start -n ubuntu-focal-1


    # Container ist dann in ContainerStation als laufender Container sichtbar

    # Container stoppen und erneute starten. Nur so ist dann eine Verbindung auf Konsole ohne Eingabe von Passwort möglich

    sudo apt-get update

    # Ansonsten kommt es später beim Erstellen neuer Container aus dem Image zu Fehlermeldungen bzw. es könnte nicht

    # die Netzwerkkonfiguration geändert werden

    sudo apt-get install resolvconf

    sudo apt-get install openssh-server

    sudo apt-get dist-upgrade


    # LXC Container über ContainerStation beenden


    cd /share/Container/container-station-data/image/lxc


    # Original QNAP Ubuntu Bionic (18.04) Image als Basis kopieren

    sudo cp -rp ubuntu-bionic/ ubuntu-focal/

    sudo rm -r ubuntu-focal/image/rootfs

    sudo cp -rp /var/lib/lxc/ubuntu-focal-1/rootfs/ ubuntu-focal/image/rootfs/


    # Konfigurationsdateien für ContainerStation anpassen

    # Name der Ubuntu-Version und Versionsnummer

    vi ubuntu-focal/control


    # Name der Ubuntu-Version anpassen

    # lxc.utsname = ubuntu-focal

    vi ubuntu-focal/image/config


    # ContainerStation stoppen

    # ContainerStation starten

    # Anschließend ist neues Image unter Rubrik "Local" sichtbar und es können neue Container erstellt werden.


    # Passwort für User Ubuntu setzen, so dass ein Login über SSH mögich ist

    sudo vi /etc/shadow

    # Aus Zeile das "!"-Zeichen entfernen

    # ubuntu:!:0:99999:7:::

    # Neues Passwort setzen

    passwd

    2 Mal editiert, zuletzt von mikka123 ()