8 Konfiguration mit Ignition #
In diesem Abschnitt finden Sie Informationen zum Bereitstellungstool Ignition, mit dem ein Computer eingerichtet wird. Hier erfahren Sie, wie Sie die erforderlichen Konfigurationsdateien für die Computerdefinition bereitstellen.
8.1 Informationen zu Ignition #
Mit dem Bereitstellungstool Ignition können Sie ein System beim ersten Starten gemäß Ihrer Spezifikation konfigurieren. Wenn das System erstmalig gestartet wird, wird Ignition als Teil von initramfs geladen und sucht eine Konfigurationsdatei in einem bestimmten Verzeichnis (auf einem USB-Speicherstick; alternativ können Sie eine URL angeben). Alle Änderungen werden vorgenommen, bevor der Kernel vom temporären Dateisystem zum echten Root-Dateisystem wechselt (bevor der Befehl switch_root gegeben wird).
Ignition nutzt eine Konfigurationsdatei im JSON-Format. Die Datei trägt den Namen config.ign. Zur besseren Lesbarkeit für Menschen können Sie eine YAML-Datei erstellen und diese Datei in JSON konvertieren. Detaillierte Informationen finden Sie in Abschnitt 8.2.1, „Konvertieren der fcc-Datei (YAML) in ign (JSON)“.
8.2 config.ign #
Bei der Installation auf einem Bare-Metal-System muss sich die Konfigurationsdatei config.ign im Unterverzeichnis ignition auf dem Konfigurationsmedium mit der Bezeichnung ignition befinden. Die Verzeichnisstruktur muss wie folgt aussehen:
<root directory>
└── ignition
└── config.ign
Falls Sie einen virtuellen QEMU-/KVM-Computer konfigurieren möchten, geben Sie den Pfad zur Datei config.ign als Attribut des Befehls qemu an. Beispiel:
-fw_cfg name=opt/com.coreos/config,file=PATH_TO_config.ign
Die Datei config.ign enthält verschiedene Datentypen – Objekte, Zeichenketten, Ganzzahlen, Boolesche Werte und Objektlisten. Eine vollständige Spezifikation finden Sie in der Ignition-Spezifikation 3.3.0.
Das Attribut version ist obligatorisch und muss bei SLE Micro entweder auf 3.3.0 oder auf eine beliebige niedrigere Version eingestellt werden. Ansonsten funktioniert Ignition nicht.
Wenn Sie sich als „“ bei Ihrem System anmelden möchten, müssen Sie mindestens ein Passwort für rootroot angeben. Es wird allerdings empfohlen, den Zugriff mithilfe von SSH-Schlüsseln einzurichten. Wenn Sie ein Passwort konfigurieren möchten, müssen Sie ein sicheres Passwort verwenden. Falls Sie ein zufällig erzeugtes Passwort heranziehen, muss dieses Passwort mindestens 10 Zeichen enthalten. Wenn Sie Ihr Passwort manuell erstellen, verwenden Sie mehr als 10 Zeichen und kombinieren Sie Großbuchstaben, Kleinbuchstaben und Ziffern.
8.2.1 Konvertieren der fcc-Datei (YAML) in ign (JSON) #
Soll die Ignition-Konfiguration leichter für Menschen lesbar sein, können Sie eine zweiphasige Konfiguration verfolgen. Sie bereiten zunächst die Konfiguration in YAML als fcc-Datei vor und transpilieren diese Konfiguration dann nach JSON. Die Transpilation kann mit dem butane-Tool vorgenommen werden.
Während der Transpilation überprüft butane außerdem die Syntax der YAML-Datei, sodass eventuelle Fehler in der Struktur erkannt werden. Fügen Sie ein Repository für die neueste Version des butane-Tools hinzu:
>sudozypper ar -f \ https://download.opensuse.org/repositories/devel:/kubic:/ignition/DISTRIBUTION/ \ devel_kubic_ignition
DISTRIBUTION ist dabei einer der folgenden Punkte (je nach Ihrer Distribution):
openSUSE_TumbleweedopenSUSE_Leap_$release_number15.3
Nun können Sie das butane-Tool installieren:
>sudozypper in butane
Nun können Sie butane mit folgendem Befehl aufrufen:
> butane -p -o config.ign config.fccmit folgenden Bedeutungen
config.fccist der Pfad der YAML-Konfigurationsdateiconfig.ignist der Pfad der ausgegebenen JSON-KonfigurationsdateiMit der Befehlsoption
-pkönnen Sie Zeilenumbrüche in die Ausgabedatei einfügen und damit die Lesbarkeit der Datei erhöhen.
8.2.2 YAML-Konfigurationsbeispiele #
In diesem Abschnitt finden Sie einige gängige Beispiele für die Ignition-Konfiguration im YAML-Format.
index ist obligatorisch
Jede config.fcc muss die Version angeben (1.4.0 oder niedriger), die dann in die entsprechende Ignition-Spezifikation konvertiert wird.
8.2.2.1 Speicherkonfiguration #
Mit dem Attribut storage können Sie Partitionen und RAID konfigurieren, Dateisysteme definieren, Dateien erstellen usw. Zum Definieren von Partitionen verwenden Sie das Attribut disks. Mit dem Attribut filesystem können Sie Partitionen formatieren und Einhängepunkte bestimmter Partitionen definieren. Mit dem Attribut files können Sie Dateien im Dateisystem erstellen. Die genannten Attribute werden in den nachfolgenden Abschnitten beschrieben.
8.2.2.1.1 Das Attribut disks #
Das Attribut disks ist eine Liste mit Geräten, sodass Sie Partitionen auf diesen Geräten definieren können. Das Attribut disks muss mindestens ein Gerät (device) enthalten, andere Attribute sind optional. Im folgenden Beispiel wird ein einzelnes virtuelles Gerät verwendet und die Festplatte wird in vier Partitionen aufgeteilt:
variant: fcos
version: 1.0.0
storage:
disks:
- device: "/dev/vda"
wipeTable: true
partitions:
- label: root
number: 1
typeGuid: 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
- label: boot
number: 2
typeGuid: BC13C2FF-59E6-4262-A352-B275FD6F7172
- label: swap
number: 3
typeGuid: 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
- label: home
number: 4
typeGuid: 933AC7E1-2EB4-4F13-B844-0E14E2AEF9158.2.2.1.2 Das Attribut raid #
raid ist eine Liste mit RAID-Arrays. Die folgenden Attribute für raid sind obligatorisch:
- level
Ebene des jeweiligen RAID-Arrays (linear, raid0, raid1, raid2, raid3, raid4, raid5, raid6)
- geeignet sind
Liste mit Geräten im Array (anhand ihrer absoluten Pfade referenziert)
- Name
Name für das md-Gerät
variant: fcos version: 1.0.0 storage: - raid: data name: system level: raid1 devices: "/dev/sda", "/dev/sdb"
8.2.2.1.3 Das Attribut filesystem #
filesystem muss die folgenden Attribute enthalten:
- Gerät
Absoluter Pfad zum Gerät, bei physischen Festplatten in der Regel
/dev/sda- Format
Dateisystemformat (btrfs, ext4, xfs, vfat oder swap)
AnmerkungFür SLE Micro muss das
root-Dateisystem mit btrfs formatiert werden.
Das folgende Beispiel zeigt die Verwendung des Attributs filesystem. Das Verzeichnis /opt wird in die Partition /dev/sda1 eingehängt, die mit btrfs formatiert ist. Die Partitionstabelle wird nicht gelöscht.
variant: fcos
version: 1.0.0
storage:
filesystems:
- path: /opt
device: "/dev/sda1"
format: btrfs
wipe_filesystem: false8.2.2.1.4 Das Attribut files #
Mit dem Attribut files können Sie beliebige Dateien auf Ihrem Computer erstellen. Falls Sie Dateien außerhalb von default mounted directories erstellen möchten, müssen Sie die Verzeichnisse mit dem Attribut filesystem definieren.
Im folgenden Beispiel wird ein Hostname mit dem Attribut files erstellt. Die Datei /etc/hostname wird mit dem Hostnamen slemicro-1 erstellt:
variant: fcos
version: 1.0.0
storage:
files:
- path: /etc/hostname
mode: 0644
overwrite: true
contents:
inline: "slemicro-1"8.2.2.1.5 Das Attribut directories #
Das Attribut directories ist eine Liste mit Verzeichnissen, die im Dateisystem erstellt werden. Das Attribut directories muss mindestens ein Attribut path enthalten.
variant: fcos version: 1.0.0 storage: directories: - path: /home/tux/ user: - name: tux
8.2.2.2 Benutzerverwaltung #
Mit dem Attribut passwd können Sie Benutzer hinzufügen. Wenn Sie sich bei Ihrem System anmelden möchten, erstellen Sie root und legen Sie das root-Passwort fest und/oder fügen Sie den SSH-Schlüssel in die Ignition-Konfiguration ein. Sie müssen einen Hash für das root-Passwort generieren, z. B. mit dem Befehl openssl:
openssl passwd -6
Der Befehl erstellt einen Hash für das ausgewählte Passwort. Tragen Sie diesen Hash als Wert für das Attribut password_hash ein.
variant: fcos
version: 1.1.0
passwd:
users:
- name: root
password_hash: "$6$PfKm6Fv5WbqOvZ0C$g4kByYM.D2B5GCsgluuqDNL87oeXiHqctr6INNNmF75WPGgkLn9O9uVx4iEe3UdbbhaHbTJ1vpZymKWuDIrWI1"
ssh_authorized_keys:
- ssh-rsa long...key user@host
Das Attribut users muss mindestens ein Attribut name enthalten. ssh_authorized_keys ist eine Liste mit SSH-Schlüsseln für den Benutzer.
8.2.2.3 Aktivieren von systemd-Diensten #
Sollen systemd-Dienste aktiviert werden, geben Sie diese Dienste im Attribut systemd an.
variant: fcos
version: 1.0.0
systemd
units:
- name: sshd.service
enabled: true
name muss den genauen Namen des zu aktivierenden Dienstes enthalten (mit Suffix).