Accéder au contenuNavigation Accéder à la page : page précédente [raccourci clavier p] / page suivante [raccourci clavier n]
documentation.suse.com / Déploiement de SUSE Linux Micro à l'aide du démarrage PXE réseau

Déploiement de SUSE Linux Micro à l'aide du démarrage PXE réseau

Date de publication : 20 mar 2025
CONTENU

SUSE Linux Micro fournit des images qui peuvent être déployées à distance à l'aide du démarrage PXE du périphérique cible.

MOTIF

Vous souhaitez déployer SUSE Linux Micro à distance.

EFFORT

La lecture de l'article prend environ 15 minutes.

OBJECTIF

Une instance correctement configurée de SUSE Linux Micro.

CONDITIONS REQUISES
  • Un serveur DHCP correctement configuré

  • Un serveur TFTP installé

1 Introduction à l'installation PXE de SUSE Linux Micro

SUSE Linux Enterprise peut être installé par le biais d'un environnement PXE (Preboot Execution Environment). Le matériel client a besoin de prendre en charge le démarrage via PXE. Le réseau doit être doté d'un serveur DHCP et d'un serveur TFTP fournissant les données requises aux clients.

La procédure de déploiement peut se résumer aux étapes suivantes :

  1. (Facultatif) Pour effectuer une configuration ou une installation plus complexe au premier démarrage sans intervention de l'utilisateur, préparez la configuration du premier démarrage utilisée par Combustion ou Ignition. Par exemple, vous pouvez définir des utilisateurs du système, installer des paquets, configurer le nom d'hôte, enregistrer le système et effectuer bien d'autres tâches. Pour plus de détails, reportez-vous à la Section 2.2, « Configuration du déploiement de SUSE Linux Micro avec Combustion » ou à la Section 2.3, « Configuration du déploiement de SUSE Linux Micro avec Ignition ».

  2. Assurez-vous que le serveur DHCP est correctement configuré.

  3. Pour préparer le serveur TFTP, ajoutez l'image d'installation, configurez les paramètres de démarrage et placez la configuration Combustion/Ignition sur le serveur TFTP. Pour plus d'informations, reportez-vous à la Section 3, « Préparation du serveur TFTP ».

  4. Sur la machine cible, sélectionnez le démarrage PXE et démarrez la machine. Pour plus d'informations, reportez-vous à la Section 4, « Déploiement de l'image à distance ».

2 Création de la configuration du premier démarrage

Les sections suivantes fournissent des informations sur deux outils que vous pouvez utiliser pour configurer SUSE Linux Micro au premier démarrage. Vous pouvez utiliser Combustion et écrire un script de configuration BASH, ou vous pouvez utiliser Ignition et JSON. Sinon, si vous n'avez pas besoin d'une configuration complexe ou sans surveillance, vous pouvez ignorer cette étape, car la configuration de base peut être effectuée à l'aide de JeOS Firstboot comme décrit dans la Section 4.1, « Configuration de SUSE Linux Micro avec JeOS Firstboot ».

2.1 Détection du premier démarrage

La configuration du déploiement s'exécute au premier démarrage uniquement. Pour faire la distinction entre le premier démarrage et les suivants, le fichier /etc/machine-id est créé une fois le premier démarrage terminé. Si le fichier n'est pas présent dans le système de fichiers, le système suppose qu'il s'agit d'un premier démarrage et déclenche le processus de configuration. Une fois le premier démarrage terminé, le fichier /etc/machine-id est créé.

Note
Note : le fichier /etc/machine-id est toujours créé

Même si la configuration peut échouer en raison de fichiers de configuration incorrects ou manquants, le fichier /etc/machine-id est créé.

2.1.1 Reconfiguration forcée du système lors d'un démarrage ultérieur

Si vous devez reconfigurer votre système après le premier démarrage, vous pouvez forcer la reconfiguration au démarrage suivant. Deux options s'offrent à vous.

  • Vous pouvez transmettre l'attribut ignition.firstboot ou combustion.firstboot à la ligne de commande du kernel.

  • Vous pouvez supprimer le fichier /etc/machine-id et redémarrer le système.

2.2 Configuration du déploiement de SUSE Linux Micro avec Combustion

Combustion est un module dracut qui vous permet de configurer votre système au premier démarrage. Vous pouvez utiliser Combustion, par exemple, pour modifier les partitions par défaut, définir des mots de passe utilisateur, créer des fichiers ou installer des paquets.

2.2.1 Comment fonctionne Combustion ?

Combustion est appelé après la transmission de l'argument ignition.firstboot à la ligne de commande du kernel. Combustion lit un fichier fourni nommé script, exécute les commandes incluses et modifie ainsi le système de fichiers. Si script inclut l'indicateur réseau, Combustion tente de configurer le réseau. Une fois /sysroot monté, Combustion tente d'activer tous les points de montage dans /etc/fstab, puis appelle transactional-update pour appliquer d'autres modifications, par exemple, définir un mot de passe root ou installer des paquets.

Le script de configuration doit résider sur le serveur TFTP et, au cours du démarrage, son URL doit être fournie au kernel à l'aide du paramètre combustion.url. Pour plus d'informations, reportez-vous à la Section 3, « Préparation du serveur TFTP ».

Astuce
Astuce : utilisation de Combustion avec Ignition

Combustion peut être utilisé avec Ignition. Si c'est ce que vous prévoyez de faire, étiquetez votre support de configuration ignition et incluez le répertoire ignition avec le fichier config.ign dans votre structure de répertoires comme indiqué ci-dessous :

<root directory>
└── combustion
    └── script
    └── other files
└── ignition
    └── config.ign

Dans ce scénario, Ignition s'exécute avant Combustion.

2.2.2 Exemples de configuration Combustion

2.2.2.1 Fichier de configuration script

Le fichier de configuration script est un ensemble de commandes qui sont analysées et exécutées par Combustion dans un shell transactional-update. Cet article fournit des exemples de tâches de configuration effectuées par Combustion.

Astuce
Astuce : utilisez Fuel Ignition pour générer le script Combustion

Pour créer le script Combustion, vous pouvez utiliser l'application Web Fuel Ignition. Vous pouvez y sélectionner les paramètres appropriés et l'application génère un script Combustion que vous pouvez télécharger.

Important
Important : incluez la déclaration de l'interpréteur

Lorsque le fichier script est interprété par le shell, commencez toujours le fichier avec la déclaration de l'interpréteur sur la première ligne. Par exemple, dans le cas de Bash :

#!/bin/bash

Pour vous connecter à votre système, indiquez au moins le mot de passe root. Toutefois, il est recommandé d'établir l'authentification à l'aide de clés SSH. Si vous devez utiliser un mot de passe root, veillez à ce que sa configuration soit sécurisée. Pour un mot de passe généré de façon aléatoire, utilisez au moins 10 caractères. Si vous créez votre mot de passe manuellement, utilisez même plus de 10 caractères et combinez des lettres majuscules, minuscules et des chiffres.

2.2.2.1.1 Partitionnement par défaut

Chaque image comporte les sous-volumes suivants :

/home
/root
/opt
/srv
/usr/local
/var

Le répertoire /etc est monté en tant qu'overlayFS et le répertoire supérieur est monté dans /var/lib/overlay/1/etc/.

Vous pouvez reconnaître les sous-volumes montés par défaut par l'option x-initrd.mount dans /etc/fstab. Les autres sous-volumes ou partitions doivent être configurés par les outils Ignition ou Combustion.

Si vous souhaitez ajouter un nouvel utilisateur ou modifier l'un des fichiers d'un sous-volume qui n'est pas monté par défaut, vous devez d'abord déclarer ce sous-volume afin qu'il soit monté également.

2.2.2.1.2 Configuration réseau

Pour configurer et utiliser la connexion réseau lors du premier démarrage, ajoutez l'instruction suivante à script :

# combustion: network

Cette instruction transmet l'argument rd.neednet=1 à dracut. La configuration réseau utilise par défaut DHCP. Si vous avez besoin d'une autre configuration réseau, procédez comme indiqué à la Section 2.2.2.1.3, « Intégration de modifications dans l'environnement initramfs ».

En l'absence de cette instruction, le système reste configuré sans connexion réseau.

2.2.2.1.3 Intégration de modifications dans l'environnement initramfs

Vous devrez peut-être apporter des modifications à l'environnement initramfs, par exemple, pour rédiger une configuration réseau personnalisée pour NetworkManager à l'emplacement /etc/NetworkManager/system-connections/. Pour ce faire, utilisez l'instruction prepare.

Par exemple, pour créer une connexion avec une adresse IP statique et configurer DNS :

#!/bin/bash
# combustion: network prepare
set -euxo pipefail
          
nm_config() {
  umask 077 # Required for NM config
  mkdir -p /etc/NetworkManager/system-connections/
  cat >/etc/NetworkManager/system-connections/static.nmconnection <<-EOF
  [connection]
  id=static
  type=ethernet
  autoconnect=true
          
  [ipv4]
  method=manual
  dns=192.168.100.1
  address1=192.168.100.42/24,192.168.100.1
EOF
}
          
if [ "${1-}" = "--prepare" ]; then
  nm_config # Configure NM in the initrd
  exit 0
fi
          
# Redirect output to the console
exec > >(exec tee -a /dev/tty0) 2>&1
          
  nm_config # Configure NM in the system
  curl example.com

# Close outputs and wait for tee to finish
exec 1>&- 2>&-; wait;

# Leave a marker
echo "Configured with combustion" > /etc/issue.d/combustion
2.2.2.1.4 Attente de la fin de la tâche

Certains processus peuvent être exécutés en arrière-plan, par exemple, le processus tee qui redirige la sortie vers le terminal. Pour vous assurer que tous les processus en cours d'exécution sont terminés avant la fin de l'exécution du script, ajoutez la ligne suivante :

exec 1>&- 2>&-; wait;
2.2.2.1.5 Partitionnement

Les images brutes SUSE Linux Micro sont fournies avec un schéma de partitionnement par défaut. Vous souhaitez peut-être utiliser un autre partitionnement. L'ensemble suivant d'exemples d'extraits de code déplace /home vers une autre partition.

Note
Note : réalisation de modifications en dehors des répertoires inclus dans les instantanés

Le script suivant effectue des modifications qui ne sont pas incluses dans les instantanés. Si le script échoue et que l'instantané est ignoré, certaines modifications restent visibles et ne peuvent pas être annulées, par exemple, les modifications apportées au périphérique /dev/vdb.

L'extrait de code suivant crée un schéma de partitionnement GPT avec une seule partition sur le périphérique /dev/vdb :

sfdisk /dev/vdb <<EOF
sleep 1
label: gpt
type=linux
EOF

partition=/dev/vdb1

Étant donné que l'exécution de la commande sfdisk peut prendre plus de temps, reportez label à l'aide de la commande sleep après sfdisk.

La partition utilise le format Btrfs :

wipefs --all ${partition}
mkfs.btrfs ${partition}

L'éventuel contenu de /home est déplacé vers le nouvel emplacement du dossier /home par l'extrait de code suivant :

mount /home
mount ${partition} /mnt
rsync -aAXP /home/ /mnt/
umount /home /mnt

L'extrait de code ci-dessous supprime une ancienne entrée à l'emplacement /etc/fstab et crée une nouvelle entrée :

awk -i inplace '$2 != "/home"' /etc/fstab
echo "$(blkid -o export ${partition} | grep ^UUID=) /home btrfs defaults 0 0" >>/etc/fstab
2.2.2.1.6 Création d'utilisateurs

Étant donné que certains services, tels que Cockpit, nécessitent une connexion à l'aide d'un utilisateur non-root, définissez au moins un utilisateur sans privilèges ici. Vous pouvez également créer ce type d'utilisateur à partir d'un système en cours d'exécution, comme décrit à la Section 5.2, « Ajout d'utilisateurs ».

Pour ajouter un nouveau compte utilisateur, créez d'abord une chaîne de hachage qui représente le mot de passe de l'utilisateur. Utilisez la commande openssl passwd -6.

Après avoir obtenu le hachage du mot de passe, ajoutez les lignes suivantes au script :

mount /home
useradd -m EXAMPLE_USER
echo 'EXAMPLE_USER:PASSWORD_HASH' | chpasswd -e
2.2.2.1.7 Définition d'un mot de passe pour root

Avant de définir le mot de passe root, générez un hachage pour celui-ci, par exemple, à l'aide de la commande openssl passwd -6. Pour définir le mot de passe, ajoutez la ligne suivante au fichier script :

echo 'root:PASSWORD_HASH' | chpasswd -e
2.2.2.1.8 Ajout de clés SSH

L'extrait de code suivant crée un répertoire pour stocker la clé SSH de root, puis copie la clé SSH publique située sur le périphérique de configuration dans le fichier authorized_keys.

mkdir -pm700 /root/.ssh/
cat id_rsa_new.pub >> /root/.ssh/authorized_keys
Note
Note

Le service SSH doit être activé pour le cas où vous auriez besoin d'utiliser la connexion à distance via SSH. Pour plus d'informations, reportez-vous à la Section 2.2.2.1.9, « Activation de services ».

2.2.2.1.9 Activation de services

Pour activer des services système, par exemple le service SSH, ajoutez la ligne suivante à script :

systemctl enable sshd.service
2.2.2.1.10 Installation de paquets
Important
Important : une connexion réseau et l'enregistrement de votre système peuvent être nécessaires

Certains paquets pouvant nécessiter un abonnement supplémentaire, vous devrez peut-être enregistrer votre système au préalable. Vous devrez peut-être également disposer d'une connexion réseau pour installer des paquets supplémentaires.

Lors de la configuration du premier démarrage, vous pouvez installer des paquets supplémentaires sur votre système. Par exemple, vous pouvez installer l'éditeur vim en ajoutant :

zypper --non-interactive install vim-small
Note
Note

N'oubliez pas que vous ne pourrez plus utiliser zypper une fois que vous aurez terminé la configuration et démarré le système configuré. Pour effectuer des changements ultérieurement, vous devrez utiliser la commande transactional-update afin de créer un instantané modifié.

2.3 Configuration du déploiement de SUSE Linux Micro avec Ignition

Ignition est un outil de provisioning qui vous permet de configurer un système en fonction de vos spécifications lors du premier démarrage.

2.3.1 Comment fonctionne Ignition ?

Lorsque le système démarre pour la première fois, Ignition est chargé dans le cadre d'un initramfs et recherche un fichier de configuration dans un répertoire spécifique (sur un disque flash USB, ou vous pouvez fournir une URL). Toutes les modifications sont effectuées avant que le kernel ne passe du système de fichiers temporaire au système de fichiers racine réel (avant que la commande switch_root ne soit émise).

Ignition utilise un fichier de configuration au format JSON nommé config.ign. Vous pouvez écrire la configuration manuellement ou utiliser l'application Web Fuel Ignition disponible à l'adresse https://ignite.opensuse.org pour la générer.

Important
Important

Fuel Ignition ne couvre pas encore l'ensemble du vocabulaire Ignition, et le fichier JSON obtenu peut nécessiter des ajustements manuels supplémentaires.

2.3.1.1 config.ign

Le fichier config.ign contient plusieurs types de données : objets, chaînes, nombres entiers, attributs booléens et listes d'objets. Pour une spécification complète, reportez-vous au document Ignition specification v3.3.0.

L'attribut version est obligatoire et dans le cas de SUSE Linux Micro, sa valeur doit être définie sur 3.4.0 ou sur une version antérieure. Sinon, Ignition échoue.

Pour vous connecter à votre système en tant qu'utilisateur root, vous devez au moins inclure un mot de passe pour le répertoire root. Toutefois, il est recommandé d'établir un accès via des clés SSH. Lorsque vous configurez un mot de passe, veillez à ce qu'il soit sécurisé. Si vous utilisez un mot de passe généré de façon aléatoire, il doit comporter au moins 10 caractères. Si vous créez votre mot de passe manuellement, utilisez même plus de 10 caractères et combinez des lettres majuscules, minuscules et des chiffres.

2.3.2 Exemples de configuration Ignition

Cette section fournit plusieurs exemples de configuration d'Ignition au format JSON intégré.

Note
Note : l'attribut version est obligatoire

Chaque fichier config.ign doit inclure la version 3.4.0 ou inférieure qui est ensuite convertie en spécification Ignition correspondante.

2.3.2.1 Partitionnement par défaut

Chaque image comporte les sous-volumes suivants :

/home
/root
/opt
/srv
/usr/local
/var

Le répertoire /etc est monté en tant qu'overlayFS et le répertoire supérieur est monté dans /var/lib/overlay/1/etc/.

Vous pouvez reconnaître les sous-volumes montés par défaut par l'option x-initrd.mount dans /etc/fstab. Les autres sous-volumes ou partitions doivent être configurés par les outils Ignition ou Combustion.

Si vous souhaitez ajouter un nouvel utilisateur ou modifier l'un des fichiers d'un sous-volume qui n'est pas monté par défaut, vous devez d'abord déclarer ce sous-volume afin qu'il soit monté également.

2.3.2.2 Configuration du stockage

L'attribut storage est utilisé pour configurer des partitions et RAID, définir des systèmes de fichiers, créer des fichiers, etc. Pour définir des partitions, utilisez l'attribut disks. L'attribut filesystems est utilisé pour formater les partitions. L'attribut files peut être utilisé pour créer des fichiers sur le système de fichiers. Chacun des attributs mentionnés est décrit dans les sections suivantes.

2.3.2.2.1 Attribut disks

L'attribut disks est une liste de périphériques qui vous permet de définir des partitions sur ces périphériques. L'attribut disks doit contenir au moins un élément device ; les autres attributs sont facultatifs. L'exemple suivant utilise un périphérique virtuel unique et divise le disque en quatre partitions :

{
  "ignition": {
    "version": "3.0.0"
  },
  "storage": {
    "disks": [
      {
        "device": "/dev/vda",
        "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"
          }
        ],
        "wipeTable": true
      }
    ]
  }
}
2.3.2.2.2 Attribut raid

Le raid est une liste de réseaux RAID. Les attributs suivants de raid sont obligatoires :

level

Niveau du réseau RAID spécifique (linear, raid0, raid1, raid2, raid3, raid4, raid5, raid6)

devices

Liste des périphériques du réseau référencés par leurs chemins absolus

name

Nom qui sera utilisé pour le périphérique md

Par exemple :

{
  "ignition": {
    "version": "3.0.0"
  },
  "storage": {
    "raid": [
      {
        "devices": [
          "/dev/sda",
          "/dev/sdb"
        ],
        "level": "raid1",
        "name": "system"
      }
    ]
  }
}
2.3.2.2.3 Attribut filesystems
Note
Note : Ignition n'effectue pas de modifications pour monter les unités

L'attribut filesystems ne modifie pas les unités de montage. Si vous ajoutez une nouvelle partition ou supprimez une partition existante, vous devez ajuster manuellement les unités de montage.

filesystems doit contenir les attributs suivants :

device

Chemin absolu d'accès au périphérique, généralement /dev/sda dans le cas d'un disque physique

format

Format du système de fichiers (Btrfs, Ext4, xfs, vfat ou swap)

Note
Note

Dans le cas de SUSE Linux Micro, le système de fichiers root doit être au format Btrfs.

L'exemple suivant illustre l'utilisation de l'attribut filesystems. Le répertoire /opt sera monté sur la partition /dev/sda1 qui utilise le format Btrfs. Le périphérique ne sera pas effacé.

Par exemple :

{
  "ignition": {
    "version": "3.0.0"
  },
  "storage": {
    "filesystems": [
      {
        "device": "/dev/sda1",
        "format": "btrfs",
        "path": "/opt",
        "wipeFilesystem": false
      }
    ]
  }
}

Normalement, le répertoire privé d'un utilisateur standard se trouve dans le répertoire /home/USER_NAME. Étant donné que /home n'est pas monté par défaut dans initrd, le montage doit être explicitement défini pour que la création de l'utilisateur réussisse :

{
  "ignition": {
    "version": "3.1.0"
  },
  "passwd": {
    "users": [
      {
        "name": "root",
        "passwordHash": "PASSWORD_HASH",
        "sshAuthorizedKeys": [
          "ssh-rsa SSH_KEY_HASH"
        ]
      }
    ]
  },
  "storage": {
    "filesystems": [
      {
        "device": "/dev/sda3",
        "format": "btrfs",
        "mountOptions": [
          "subvol=/@/home"
        ],
        "path": "/home",
        "wipeFilesystem": false
      }
    ]
  }
}
2.3.2.2.4 Attribut files

Vous pouvez utiliser l'attribut files pour créer des fichiers sur votre machine. N'oubliez pas que pour créer des fichiers en dehors du schéma de partitionnement par défaut, vous devez définir les répertoires à l'aide de l'attribut filesystems.

Dans l'exemple suivant, un nom d'hôte est créé à l'aide de l'attribut files. Le fichier /etc/hostname sera créé avec le nom d'hôte sl-micro1 :

Important
Important

Gardez à l'esprit que JSON accepte les modes de fichier en nombres décimaux, par exemple, 420.

JSON :

{
  "ignition": {
    "version": "3.0.0"
  },
  "storage": {
    "files": [
      {
        "overwrite": true,
        "path": "/etc/hostname",
        "contents": {
          "source": "data:,sl-micro1"
        },
        "mode": 420
      }
    ]
  }
}
2.3.2.2.5 Attribut directories

L'attribut directories est une liste de répertoires qui seront créés sur le système de fichiers. L'attribut directories doit contenir au moins un attribut path.

Par exemple :

{
  "ignition": {
    "version": "3.0.0"
  },
  "storage": {
    "directories": [
      {
        "path": "/home/tux",
        "user": {
          "name": "tux"
        }
      }
    ]
  }
}
2.3.2.3 Administration des utilisateurs

L'attribut passwd est utilisé pour ajouter des utilisateurs. Étant donné que certains services, tels que Cockpit, nécessitent une connexion à l'aide d'un utilisateur non-root, définissez au moins un utilisateur sans privilèges ici. Vous pouvez également créer ce type d'utilisateur à partir d'un système en cours d'exécution, comme décrit à la Section 5.2, « Ajout d'utilisateurs ».

Pour vous connecter à votre système, créez un utilisateur root et un utilisateur ordinaire, puis définissez leur mot de passe. Vous devez hacher les mots de passe, par exemple à l'aide de la commande openssl :

 openssl passwd -6

La commande crée un hachage du mot de passe que vous avez choisi. Utilisez ce hachage comme valeur de l'attribut password_hash.

Par exemple :

{
  "ignition": {
    "version": "3.0.0"
  },
  "passwd": {
    "users": [
      {
        "name": "root",
        "passwordHash": "PASSWORD_HASH",
        "sshAuthorizedKeys": [
          "ssh-rsa SSH_KEY_HASH USER@HOST"
        ]
      }
    ]
  }
}

L'attribut users doit contenir au moins un attribut name. ssh_authorized_keys est une liste de clés SSH pour l'utilisateur.

2.3.2.4 Activation des services systemd

Vous pouvez activer les services systemd en les spécifiant dans l'attribut systemd.

Par exemple :

{
  "ignition": {
    "version": "3.0.0"
  },
  "systemd": {
    "units": [
      {
        "enabled": true,
        "name": "sshd.service"
      }
    ]
  }
}

3 Préparation du serveur TFTP

Pour déployer SUSE Linux Micro à l'aide du client PXE, vous devez effectuer les étapes suivantes :

  1. Révisez la configuration tftpd dans /etc/sysconfig/tftp et ajoutez ou modifiez les options selon vos besoins. Pour plus d'informations, reportez-vous au man 8 tftpd. Le daemon TFTP fonctionne sans modifier la configuration. Le répertoire racine par défaut des fichiers est /srv/tftpboot.

  2. Assurez-vous que tftpd est lancé au moment du démarrage, puis redémarrez-le pour lire la nouvelle configuration.

              > 
              sudo
              systemctl enable tftp.socket
              > 
              sudo
              systemctl restart tftp.socket

    Assurez-vous que tftp.socket reste actif pendant tout le processus de déploiement, qui peut prendre plusieurs minutes.

  3. Préparez la structure de répertoires :

    > sudo mkdir /srv/tftpboot/sl-micro
  4. Accédez au répertoire :

              > 
              cd /srv/tftpboot/sl-micro
  5. Téléchargez le fichier SL-Micro.ARCHITECTURE-6.1-IMAGE_TYPE-GM.install.tar sur le serveur TFTP.

  6. Décompressez le fichier TAR :

              > 
              sudo
              tar xvf IMAGE_TAR -C .

    Assurez-vous que tous les fichiers nécessaires sont présents dans /srv/tftpboot/sl-micro :

    > ls
    
    pxeboot.SL-Micro.ARCH-VERSION.kernel
    pxeboot.SL-Micro.ARCH-VERSION.initrd
    SL-Micro.ARCH-VERSION.append 
    SL-Micro.ARCH-VERSION.config.bootoptions
    SL-Micro.ARCH-VERSION.initrd
    SL-Micro.ARCH-VERSION.kernel
    SL-Micro.ARCH-VERSION.md5
    SL-Micro.ARCH-VERSION.xz
  7. Créez des liens symboliques comme suit :

              > 
              sudo
              ln -s pxeboot.*.kernel linux
              > 
              sudo
              ln -s pxeboot.*.initrd initrd
  8. (Facultatif) Créez des répertoires pour la configuration du premier démarrage (pour la configuration Combustion et/ou Ignition) :

    1. Pour la configuration Combustion :

                    # 
                    mkdir combustion
    2. Pour la configuration Ignition :

                    # 
                    mkdir ignition
  9. Placez la configuration Combustion et/ou Ignition dans les répertoires correspondants.

  10. Ajustez/ajoutez les paramètres suivants dans le fichier SL-Micro.ARCH-6.1.append :

    • rd.kiwi.install.image : spécifiez le chemin d'accès à l'image d'installation SL-Micro.ARCH6.1.xz. Le chemin doit inclure le protocole, l'adresse IP et le chemin relatif à l'image d'installation :

      tftp://TFTP_SERVER/sl-micro/IMAGE_NAME

      Si le système de fichiers racine TFTP est défini, veillez à l'omettre dans le chemin. Le répertoire par défaut /srv/tftboot peut être configuré dans /etc/sysconfig/tftp, ou vous pouvez spécifier le répertoire dans un attribut de fichier d'unité de service qui définit le binaire à exécuter à l'aide de l'option -s.

    • rd.kiwi.oem.installdevice : permet d'effectuer une installation sans surveillance.

    • rd.kiwi.install.pass.bootparam : une fois l'image copiée sur le disque cible, kiwi effectue un appel kexec. Ce paramètre indique à kiwi qu'il doit transmettre des paramètres supplémentaires au kernel. Il peut par exemple s'agir de ceux décrits ci-dessous.

    • combustion.url : si nécessaire, fournissez une URL complète vers le script Combustion qui est transmis à l'interface de ligne de commande (CLI) du kernel.

    • ignition.config.url : si nécessaire, fournissez une URL complète vers le fichier de configuration Ignition qui est transmis à la CLI du kernel. Possibilité d'utilisation combinée avec Combustion.

  11. Ajustez le fichier /srv/tftpboot/pxelinux.cfg/default pour inclure SUSE Linux Micro :

    LABEL Install SUSE Linux Micro
        LINUX sl-micro/linux
        INITRD sl-micro/initrd
        APPEND PATH_TO_APPEND_FILE

4 Déploiement de l'image à distance

Après avoir préparé les serveurs DHCP et TFTP, vous pouvez démarrer le déploiement de SUSE Linux Micro sur la machine cible.

  1. Mettez la machine cible sous tension.

  2. Accédez au menu de démarrage UEFI et sélectionnez le démarrage PXE.

  3. La machine doit démarrer le déploiement. Le kernel et initrd sont téléchargés à partir de TFTP. Le chargeur de démarrage est lancé.

  4. Sélectionnez Install SUSE Linux Micro. Cet élément peut être différent si vous avez utilisé une valeur LABEL différente dans /srv/tftpboot/pxelinux.cfg/default.

  5. Sélectionnez un disque pour déployer SUSE Linux Micro et confirmez la suppression des données sur ce périphérique. L'image est ensuite copiée sur le disque.

  6. À l'aide de Kexec, votre système redémarre, puis est préparé pour le processus de configuration.

  7. Démarrez le processus de configuration en sélectionnant SL Micro. Si les instructions Ignition ou Combustion n'ont pas été fournies, JeOS Firstboot est déclenché. Pour plus d'informations, reportez-vous à la Section 4.1, « Configuration de SUSE Linux Micro avec JeOS Firstboot ».

4.1 Configuration de SUSE Linux Micro avec JeOS Firstboot

Pour configurer le système avec JeOS Firstboot, procédez comme suit :

  1. JeOS Firstboot affiche un écran de bienvenue. Confirmez avec Entrée.

  2. Dans les écrans suivants, sélectionnez le clavier, confirmez l'accord de licence et sélectionnez le fuseau horaire.

  3. Dans la boîte de dialogue Entrer le mot de passe root, entrez un mot de passe pour root et confirmez-le.

    boîte de dialogue Entrer le mot de passe root
    Figure 1 : boîte de dialogue Entrer le mot de passe root
  4. (Facultatif) Afin d'enregistrer des clés SSH pour l'accès, appuyez sur Oui. Si vous avez appuyé sur OUI, procédez comme suit :

    1. À l'aide de SSH, connectez-vous à l'adresse IP affichée.

    2. Si vous avez reçu une clé publique correctement, confirmez-la dans l'écran suivant.

    3. Une invite d'importation d'une clé SSH apparaît. Sélectionnez l'option en fonction de vos préférences.

  5. (Facultatif) Si vous le souhaitez, vous pouvez créer un utilisateur sans privilège dans le formulaire User Creation. Entrez le nom d'utilisateur, le nom complet et un mot de passe deux fois. Cliquez sur OK pour confirmer.

  6. (Facultatif) Pour configurer l'authentification multifacteur (MFA) afin d'accéder à Cockpit, ouvrez une application TOTP et scannez le code QR. Entrez la valeur OTP fournie par l'application. Cliquez sur OK.

  7. Une fois le déploiement réussi, enregistrez votre système comme décrit à la Section 5.1, « Enregistrement de SUSE Linux Micro à partir de la CLI ».

5 Étapes post-déploiement

5.1 Enregistrement de SUSE Linux Micro à partir de la CLI

Une fois le déploiement réussi, vous devez enregistrer le système pour obtenir un support technique et recevoir des mises à jour. L'enregistrement du système est possible à partir de la ligne de commande à l'aide de la commande transactional-update register.

Pour enregistrer SUSE Linux Micro auprès de SUSE Customer Center, procédez comme suit :

  1. Exécutez transactional-update register comme suit :

    # transactional-update register -r REGISTRATION_CODE -e EMAIL_ADDRESS

    Pour effectuer l'enregistrement sur un serveur d'enregistrement local, fournissez également l'URL du serveur :

    # transactional-update register -r REGISTRATION_CODE -e EMAIL_ADDRESS \
     --url "https://suse_register.example.com/"

    Remplacez REGISTRATION_CODE par le code d'enregistrement que vous avez reçu avec votre exemplaire de SUSE Linux Micro. Remplacez EMAIL_ADDRESS par l'adresse électronique associée au compte SUSE que vous ou votre organisation utilisez pour gérer les abonnements.

  2. Redémarrez votre système pour basculer vers le dernier instantané.

  3. SUSE Linux Micro est à présent enregistré.

Note
Note : autres options d'enregistrement

Pour obtenir des informations qui dépassent le cadre de cette section, reportez-vous à la documentation en ligne à l'aide de SUSEConnect --help.

5.2 Ajout d'utilisateurs

Étant donné que SUSE Linux Micro nécessite qu'un utilisateur sans privilège se connecte via SSH ou accède à Cockpit par défaut, nous vous recommandons de créer un tel compte.

Cette étape est facultative si vous avez défini un utilisateur sans privilège lors du déploiement du système. Sinon, vous pouvez procéder comme suit :

  1. Exécutez la commande useradd comme suit :

                # 
                useradd -m USER_NAME
  2. Définissez un mot de passe pour ce compte :

    # passwd USER_NAME
  3. Si nécessaire, ajoutez l'utilisateur au groupe wheel :

    # usermod -aG wheel USER_NAME