Linux mit opsi installieren

Dieses Kapitel beschreibt, wie Sie verschiedene Linux-Distributionen auf einem bisher nicht mit einem Betriebssystem ausgestatteten Computer per opsi installieren. Als Client-Rechner eignen sich physische Computer oder virtuelle Rechner mit den folgenden Voraussetzungen:

  • 2 GByte RAM; Ubuntu 22.04: mindestens 4 GByte RAM

  • Netzwerkkarte mit Netzboot-Unterstützung (Unterstützung des PXE-Protokolls zum Laden von Bootmedien via Netzwerk)

Überprüfen Sie die Einstellungen im BIOS. Netzboot muss aktiviert sein und an erster Stelle der Bootoptionen stehen, damit Sie Linux per opsi installieren können.

Grundsätzlich gibt es zwei verschiedene Wege:

Netboot-Produkte (Installer der Distribution)

Zunächst geht es die distributionseigenen Installer. Ähnlich wie bei der Windows-Installation, stellt opsi für den Installer eine Antwortdatei bereit, die er dann für die nicht-interaktive Installation nutzt.

Der distributionseigene Installer ist kein eigentliches Programm, das opsi dann aufruft. Stattdessen handelt es sich um eine Kombination aus Kernel und initrd der Distributionen.

Die grundsätzliche OS-Installation, inklusive Partitionierung, LVM, Basissoftware usw., liegt in der Hand des Installers und findet nach dem Start des opsi-Linux-Bootimages statt. Wie Sie die Installations-Quellen bereitstellen, hängt unter anderem von der Linux-Distribution ab bzw. von dem opsi-Netboot-Paket ab:

  • Debian-basierte Distributionen (Debian, Ubuntu): Diese Distributionen verwenden die Installations-Quellen aus dem Netz. In der Depot-Freigabe liegen lediglich die Netboot-Versionen der Kernel und der dazugehörigen initrd-Dateien. Da diese Dateien nicht besonders viel Platz benötigen, sind sie Teil des opsi-Paketes. Ausnahmen sind:

    • Ubuntu 22.04: Das Paket ubuntu22-04 erwartet ein ISO-Image im Produkt-Unterverzeichnis iso.

    • Linux Mint: Ab Version 4.2.0.2-1 erwarten die Netboot-Pakete ein ISO-Image im Produkt-Unterverzeichnis iso.

  • SUSE- und Red-Hat-basierte Distributionen: Benutzer stellen die Installations-Quellen bereit und legen dazu ein ISO-Image auf dem Depot-Share ab.

Installieren Sie nicht nur das Betriebssystem, sondern auch gleich den Linux-Client-Agent, um den neuen Client mit opsi zu verwalten.

Ablauf der Installation

So sehen die einzelnen Schritte bei der Installation mit dem distributionseigenen Installer und dem opsi-Netboot-Produkt aus:

  1. Sie booten das opsi-Linux-Bootimage; dieses löscht eventuell vorhandene Partitionstabellen und erstellt eine kleine, temporäre Hilfspartition.

  2. Das opsi-Linux-Bootimage holt sich das initrd der Distribution und entpackt es in der Hilfspartition.

  3. Das opsi-Linux-Bootimage holt sich die generische Vorlage für die Antwortdatei, passt diese an (personalisiert sie) und legt sie ins initrd-Verzeichnis.

  4. Danach erzeugt das Bootimage weitere Skripte und Konfigurationsdateien (z. B. zur Installation des Client-Agent) und speichert sie ebenfalls im initrd-Verzeichnis.

  5. Das angepasste initrd-Verzeichnis wird wieder zusammengepackt.

  6. Das opsi-Linux-Bootimage bootet den Distributions-Kernel mit dem gepatchten initrd per kexec.

  7. Das so geladene System installiert das Zielsystem unattended und installiert abschließend den opsi-linux-client-agent.

Die Vorteile dieses Vorgehens sind:

  • Die Installation findet exakt gemäß den Distributions-Anforderungen statt. Besonders in Unternehmen mit Supportverträgen kann das besonders wichtig sein.

  • Die Integration neuer Releases in opsi wird einfacher und dadurch schneller.

  • Bei den SUSE- und Red-Hat-basierten Distributionen, bei Linux Mint und Ubuntu 22.04 findet die Installation aus Quellen statt, die auf dem opsi-Server liegen. Das ist schneller und unempfindlicher gegen Störungen als die Installation über Internet-Repositorys.

Installations-Medien per WebDAV

SUSE- und Red-Hat-basierte Distributionen, Linux Mint und Ubuntu 22.04 benötigen die offiziellen Installations-Medien auf dem opsi-Depotserver. Speichern Sie diese Daten im Unterverzeichnis iso bzw. isocontent des jeweiligen Netboot-Produktes (/var/lib/opsi/depot) ab:

  • iso: Hier gehört ein ISO-Image hin.

  • isocontent: Hier liegt der Inhalt eines ISO-Images (ähnlich wie im installfiles-Verzeichnis eines Windows-Netboot-Paketes).

Um den Inhalt eines solchen ISO-Images bereitzustellen, mounten Sie dieses temporär, kopieren rekursiv die Daten sowie die beiden versteckten Dateien .treeinfo und .discinfo. Anschließend hängen Sie das gemountete ISO wieder aus. Für das Produkt sles15-3 sieht das beispielsweise so aus:

mount SLE-15-SP3-Full-x86_64-GM-Media1.iso /mnt
cp -r /mnt/* /var/lib/opsi/depot/sles15-3/isocontent/
cp /mnt/.treeinfo /var/lib/opsi/depot/sles15-3/isocontent/
cp /mnt/.discinfo /var/lib/opsi/depot/sles15-3/isocontent/
umount /mnt
Die Datei .discinfo ist nicht bei allen Distributionen vorhanden.

Allgemeine Propertys

Wenn Sie in der Management-Oberfläche opsi-configed ein Netboot-Produkt auswählen, können Sie im rechten Fensterbereich die Propertys einblenden:

Propertys der Linux-Netboot-Produkte (hier: *debian12*)
Abbildung 1. Propertys der Linux-Netboot-Produkte (hier: debian12)

In den aktuellen Netboot-Produkten zur Linux-Installation gibt es unter anderem die folgenden Propertys:

  • architecture: Mit welcher Architektur soll das Zielsystem installiert werden? Das beeinflusst außerdem das verwendete Boot-Image. (Default: 64bit)

  • askbeforeinst: Soll das Starten der Installation am Client bestätigt werden müssen? (Default: true)

  • console_keymap: Legt das Tastatur-Layout fest, nicht unter ubuntu22-04. (Default: de bzw. von Distribution abhängig)

  • language oder locale: Bestimmt die zu installierende Sprache (locale). (Default: de DE bzw. von Distribution abhängig)

  • timezone: Legt die Zeitzone des Linux-Systems fest. (Default: Europe/Berlin)

  • root_password: Setzt das Passwort für root. (Default: linux123)

  • user_name: Hier steht der Name des nicht-privilegierten Benutzers ohne root-Rechte. (Default: user)

  • user_password: Setzt das Passwort für den Account user. (Default: linux123)

  • proxy: Falls erforderlich, tragen Sie hier die Adresse des Proxyservers ein (http://<ip>:<port>).

  • setup_after_install: Tragen Sie hier eine Liste von opsi-Produkten ein, die im Anschluss an die OS-Installation auf setup gestellt werden sollen.

  • install_opsi-client-agent: Installiert gleichzeitig den Linux-Client-Agent. (Default: true)

Der Linux-Client-Agent ist eine kostenpflichtige Erweiterung. Das heißt, dass Sie eine Freischaltdatei benötigen. Sie erhalten diese, nachdem Sie die Erweiterung gekauft haben. Zu Evaluierungszwecken stellen wir Ihnen kostenlos eine zeitlich befristete Freischaltung zur Verfügung. Bitte kontaktieren Sie uns dazu per E-Mail.

Debian, Ubuntu und Linux Mint

Aktuell stehen die folgenden Netboot-Produkte für Debian, Ubuntu und Linux Mint zur Verfügung: debian, debian12, debian11, debian10, ubuntu, ubuntu22-04, ubuntu20-04, mint21-2, mint21-1, mint21, mint20-3, mint20-2 und mint20-1 (siehe opsi-Client: unterstützte Linux-Distributionen).

Diese Distributionen verwenden die Installations-Quellen aus dem Netz. Ausgenommen sind ubuntu22-04 und die Linux-Mint-Netboot-Produkte: Sie erwarten zusätzlich ein ISO-Image im Produkt-Unterverzeichnis iso.

Wegen des bei Ubuntu 22.04 verwendeten Installers sind nicht alle oben aufgeführten Propertys im Netboot-Produkt enthalten.

Die Produkte für Debian-basierte Distributionen haben die folgenden zusätzlichen Propertys:

  • online_repository: Hier steht das Repository der Distribution für die Installation.

  • encrypt_password: (nicht unter ubuntu22-04) Tragen Sie hier ein Passwort für die Festplatten-Verschlüsselung ein; Voraussetzung: encrypt_logical_volumes=true. (Default: linux123)

  • installation method: Hier steht die Installations-Methode; funktioniert nur mit der UEFI Erweiterung. (Default: kexec) Mögliche Werte:

    • reboot: Es wird eine kleine Partition angelegt, und der Installer wird nach einem Reboot von dieser Partition gestartet.

    • kexec: Das opsi-Linux-Bootimage startet den Installer direkt per kexec; es erfolgt kein Reboot.

  • partition_disk: (nicht unter ubuntu22-04) Tragen Sie die zu verwendende Festplatte ein, entweder first oder den kompletten Gerätenamen, z. B. /dev/sda, /dev/sdb usw. (Default: first)

  • preseed: Hier steht die zu verwendende Auto-Installationsdatei; sie befindet sich im Produktverzeichnis im Ordner custom. Unter ubuntu22-04 steht hier autoinstall, ansonsten sind Werte wie auto, raid.cfg, raid.yml usw. möglich. (Default: auto)

  • partition_method: Wählen Sie die Methode zur Partitionierung der Festplatte. (Default: lvm) Mögliche Werte sind:

    • regular: Standard-Partitionierung (unter ubuntu22-04: direct)

    • lvm: LVM-System einrichten (Logical Volume Manager)

    • crypto: LVM in einer verschlüsselten Partition anlegen (nicht unter ubuntu22-04)

  • partition_recipe: Wählt ein Partitionierungs-Schema aus (nicht unter ubuntu22-04). (Default: atomic) Mögliche Werte sind:

    • atomic: alle Daten in einer einzigen Partition

    • home: separate Partition für die Home-Verzeichnisse (/home)

    • multi: Aufteilung in mehrere Partitionen: /home, /usr, /var, und /tmp

  • desktop_package: Entscheiden Sie sich für eine Desktopumgebung (nur Debian/Ubuntu). Mögliche Werte: standard, ubuntu-desktop, kubuntu-desktop, lubuntu-desktop, xubuntu-desktop, ubuntu-gnome-desktop (Default: standard)

  • language_packs: (nicht unter ubuntu22-04) Installieren Sie zusätzliche Sprachen. Mögliche Werte: ar, bg, bg, by, cf, de, dk, en, es, et, fa, fi, fr, gr, il, it, kg, kk, lt, mk, nl, no, pl, ro, ru, sg, sr, ua, uk, us, wo (Default: de)

Univention Corporate Server (UCS)

Es gibt ein Netboot-Paket ucs50 für Univention Corporate Server (UCS) 5.0 (siehe opsi-Client: unterstützte Linux-Distributionen).

Die Basis-Installation bezieht die Pakete aus den offiziellen UCS-Repositorys. Sie können unser Netboot-Produkt dazu verwenden, eine der folgenden Servervarianten zu installieren:

  • Primary Directory (Domaincontroller Master)

  • Replica Directory Node (Domaincontroller Slave)

  • Backup Directory Node (Domaincontroller Backup)

  • Managed Node (Memberserver)

Wir empfehlen die Installation des Produktes l-opsi-server, um aus einem UCS-System einen opsi-Server zu machen.

Zusätzlich zu den eben genannten Serverrollen, ermöglicht dieses Produkt es auch, Clients über einen Memberserver zu installieren; dazu gibt es einige Besonderheiten zu beachten. Neben den in Abschnitt Debian, Ubuntu und Linux Mint genannten Eigenschaften besitzt das Produkt ucs50 die folgenden UCS-spezifischen Propertys:

  • dns_domain: Hier steht der DNS Domain Name, z. B. example.com. (Default: ucs.test)

  • ldap_base: Konfiguration des LDAP-Basisnamens, z. B. dc=example,dc=com. (Default: dc=ucs,dc=test)

  • ucs_code_name: Hier steht der Codename der UCS-Version, die im Online-Repository bereitgestellt wird. (Default: ucs501)

  • organisation: Hier steht der Name der Organisation, wie er in der UCS-Installation verwendet wird. (Default: uib gmbh)

  • windomain: Tragen Sie den Namen der Samba/Windows-Domäne ein. (Default: MYDOMAIN)

  • external_nameserver: Geben Sie einen externen Nameserver ein, entweder eine IP-Adresse (z. B. 10.11.12.13) oder auto (DHCP-Server ist zuständig). (Default: auto)

  • ucs_master_ip: Hier steht die IP-Adresse des Primary Directory (Domaincontroller Master); wird beim Joinen von den anderen Rollen verwendet. (Default: 10.10.10.10)

  • ucs_master_admin_password: Tragen Sie das Administrator-Passwort des UCS-Domaincontroller ein; wird beim Joinen von den anderen Rollen verwendet. (Default: linux123)

  • ucs_role: Definiert die Rolle des UCS-Servers, verwendet die ehemaligen Bezeichnungen. (Default: domaincontroller_master) Mögliche Werte sind:

    • domaincontroller_master: Primary Directory (Domaincontroller Master)

    • domaincontroller_backup: Backup Directory Node (Domaincontroller Backup)

    • domaincontroller_slave: Replica Directory Node (Domaincontroller Slave)

    • memberserver: Managed Node (Memberserver)

SLES und openSUSE

Aktuell stehen die folgenden Netboot-Produkte für SUSE Linux Enterprise Server (SLES) und openSUSE Leap zur Verfügung: sles15sp5, sles15sp4, sles15sp3, sles15sp2, sles15sp1, sles12sp5, sles12sp4, sles12sp3, opensusel15-5 und opensusel15-4 (siehe opsi-Client: unterstützte Linux-Distributionen).

Die SLES- und openSUSE-Netboot-Produkte haben die folgenden zusätzlichen Propertys:

name: productkey
multivalue: False
editable: True
description: email:regcode-sles for suse_register. Is only used if the  host parameter  `license-management.use` is set to  false . If it set to  True  the license key will be get from the license management module. / La clé de licence pour l'installation. Est utilisée uniquement si dans "Réseau et paramètres supplémentaires" `license-management.use` est défini à false (faux) . Si c'est réglé sur True (vrai) la clé de licence sera obtenue du module de gestion des licences.
values: ["", "myemail@example.com:xxxxxxxxxxxxxx"]
default: [""]

name: suse_register
description: set to false, if you don't want to register your system online, if you set this to false you have to give local repositories
default: True

name: local_repositories
multivalue: True
editable: True
description: list of local repositories to use. Syntax: "repository description", example entry: "http://sles.example.com/suse/repo NameForRepo"
values: [""]
default: [""]

name: install_unattended
description: If false then do interactive installation
default: True

Für diese Systeme legen Sie ein ISO-Image auf dem Depot-Share ab. Dazu laden Sie das Installationsmedium herunter, mounten es und kopieren den Inhalt ins Verzeichnis isocontent, z. B. nach /var/lib/opsi/depot/sles15-3/isocontent/ (siehe Abschnitt Installations-Medien per WebDAV). Führen Sie anschließend das Kommando opsi-set-rights aus.

Zum Herunterladen von SUSE Linux Enterprise Server (SLES) benötigen Sie zwingend einen Account beim Hersteller.

RHEL, AlmaLinux, Rocky Linux und Oracle Linux

Aktuell stehen die folgenden Netboot-Produkte für Red Hat Enterprise Linux (RHEL), AlmaLinux, Rocky Linux und Oracle Linux zur Verfügung: rhel9, rhel8, alma9, alma8, rocky9, rocky8, oraclelinux9 und oraclelinux8 (siehe opsi-Client: unterstützte Linux-Distributionen).

Diese Netboot-Produkte haben die folgenden zusätzlichen Propertys:

name: install_unattended
description: If false then do interactive installation
default: True

name: selinux_mode
multivalue: False
editable: False
description: In which mode should SELinux run ?
values: ["enforcing", "permissive", "disabled"]
default: ["permissive"]

name: partition_method
multivalue: False
editable: False
description: plain: Regular partitions with no LVM or Btrfs. / lvm: The LVM partitioning scheme. / btrfs: The Btrfs partitioning scheme. / thinp: The LVM Thin Provisioning partitioning scheme.
values: ["plain", "lvm", "btrfs", "thinp"]
default: ["lvm"]

name: productkey
multivalue: False
editable: True
description: email:regcode for subscription_register. Is only used if the  host parameter  `license-management.use` is set to  false . If it set to  True  the license key will be get from the license management module. / La clé de licence pour l'installation. Est utilisée uniquement si dans "Réseau et paramètres supplémentaires" `license-management.use` est défini à false (faux) . Si c'est réglé sur True (vrai) la clé de licence sera obtenue du module de gestion des licences.
values: ["", "myemail@example.com:xxxxxxxxxxxxxx"]
default: [""]

name: subscription_register
description: set to false, if you don't want to register your system online, if you set this to false you have to give local repositories
default: True

AlmaLinux

Laden Sie das passende ISO-Image herunter, z. B. von https://repo.almalinux.org/almalinux/. Mounten Sie es und kopieren den Inhalt ins Verzeichnis isocontent, z. B. nach /var/lib/opsi/depot/alma8/isocontent/. Führen Sie anschließend das Kommando opsi-set-rights aus.

Red Hat Linux Enterprise

Laden Sie das passende ISO-Image herunter, z. B. von https://developers.redhat.com/products/rhel/download. Mounten Sie es und kopieren den Inhalt ins Verzeichnis isocontent, z. B. nach /var/lib/opsi/depot/redhat8/isocontent/. Führen Sie anschließend das Kommando opsi-set-rights aus.

Zum Herunterladen von Red Hat Linux Enterprise (RHEL) benötigen Sie zwingend einen Account beim Hersteller.

Rocky Linux

Laden Sie das passende ISO-Image herunter, z. B. von https://rockylinux.org/download/. Mounten Sie es und kopieren den Inhalt ins Verzeichnis isocontent, z. B. nach /var/lib/opsi/depot/rocky8/isocontent/. Führen Sie anschließend das Kommando opsi-set-rights aus.

Oracle Linux

Laden Sie das passende ISO-Image herunter, z. B. von https://yum.oracle.com/oracle-linux-isos.html. Mounten Sie es und kopieren den Inhalt ins Verzeichnis isocontent, z. B. nach /var/lib/opsi/depot/oraclelinux9. Führen Sie anschließend das Kommando opsi-set-rights aus.

Netboot-Produkte (generischer Installer)

Der Ablauf der Installation ist etwas anders als bei den distributionseigenen Installern: Zunächst wird per Netboot das opsi-Linux-Bootimage gebootet, das auch für die Installation von Windows-Rechnern zum Einsatz kommt. Das Bootimage bringt auch ein Werkzeug zum Partitionieren der Festplatte des neuen Clients mit; es richtet eine Root- (/) und eine Swap-Partition (/swap) ein und formatiert diese. Danach erfolgt die Installation des Grundsystems (mit Netzwerkkonfiguration und SSH, aber ohne grafische Oberfläche).

Die Installation des Grundsystems verläuft bei den einzelnen Distributionen jeweils anders. Allen gemeinsam ist, dass jeweils die Originalpakete der Distribution installiert werden.

Optional können Sie direkt im Anschluss den Client-Agent installieren, der sich um das Einspielen und Konfigurieren weiterer Software kümmert.

Je nach Distribution konfigurieren Sie weitere Komponenten nach dem ersten Booten des Linux-Rechners. Das betrifft beispielsweise die Sicherheitsarchitektur SELinux bei den Red-Hat-basierten Systemen oder die Tastatur bei Debian-basierten Distributionen. Diese Aufgaben übernimmt das Localboot-Produkt l-os-postinst.

Allgemeine Propertys

Die folgenden Propertys steuern die Linux-Installationen in allen Netboot-Produkten:

  • architecture: Mit welcher Architektur soll das Zielsystem installiert werden? Das beeinflusst außerdem das verwendete Boot-Image. (Default: 64bit)

  • askbeforeinst: Soll das Starten der Installation am Client bestätigt werden müssen? (Default: true)

  • system_partition_size: Wie groß soll die System-Partition sein? Sie können die Größe prozentual oder als absoluten Wert angeben (G = GByte). Wenn Sie weniger als 100 % angeben, wird der verbleibende Rest als Daten-Partition verwendet (Property data_partion_create muss true sein). (Default: 100%)

  • swap_partition_size: Geben Sie die Größe der Swap-Partition an. (Default: 2000M)

  • data_partition_create: Wenn true, wird eventuell verbleibender freier Festplattenplatz zum Erstellen einer Daten-Partition verwendet. (Default: true)

  • data_partition_preserve: Soll eine bereits bestehende Daten-Partition erhalten bleiben? (Default: never) Mögliche Werte sind:

    • always: Installation abbrechen, wenn das Erhalten einer existierenden Partition mit dem Label data mit den angegebenen Partitionierungs-Daten nicht möglich ist.

    • if_possible: Wird eine Partition mit dem Label data gefunden, und ist das Erhalten dieser Partition mit den angegebenen Partitionierungs-Daten nicht möglich, so wird die Partition gelöscht.

    • never: Die gesamte Partitions-Tabelle wird stets neu geschrieben.

  • language: Bestimmt die zu installierende Sprache (Default: de)

  • console_keymap: Legt das Tastatur-Layout fest. (Default: de bzw. von Distribution abhängig)

  • timezone: Welche Zeitzone soll das Linux-System haben? (Default: Europe/Berlin)

  • root_password: Setzt das Passwort für root. (Default: linux123)

  • user_password: Setzt das Passwort für den Account user. (Default: linux123)

  • online_repository: Welches Distributions-Repository soll für die Installation verwendet werden? (nicht bei SLES) (Default: distributionsabhängig)

  • proxy: Falls erforderlich, tragen Sie hier die Adresse des Proxyservers ein (http://<ip>:<port>). (Default: leer)

  • additional_packages: Welche zusätzlichen Pakete sollen installiert werden? Geben Sie die Pakete als durch Leerzeichen unterteilte Liste an. (Default: leer)

  • wget_and_execute: Geben Sie hier die URL einer Datei an, die nach dem Abschluss der Installation heruntergeladen und ausgeführt werden soll. (Default: leer)

  • install_opsi-client-agent: Installiert gleichzeitig den Linux-Client-Agent. (Default: true)

  • release: (nur Debian und Ubuntu) Welches Release der Distribution soll installiert werden? (Default: distributionsabhängig)

  • setup_after_install: Tragen Sie hier eine Liste von opsi-Produkten ein, die im Anschluss an die OS-Installation auf setup gestellt werden sollen. (Default: l-os-postinst)

Debian und Ubuntu

Die Installation des Grundsystems erfolgt per debootstrap direkt aus dem Internet.

debootstrap ist ein Tool, das ein Debian-Basissystem in ein Unterverzeichnis eines bestehenden Systems installiert. Es benötigt kein Installationsmedium oder ISO-Image, sondern nur Zugriff auf ein Debian-Repository.
  • Das Produkt hat produktiven Status.

  • Das Produkt ist UEFI/GPT-kompatibel.

  • Es gibt für diese Produkt passende opsi-Server-Pakete, die über das Property install_opsi_server=true installiert werden können.

Proxy für Debian-Pakete

Um Bandbreite zu schonen, können Sie einen Proxy mit Caching-Funktion wie etwa Apt-Cacher NG verwenden. Er speichert Debian-Pakete zwischen und eignet sich damit ideal für Umgebungen, in denen mehr als ein Rechner auf die gleichen Paketquellen zugreifen, also z. B. Debian, Ubuntu und Co. Wird ein Paket auf mehr als einem Client benötigt, muss es nur einmal aus dem Internet heruntergeladen werden.