Déploiement de SLE Micro à l'aide d'images disques brutes sur des machines virtuelles
- CONTENU
SLE Micro fournit des images brutes, également appelées images prédéfinies, qui peuvent être déployées directement sur votre machine virtuelle.
- MOTIF
Le déploiement virtualisé permet d'économiser des ressources matérielles.
- EFFORT
La lecture de l'article prend environ 20 minutes.
- OBJECTIF
SLE Micro est déployé correctement sur une machine virtuelle.
- CONDITIONS REQUISES
Un serveur hôte de machine virtuelle avec
libvirt
et un environnement de virtualisation KVM installé et en cours d'exécution.Un minimum de 32 Go d'espace disque pour le déploiement de l'image.
Éventuellement, un support de configuration, par exemple, un disque flash USB.
1 À propos des images prédéfinies #
Les images prédéfinies sont des représentations prêtes à l'emploi d'un système d'exploitation en cours d'exécution. Elles ne s'installent pas de façon traditionnelle à l'aide d'un programme d'installation, mais sont copiées sur le disque dur de l'hôte cible. Cette rubrique traite des informations de base concernant ces images prédéfinies.
Les images prédéfinies sont destinées à être configurées au premier démarrage à l'aide des outils fournis dans les images. Le chargeur de démarrage détecte le premier démarrage comme décrit à la Section 1.2, « Détection du premier démarrage ». Chaque image est livrée avec des sous-volumes montés par défaut, qui peuvent être modifiés lors de la configuration au premier démarrage. Pour plus de détails sur les sous-volumes, reportez-vous à la Section 1.1, « Partitionnement par défaut ».
1.1 Partitionnement par défaut #
Les images prédéfinies sont fournies avec un schéma de partitionnement par défaut. Vous pouvez le modifier lors du premier démarrage à l'aide de Ignition ou Combustion.
Si vous avez l'intention de modifier le schéma de partitionnement par défaut, le système de fichiers racine doit être Btrfs.
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.
1.2 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 d'indicateur /boot/writable/firstboot_happened
est créé une fois le premier démarrage terminé. Si le fichier est absent du système de fichiers, l'attribut ignition.firstboot
est transmis à la ligne de commande du kernel et ainsi, Ignition et Combustion sont déclenchés pour s'exécuter (dans le fichier initrd). Une fois le premier démarrage terminé, le fichier d'indicateur /boot/writable/firstboot_happened
est créé.
Même si la configuration peut échouer en raison de fichiers de configuration incorrects ou manquants, le fichier d'indicateur /boot/writable/firstboot_happened
est créé.
1.2.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=1
à la ligne de commande du kernel.Vous pouvez supprimer le fichier d'indicateur
/boot/writable/firstboot_happened
.
2 Préparation du périphérique de configuration #
Par défaut, la connexion SSH root
dans SLE Micro n'est autorisée qu'à l'aide de la clé SSH. Nous vous recommandons de créer, pendant le processus de déploiement, un utilisateur sans privilèges qui vous servira pour accéder au système installé. Vous pouvez créer un compte utilisateur sans privilèges au premier démarrage en utilisant l'outil Combustion ou Ignition. La création d'un utilisateur sans privilèges au cours du déploiement du système peut aussi servir à accéder à l'interface Web Cockpit.
Pour préparer le périphérique de configuration, procédez comme suit :
Formatez le disque sur n'importe quel système de fichiers pris en charge par SLE Micro, tel qu'Ext3, Ext4, etc. :
>
sudo mkfs.ext4 /dev/sdYDéfinissez l'étiquette du périphérique sur
ignition
(en cas d'utilisation de l'outil Ignition ou Combustion) oucombustion
(lorsque vous utilisez uniquement l'outil Combustion). Si nécessaire (par exemple, sur un hôte Windows), utilisez des lettres majuscules pour les étiquettes. Pour étiqueter le périphérique, exécutez :>
sudo e2label /dev/sdY ignitionVous pouvez utiliser n'importe quel type de support de stockage de configuration pris en charge par votre système de virtualisation ou votre matériel : une image ISO, un disque flash USB, etc.
Montez le périphérique :
>
sudo mount /dev/sdY /mntCréez la structure de répertoires comme indiqué à la Section 2.1.1.1, «
config.ign
» ou à la Section 2.2, « Configuration du déploiement de SLE Micro avec Combustion », selon l'outil de configuration utilisé :>
sudo mkdir /mnt/ignition/ou :
>
sudo mkdir -p /mnt/combustion/Préparez tous les éléments de la configuration qui seront utilisés par Ignition ou Combustion.
2.1.1 Comment fonctionne Ignition ? #
Lors du premier démarrage du système, Ignition est chargé en tant que partie de fichier initramfs
et recherche un fichier de configuration dans un répertoire spécifique (sur un disque flash USB, mais vous pouvez aussi 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.
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.1.1.1
config.ign
#
Le fichier de configuration config.ign
doit résider dans le sous-répertoire ignition
du support de configuration, par exemple, une clé USB étiquetée ignition
. La structure de répertoires doit se présenter comme suit :
<root directory> └── ignition └── config.ign
Pour créer une image disque avec la configuration Ignition, vous pouvez utiliser l'application Web Fuel Ignition à l'adresse https://ignite.opensuse.org.
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 SLE Micro, sa valeur doit être définie sur 3.3.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.1.2 Exemples de configuration Ignition #
2.1.2.1 Exemples de configuration #
Cette section fournit plusieurs exemples de configuration d'Ignition au format JSON intégré.
La Section 1.1, « Partitionnement par défaut » répertorie les sous-volumes montés par défaut lors de l'exécution de l'image prédéfinie. 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. Pour plus d'informations sur le montage de systèmes de fichiers, reportez-vous à la Section 2.1.2.1.1.3, « Attribut filesystems
».
version
est obligatoire
Chaque fichier config.fcc
doit inclure la version 1.4.0 ou inférieure qui est ensuite convertie en spécification Ignition correspondante.
2.1.2.1.1 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
permet de formater des partitions et de définir des points de montage de partitions spécifiques. 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.1.2.1.1.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.1.2.1.1.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.1.2.1.1.3 Attribut filesystems
#
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)
NoteDans le cas de SLE 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.1.2.1.1.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 :
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.1.2.1.1.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.1.2.1.2 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.3, « 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.1.2.1.3 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" } ] } }
2.2 Configuration du déploiement de SLE 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 dans le script 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 à l'emplacement /etc/fstab
, puis invoque la commande transactional-update
pour appliquer d'autres modifications, par exemple, définir un mot de passe root
ou installer des paquets.
Le fichier de configuration script
doit résider dans le sous-répertoire combustion
du support de configuration étiqueté combustion
. La structure de répertoires doit se présenter comme suit :
<root directory> └── combustion └── script └── other files
Combustion peut être utilisé avec Ignition. Si c'est ce que vous avez l'intention de faire, étiquetez votre support de configuration ignition
et incluez le répertoire ignition
contenant 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.
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 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.2, « 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.2 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 # Leave a marker echo "Configured with combustion" > /etc/issue.d/combustion
2.2.2.1.3 Partitionnement #
Les images brutes SLE Micro sont fournies avec un schéma de partitionnement par défaut, comme décrit à la Section 1.1, « 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.
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 label: gpt type=linux EOF partition=/dev/vdb1
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.4 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.3, « 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.5 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.6 Ajout de clés SSH #
L'extrait de code suivant crée un répertoire pour stocker la clé SSH de l'utilisateur 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
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.7, « Activation de services ».
2.2.2.1.7 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.8 Installation de paquets #
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
N'oubliez pas que vous ne pourrez plus utiliser zypper
une fois la configuration terminée et le système configuré démarré. Pour effectuer des changements ultérieurement, vous devrez utiliser la commande transactional-update
afin de créer un instantané modifié.
3 Préparation de la machine virtuelle #
Cette section décrit comment préparer une nouvelle machine virtuelle et les étapes à suivre pour déployer SLE Micro sur cette machine.
Téléchargez l'image disque de SLE Micro sur le serveur hôte de machine virtuelle sur lequel vous envisagez d'exécuter l'instance SLE Micro virtualisée.
Démarrez le gestionnaire de machines virtuelles et sélectionnez
› .Sélectionnez
. Confirmez avec .Spécifiez le chemin d'accès à l'image disque de SLE Micro que vous avez téléchargée précédemment et le type de système d'exploitation Linux que vous déployez, par exemple,
Generic Linux 2020
. Confirmez avec .Spécifiez la quantité de mémoire et le nombre de processeurs que vous souhaitez assigner à la machine virtuelle SLE Micro et confirmez en cliquant sur .
Spécifiez le nom de la machine virtuelle et du réseau à utiliser.
Si vous déployez une image de SLE Micro chiffrée, effectuez les étapes supplémentaires suivantes :
Activez l'option
et confirmez en cliquant sur .Cliquez sur
dans le menu de gauche et remplacez la méthode de démarrage BIOS par UEFI pour un démarrage sécurisé. Confirmez en cliquant sur .Figure 1 : Définition du microprogramme UEFI pour l'image SLE Micro chiffrée #Ajoutez un périphérique TPM (Trusted Platform Module). Cliquez sur
, sélectionnez dans le menu de gauche, puis sélectionnez le type .Figure 2 : ajout d'un périphérique TPM émulé #Confirmez en cliquant sur SLE Micro en cliquant sur dans le menu supérieur.
et démarrez le déploiement de
4 Configuration avec JeOS Firstboot #
Lorsque vous démarrez SLE Micro pour la première fois sans fournir de périphérique de configuration, JeOS Firstboot vous permet d'effectuer une configuration minimale de votre système. Si vous avez besoin de davantage de contrôle sur le processus de déploiement, utilisez un périphérique de configuration avec la configuration Ignition ou Combustion. Pour plus d'informations, reportez-vous à la Section 2.1, « Configuration du déploiement de SLE Micro avec Ignition » et à la Section 2.2, « Configuration du déploiement de SLE Micro avec Combustion ».
Pour configurer le système avec JeOS Firstboot, procédez comme suit :
Entrée.
affiche un écran de bienvenue. Confirmez avecDans les écrans suivants, sélectionnez le clavier, confirmez l'accord de licence et sélectionnez le fuseau horaire.
Dans la boîte de dialogue
, entrez un mot de passe pour l'utilisateurroot
, puis confirmez-le.Figure 3 : boîte de dialogue Entrer le mot de passe root #Pour les déploiements chiffrés, JeOS Firstboot effectue les opérations suivantes :
Il demande une nouvelle phrase secrète qui remplace la phrase secrète par défaut.
Il génère une nouvelle clé LUKS et rechiffre la partition.
Il ajoute un emplacement de clé secondaire à l'en-tête LUKS et le scelle par rapport au périphérique TPM.
Si vous déployez une image chiffrée, procédez comme suit :
Sélectionnez la méthode de protection souhaitée et confirmez en cliquant sur
.Entrez un mot de passe de récupération pour le chiffrement LUKS et confirmez-le. Le rechiffrement du système de fichiers racine commence.
Figure 4 : sélection de la méthode de chiffrement #Une fois le déploiement réussi, enregistrez votre système, puis créez un utilisateur sans privilèges comme décrit à la Section 5.4, « Enregistrement de SLE Micro à partir de la CLI ».
5 Étapes post-déploiement #
5.1 Développement des images disques chiffrées #
Les images disques brutes chiffrées de SLE Micro ne se développent pas automatiquement jusqu'à la pleine capacité du disque. Cette procédure décrit les étapes à suivre pour les développer à la taille souhaitée.
Utilisez la commande
qemu-img
pour augmenter l'image disque jusqu'à la taille souhaitée.Utilisez la commande
parted
pour redimensionner la partition où réside le périphérique LUKS (par exemple, la partition numéro 3) à la taille souhaitée.Exécutez la commande
cryptsetup resize luks
. Lorsque vous y êtes invité, entrez la phrase secrète pour redimensionner le périphérique chiffré.Exécutez la commande
transactional-update shell
pour ouvrir un shell en lecture-écriture dans l'instantané de disque actuel. Redimensionnez ensuite le système de fichiers Btrfs à la taille souhaitée, par exemple :#
btrfs fi resize max /Quittez le shell avec la commande
exit
et redémarrez le système avecreboot
.
5.2 Rechiffrement du système chiffré #
Le système n'est pas sécurisé. Par conséquent, ne stockez pas de données sensibles tant que le rechiffrement du disque n'est pas terminé.
JeOS Firstboot demande une nouvelle phrase secrète pendant la phase de déploiement. Une fois que vous l'avez entrée, le système est automatiquement rechiffré ; aucune autre opération n'est donc nécessaire.
Les images chiffrées de SLE Micro sont fournies avec une phrase secrète LUKS par défaut. Pour sécuriser votre système, veillez à la modifier une fois le système déployé. Pour ce faire, procédez comme indiqué ci-dessous. Effectuez les étapes dans la même session shell.
Importez les fonctions nécessaires dans votre shell :
#
source /usr/share/fde/luksIdentifiez le périphérique LUKS sous-jacent et définissez d'autres variables utilisées :
#
luks_name=$(expr "`df --output=source / | grep /dev/`" : ".*/\(.*\)")et :
#
luks_dev=$(luks_get_underlying_device "$luks_name")Créez un fichier de clé qui stocke la phrase secrète par défaut 1234 et un fichier de clé avec la nouvelle phrase secrète.
Modifiez le mot de passe de récupération :
#
cryptsetup luksChangeKey --key-filePATH_TO_DEFAULT --pbkdf pbkdf2 "${luks_dev}" PATH_TO_NEWPATH_TO_DEFAULT est un chemin d'accès au fichier de clé avec la phrase secrète par défaut. PATH_TO_NEW est un chemin d'accès au fichier de clé avec votre nouvelle phrase secrète.
Rechiffrez le périphérique LUKS :
#
cryptsetup reencrypt --key-filePATH_TO_NEW ${luks_dev}Créez une clé aléatoire et scellez-la avec TPM :
>
sudo
fdectl regenerate-key --passfile PATH_TO_NEWSupprimez les deux fichiers de clé que vous avez créés à l'Étape 3.
Mettez à jour le fichier
grub.cfg
en exécutant :>
sudo
transactional-update grub.cfgRedémarrez le système.
5.3 Ajout d'utilisateurs #
Étant donné que SLE Micro exige qu'un utilisateur sans privilèges se connecte via SSH ou accède à Cockpit, vous devez créer un compte de ce type.
Cette étape est facultative si vous avez défini un utilisateur sans privilèges dans Ignition ou Combustion. Si vous avez déployé votre système à l'aide de JeOS Firstboot, vous ne configurez que le mot de passe root
et vous devez créer le compte sans privilèges manuellement, comme décrit ci-dessous :
Exécutez la commande
useradd
comme suit :#
useradd -m USER_NAME
Définissez un mot de passe pour ce compte :
#
passwdUSER_NAMESi nécessaire, ajoutez l'utilisateur au groupe
wheel
:#
usermod -aG wheelUSER_NAME
5.4 Enregistrement de SLE 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 SLE Micro auprès de SUSE Customer Center, procédez comme suit :
Exécutez
transactional-update register
comme suit :#
transactional-update register -rREGISTRATION_CODE -e EMAIL_ADDRESSPour effectuer l'enregistrement sur un serveur d'enregistrement local, fournissez également l'URL du serveur :
#
transactional-update register -rREGISTRATION_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 SLE Micro. Remplacez EMAIL_ADDRESS par l'adresse électronique associée au compte SUSE que vous ou votre organisation utilisez pour gérer les abonnements.
Redémarrez votre système pour basculer vers le dernier instantané.
SLE Micro est à présent enregistré.
Pour obtenir des informations qui dépassent le cadre de cette section, reportez-vous à la documentation en ligne à l'aide de SUSEConnect --help
.
6 Mentions légales #
Copyright © 2006–2024 SUSE LLC et contributeurs. Tous droits réservés.
Il est autorisé de copier, distribuer et/ou modifier ce document conformément aux conditions de la licence de documentation libre GNU version 1.2 ou (à votre discrétion) 1.3, avec la section permanente qu'est cette mention de copyright et la licence. Une copie de la version de licence 1.2 est incluse dans la section intitulée « Licence de documentation libre GNU ».
Pour les marques commerciales SUSE, consultez le site Web https://www.suse.com/company/legal/. Toutes les autres marques de fabricants tiers sont la propriété de leur détenteur respectif. Les symboles de marque (®, ™, etc.) désignent des marques commerciales de SUSE et de ses sociétés affiliées. Des astérisques (*) désignent des marques commerciales de fabricants tiers.
Toutes les informations de cet ouvrage ont été regroupées avec le plus grand soin. Cela ne garantit cependant pas sa complète exactitude. Ni SUSE LLC, ni les sociétés affiliées, ni les auteurs, ni les traducteurs ne peuvent être tenus responsables des erreurs possibles ou des conséquences qu'elles peuvent entraîner.