Déploiement de SUSE Linux Micro à l'aide d'images disques brutes sur des disques zFCP IBM Z
- CONTENU
SUSE Linux Micro fournit des images brutes (également appelées images prédéfinies) qui peuvent être déployées directement sur le stockage de votre périphérique.
- MOTIF
Cet article fournit des instructions étape par étape concernant le déploiement de SUSE Linux Micro sur une machine IBM Z.
- EFFORT
La lecture de l'article prend environ 20 minutes.
- OBJECTIF
SUSE Linux Micro est déployé correctement sur votre système.
- CONDITIONS REQUISES
Un disque avec Linux en cours d'exécution.
Un disque sur lequel vous déployez l'image brute et sur lequel SUSE Linux Micro sera exécuté.
Disque qui sert de support de configuration.
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.1, « Détection du premier démarrage ».
1.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éé.
/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éé.
1.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
oucombustion.firstboot
à la ligne de commande du kernel.Vous pouvez supprimer le fichier
/etc/machine-id
et redémarrer le système.
2 Déploiement de SUSE Linux Micro #
La procédure de déploiement de SUSE Linux Micro comprend trois phases. Ne sautez aucune des phases et suivez l'ordre indiqué ci-dessous.
Assurez-vous que tous les disques sont disponibles et actifs. Pour plus d'informations, reportez-vous à la Section 3.1, « Préparation des disques zFCP/SCSI ».
Préparation d'un périphérique de configuration : pour configurer le réseau, ajouter des utilisateurs et enregistrer le système, préparez la configuration conformément aux instructions fournies à la Section 4, « Préparation du disque de configuration ».
Téléchargement de l'image de SUSE Linux Micro et déploiement sur le disque. Pour plus d'informations, reportez-vous à la Section 5, « Déploiement de l'image disque brute sur le disque ».
3 Préparation de la machine #
3.1 Préparation des disques zFCP/SCSI #
Pour préparer la machine en vue de son déploiement sur des disques zFCP/SCSI, procédez comme suit :
Recherchez tous les disques en exécutant la commande :
#
lszdev zfcp
TYPE ID ON PERS NAMES zfcp-host 0.0.fa00 yes yes zfcp-host 0.0.fc00 yes yes zfcp-lun 0.0.fa00:0x500507630b181216:0x4021400a00000000 yes no sda sg0 zfcp-lun 0.0.fc00:0x500507630b101216:0x4021400b00000000 yes no sdb sg1Dans la sortie, il doit y avoir un périphérique LUN, c'est-à-dire un périphérique du type
zfcp-lun
. Si la commande ne renvoie aucun périphérique, activez d'abord le disque :#
chzdev -e fa00
Si vous ne connaissez pas le nom du disque, contactez votre administrateur système.
Vérifiez que le périphérique LUN existe :
#
lszdev zfcp
TYPE ID ON PERS NAMES zfcp-host 0.0.fa00 yes yes zfcp-host 0.0.fc00 yes yes zfcp-lun 0.0.fa00:0x500507630b181216:0x4021400a00000000 yes no sda sg0 zfcp-lun 0.0.fc00:0x500507630b101216:0x4021400b00000000 yes no sdb sg1Notez les informations relatives aux périphériques LUN. Le périphérique
/dev/sda
est ensuite utilisé pour le déploiement de SUSE Linux Micro.Même si le formatage du disque sur lequel SUSE Linux Micro sera déployé n'est pas nécessaire, vérifiez si le disque est vide et ne contient aucune partition. S'il existe des partitions, supprimez-les à l'aide de la commande suivante. Notez que la commande effacera les données sur le périphérique fourni !
#
parted DEVICE_NAME rm 1
4 Préparation du disque de configuration #
Un disque virtuel peut être plus adapté aux déploiements de production, tandis qu'un disque physique convient mieux au développement.
Au cours du processus d'installation, vous pouvez transmettre une configuration complexe pour définir des utilisateurs, des répertoires ou pour fournir des clés SSH. Pour ce faire, créez un périphérique de configuration qui stocke une configuration complète. L'exemple de procédure suivant décrit comment créer un tel périphérique :
Identifiez le disque :
#
lsdasd Bus-ID Status Name Device Type BlkSz Size Blocks ================================================================================ 0.0.0100 active dasda 94:0 ECKD 4096 30720MB 7864380 0.0.0101 active dasdc 94:8 ECKD 4096 20480MB 5243040 0.0.0102 active dasdb 94:4 ECKD 4096 5120MB 1310760Dans la sortie ci-dessus, la valeur
Bus-ID
du disque à utiliser comme périphérique de configuration est 0.0.0102. Utilisez la valeur deBus-ID
ou la taille du disque pour identifier le disque, car le nom du périphérique (/dev/dasdX
) peut changer après chaque redémarrage.Formatez le disque. N'oubliez pas que le formatage supprime toutes les données sur ce disque.
#
dasdfmt -b 4096 -y -p /dev/dasdbCréez une partition :
#
parted /dev/dasdb mkpart ext4 0% 100%Formatez la partition :
#
mkfs.ext4 /dev/dasdbAttribuez à la partition l'étiquette
ignition
:#
e2label /dev/dasdb1 ignitionVérifiez le système de fichiers :
#
blkidMontez la partition :
#
mount /dev/dasdb1 /mntPréparez la structure de répertoires pour Ignition et/ou Combustion. Pour Ignition :
#
mkdir -p /mnt/ignitionPour Combustion :
#
mkdir -p /mnt/combustionCopiez votre clé SSH publique dans
/mnt/combustion
en tant quessh_key.pub
.Préparez la configuration comme décrit ci-après.
4.1 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.
4.1.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 à 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 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.
4.1.2 Exemples de configuration Combustion #
4.1.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.
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.
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.
4.1.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.
4.1.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 4.1.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.
4.1.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
4.1.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;
4.1.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.
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
4.1.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 6.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
4.1.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
4.1.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
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 4.1.2.1.9, « Activation de services ».
4.1.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
4.1.2.1.10 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 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é.
4.1.2.2 Exemple complet du fichier script
#
Le script
suivant fournit tous les paramètres susceptibles de vous servir de guides concernant la façon d'écrire votre propre configuration de Combustion. L'exemple ne nécessite aucune configuration supplémentaire d'Ignition.
#!/bin/bash # combustion: network prepare set -euxo pipefail ## The OSA subchannels to enable ZNET_SUBCHANNELS=0.0.1000,0.0.1001,0.0.1002 ## Network information to configure IPADDRESS="10.144.64.155/24" ## Formet is ipaddress/cidr GATEWAY="10.144.64.254" NAMESERVERS="10.144.53.53;10.144.53.54" ## A semicolon-separated list of name servers ## Hostname information NODE_HOSTNAME="micro6" ## Add password for root user ## Use either 'openssl passwd -6' or 'mkpasswd --method=sha-512' to encrypt the password. ROOT_USER_PASSWORD='PASSWORD_HASH' SSH_ROOT_PUBLIC_KEY=ssh_key.pub ## Add a regular user, because root login may be disallowed in some services. CREATE_NORMAL_USER=user ## Replace the "user" with a desired username here. NORMAL_USER_PASSWORD='PASSWORD_HASH' SSH_USER_PUBLIC_KEY=ssh_key.pub ## Register to SUSE Customer Center and install additional packages REG_EMAIL='tux@suse.com' ## Email address for product registration SLMICRO_REGCODE='REGISTRATIONCODE' ## A registration code required to install additional packages ADDITIONAL_PACKAGES='' ## A space separated list of additional packages to install nm_config() { umask 077 # Required for Network Manager configuration mkdir -p /etc/NetworkManager/system-connections/ cat >'/etc/NetworkManager/system-connections/Wired connection 1.nmconnection' <<EOF [connection] id=static type=ethernet autoconnect=true [ipv4] method=manual address1=$IPADDRESS gateway=$GATEWAY dns=$NAMESERVERS EOF } if [ "${1-}" = "--prepare" ]; then # Configure Network Manager in the initrd nm_config # Enable OSA network devices chzdev qeth $ZNET_SUBCHANNELS -ep chzdev qeth $ZNET_SUBCHANNELS -e exit 0 fi ## Post output on stdout exec > >(exec tee -a /dev/ttyS0) 2>&1 ## Set hostname echo $NODE_HOSTNAME > /etc/hostname ## Set root password echo root:$ROOT_USER_PASSWORD | chpasswd -e ## Add ssh public key as authorized key for the root user mkdir -pm700 /root/.ssh/ cat $SSH_ROOT_PUBLIC_KEY >> /root/.ssh/authorized_keys ## Mount /var and /home so user can be created smoothly if [ "$CREATE_NORMAL_USER" ] then mount /var && mount /home fi ## User creation if [ "$CREATE_NORMAL_USER" ] then echo "User creation is requested, creating user." useradd -m $CREATE_NORMAL_USER -s /bin/bash -g users echo $CREATE_NORMAL_USER:$NORMAL_USER_PASSWORD | chpasswd -e echo $CREATE_NORMAL_USER "ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/adminusers mkdir -pm700 /home/$CREATE_NORMAL_USER/.ssh/ chown -R $CREATE_NORMAL_USER:users /home/$CREATE_NORMAL_USER/.ssh/ cat $SSH_USER_PUBLIC_KEY >> /home/$CREATE_NORMAL_USER/.ssh/authorized_keys echo "Requested user has been created, requested password has been set." else echo "No user will be created" fi # Configure NM in the system nm_config # Enable OSA network device chzdev qeth $ZNET_SUBCHANNELS -ep chzdev qeth $ZNET_SUBCHANNELS -e ## Enable services echo "Enabling services." systemctl enable cockpit.socket systemctl enable sshd ## Unmount var and home if [ "$CREATE_NORMAL_USER" ] then umount /var && umount /home fi # Close outputs and wait for tee to finish exec 1>&- 2>&-; wait; echo "Configured with Combustion at $(date)" > /etc/issue.d/combustion
4.2.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.
Fuel Ignition ne couvre pas encore l'ensemble du vocabulaire Ignition, et le fichier JSON obtenu peut nécessiter des ajustements manuels supplémentaires.
4.2.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 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.
4.2.2 Exemples de configuration Ignition #
Cette section fournit plusieurs exemples de configuration d'Ignition au format JSON intégré.
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.
4.2.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.
4.2.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.
4.2.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 } ] } }
4.2.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" } ] } }
4.2.2.2.3 Attribut filesystems
#
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)
NoteDans 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 } ] } }
4.2.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 :
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 } ] } }
4.2.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" } } ] } }
4.2.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 6.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.
4.2.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" } ] } }
4.2.2.5 Conversion de fichiers au format YAML en JSON #
JSON est un format de fichier universel pour le stockage de données structurées. Les applications, par exemple Ignition, l'utilisent pour stocker et récupérer leur configuration. Étant donné que la syntaxe de JSON est complexe et difficile à lire pour les humains, vous pouvez écrire la configuration dans un format plus convivial appelé YAML, puis la convertir en JSON.
4.2.2.5.1 Conversion de fichiers YAML au format JSON #
L'outil qui convertit le vocabulaire spécifique à Ignition des fichiers YAML au format JSON est butane
. Il vérifie également la syntaxe du fichier YAML pour détecter les erreurs potentielles dans la structure. Pour obtenir la dernière version de butane
, ajoutez le dépôt suivant :
>
sudo
zypper ar -f \
https://download.opensuse.org/repositories/devel:/kubic:/ignition/openSUSE_Tumbleweed/ \
devel_kubic_ignition
Remplacez openSUSE_Tumbleweed
par l'un des éléments suivants (en fonction de votre distribution) :
'openSUSE_Leap_$releasever'
15.5
Vous pouvez maintenant installer l'outil butane
:
>
sudo
zypper ref && zypper in butane
Une fois l'installation terminée, vous pouvez appeler butane
en exécutant :
>
butane -p -o config.ign config.fcc
config.fcc
est le chemin d'accès au fichier de configuration YAML.config.ign
est le chemin d'accès au fichier de configuration JSON de sortie.L'option de commande
-p
ajoute des sauts de ligne au fichier de sortie et le rend ainsi plus lisible.
5 Déploiement de l'image disque brute sur le disque #
Pour déployer SUSE Linux Micro sur votre machine, procédez comme suit :
Téléchargez l'image disque brute à l'aide de
wget
ou decurl
. Par exemple :>
curl -L0kOExtrayez l'image :
>
unpack xz -d BUILD_IDENTIFICATION.raw.xzCopiez l'image disque brute sur le disque :
dd if=IMAGE_NAME.raw status=progress of=/dev/sda bs=4096
Pour vérifier la configuration correcte avec la commande suivante :
#
lsblkLa commande doit renvoyer deux partitions sur
/dev/sda
.Arrêtez l'instance Linux en cours d'exécution :
#
init 0Ouvrez le terminal x3270 et définissez le périphérique à partir duquel charger le système. Utilisez le numéro LUN du périphérique
/dev/sda
, mais divisez-le en blocs de 8 chiffres. Par exemple, la commande pour LUN 0.0.fa00:0x500507630b181216:0x4021400a00000000 se présente comme suit :#
SET LOADDEV PORTNAME 50050763 0b181216 LUN 4021400a 00000000
Démarrez SUSE Linux Micro :
#
ipl FA00
6 Étapes post-déploiement #
6.1 Enregistrement de SUSE Linux Micro à partir de la CLI #
Si votre système n'a pas été enregistré au cours du processus de déploiement à l'aide du script
Combustion, vous pouvez l'enregistrer à partir du système en cours d'exécution.
Pour enregistrer SUSE Linux Micro auprès de SUSE Customer Center, procédez comme suit :
Exécutez
transactional-update register
comme suit :#
transactional-update register -r REGISTRATION_CODE -e EMAIL_ADDRESSPour 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.
Redémarrez votre système pour basculer vers le dernier instantané.
SUSE Linux 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.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èges dans Combustion.
Exécutez la commande
useradd
comme suit :#
useradd -m USER_NAME
Définissez un mot de passe pour ce compte :
#
passwd USER_NAMESi nécessaire, ajoutez l'utilisateur au groupe
wheel
:#
usermod -aG wheel USER_NAME
7 Mentions légales #
Copyright © 2006–2025 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.