Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / SUSE Linux Enterprise Micro Documentation / Implementierungsleitfaden / Bereitstellung von vordefinierten Images / Konfiguration mit Ignition
Gilt für SUSE Linux Enterprise Micro 5.3

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 ausgeführt 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 einer YAML fcc-Datei in JSON ign.

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 unter Ignition specification v3.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 „root“ bei Ihrem System anmelden möchten, müssen Sie mindestens ein Passwort für root 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 einer YAML fcc-Datei in JSON ign

Soll die Ignition-Konfiguration leichter für Menschen lesbar sein, können Sie eine zweiphasige Konfiguration verfolgen. Bereiten Sie zunächst die Konfiguration in YAML als fcc-Datei vor und transpilieren Sie 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:

> sudo  zypper ar -f \
  https://download.opensuse.org/repositories/devel:/kubic:/ignition/DISTRIBUTION/ \
  devel_kubic_ignition

DISTRIBUTION entspricht dabei einer der folgenden Bezeichnungen (je nach Ihrer Distribution):

  • openSUSE_Tumbleweed

  • openSUSE_Leap_$release_number

  • 15.3

Nun können Sie das butane-Tool installieren:

> sudo  zypper in butane

Nun können Sie butane mit folgendem Befehl aufrufen:

>  butane -p -o config.ign config.fcc

mit folgenden Bedeutungen

  • config.fcc ist der Pfad der YAML-Konfigurationsdatei

  • config.ign ist der Pfad der ausgegebenen JSON-Konfigurationsdatei

  • Mit der Befehlsoption -p kö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.

Anmerkung
Anmerkung: Das Attribut version 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-0E14E2AEF915
8.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)

Anmerkung
Anmerkung

Fü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: false
8.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.0.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 von 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).