生ディスクイメージを使用した、仮想マシンへのSUSE Linux Microの展開
- 概要
SUSE Linux Microでは、仮想マシンに直接展開できる生イメージ(「事前構築のイメージとも呼ばれる)が提供されています。
- 目的
仮想化された展開により、ハードウェアリソースが節約されます。
- 所要時間
この記事の理解には20分ほどを要します。
- 目標
SUSE Linux Microを仮想マシンに正常に展開します。
- 要件
libvirtとKVM仮想化環境がインストールおよび実行されているVMホストサーバ。イメージの展開用に最低32GBのディスク容量。
(オプション) 設定メディア (例: USBフラッシュデバイス)。
1 事前構築のイメージについて #
事前構築のイメージとは、実行中のオペレーティングシステムを、すぐに使用できる形で表したものです。これらのイメージは、インストーラを使用する従来の方法でインストールするのではなく、ターゲットホストのハードディスクにコピーします。このトピックでは、これらの事前構築のイメージに関する基本的な情報について説明します。
事前構築のイメージは、そのイメージで提供されているツールを使用して、最初のブート時に設定することを目的としています。ブートローダは、1.1項 「最初のブートの検出」で説明されているように最初のブートを検出します。
1.1 最初のブートの検出 #
最初のブート時にのみ展開が設定されます。最初のブートと以降のブートを区別するために、最初のブートが終了するとファイル/etc/machine-idが作成されます。このファイルがファイルシステムに存在しない場合、システムはこれが最初のブートであると想定し、設定プロセスをトリガします。最初のブートの完了後、/etc/machine-idファイルが作成されます。
/etc/machine-idファイルは常に作成される
設定ファイルが不適切であるか欠落しているために適切な設定にならない場合でも、/etc/machine-idファイルが作成されます。
1.1.1 以降のブート時にシステムの再設定を強制する #
最初のブートが発生した後で、システムを再設定する必要がある場合は、それ以降のブート時に再設定を強制することができます。ここでは2つのオプションがあります。
ignition.firstbootまたはcombustion.firstboot属性をカーネルコマンドラインに渡すことができます。ファイル
/etc/machine-idを削除して、システムを再起動できます。
2 設定デバイスの準備 #
デフォルトでは、SSHキーを使用した場合にのみSUSE Linux Microへのroot SSHログインが許可されます。展開プロセス中に、インストールされたシステムにアクセスするために使用できる非特権ユーザを作成することをお勧めします。非特権ユーザアカウントは、最初のブート時にCombustionツールまたはIgnitionツールのいずれかを使用して作成できます。システムの展開時に非特権ユーザを作成すると、Cockpit Webインタフェースにアクセスする際にも役立ちます。
設定デバイスを準備するには、次の手順に従います。
SUSE Linux Microでサポートされている任意のファイルシステム(Ext3、Ext4など)にディスクをフォーマットします。
>sudo mkfs.ext4 /dev/sdYデバイスのラベルを、
ignition(Ignitionまたはのいずれかが使用されている場合)またはcombustioncombustion (Combustionのみが使用されている場合)に設定します。必要に応じて(たとえばWindowsホストの場合)、ラベルに大文字を使用します。デバイスにラベルを付けるには、次のコマンドを実行します。>sudo e2label /dev/sdY ignition仮想化システムまたはハードウェアがサポートしている任意のタイプの設定ストレージメディアを使用できます(ISOイメージ、USBメモリなど)。
デバイスをマウントします。
>sudo mount /dev/sdY /mnt使用する設定ツールに応じて、2.1.1.1項 「
config.ign」または2.2項 「Combustionを使用したSUSE Linux Micro展開の設定」に示すようにディレクトリ構造を作成します。>sudo mkdir /mnt/ignition/あるいは、
>sudo mkdir -p /mnt/combustion/IgnitionまたはCombustionで使用される設定のすべての要素を準備します。
2.1.1 Ignitionの動作 #
システムが最初にブートすると、Ignitionはinitramfsの一部としてロードされ、(USBフラッシュディスク上、またはURLを指定できる)特定のディレクトリ内の設定ファイルを検索します。カーネルによってファイルシステムが一時ファイルシステムから実際のルートファイルシステムに切り替わる前(switch_rootコマンドが発行される前)に、すべての変更処理が実行されます。
Ignitionでは、JSON形式の設定ファイルconfig.ignが使用されます。その設定は手動で記述できるほか、https://ignite.opensuse.orgにあるFuel Ignition Webアプリケーションを使用して生成することもできます。
Fuel Ignitionは、まだIgnitionの文法のすべてに対応しているわけではないので、得られたJSONファイルには手動による微調整が必要になることがあります。
2.1.1.1
config.ign
#
QEMU/KVM仮想マシンを設定する場合は、qemuコマンドの属性としてconfig.ignへのパスを提供します。次に例を示します。
-fw_cfg name=opt/com.coreos/config,file=PATH_TO_config.ign
Virtual Machine Manager (libvirt)で仮想マシンを設定する場合は、そのXML定義でconfig.ignファイルへのパスを入力します。次に例を示します。
<domain ... >
<sysinfo type="fwcfg">
<entry name="opt/com.coreos/config" file="/location/to/config.ign"/>
</sysinfo>
</domain>
または、libvirtを使用する場合は、virt-installコマンドのオプションとしてパスを指定できます。
--sysinfo type=fwcfg,entry0.name="opt/com.coreos/config",entry0.file="PATH_TO_config.ign>"
config.ignには、複数のデータタイプ(オブジェクト、文字列、整数、ブール、オブジェクトのリスト)が含まれています。仕様の全詳細については、Ignition
specification v3.3.0を参照してください。
version属性は必須であり、SUSE Linux Microの場合、その値は3.4.0またはそれ以下のバージョンに設定する必要があります。そのように設定しないとIgnitionの実行に失敗します。
rootとしてシステムにログインするには、少なくともrootのパスワードを記述する必要があります。ただし、SSHキーを使用してアクセスを確立することをお勧めします。パスワードの設定では、必ずセキュアなパスワードを使用します。ランダムに生成されたパスワードを使用する場合は、少なくとも10文字を使用してください。パスワードを手動で作成する場合は、11文字以上を使用し、大文字、小文字、および数字を組み合わせてください。
2.1.2 Ignitionの設定例 #
このセクションでは、組み込みのJSON形式でのIgnition設定の例をいくつか示します。
version属性は必須
各config.ignはバージョン3.4.0以下を含む必要があります。バージョンは対応するIgnition仕様に変換されます。
2.1.2.1 デフォルトパーティショニング #
イメージごとに次のサブボリュームがあります。
/home /root /opt /srv /usr/local /var
/etcディレクトリはoverlayFSとしてマウントされ、そこでは上位ディレクトリが/var/lib/overlay/1/etc/にマウントされます。
デフォルトでマウントされているサブボリュームは、/etc/fstabのx-initrd.mountオプションで認識できます。その他のサブボリュームまたはパーティションは、IgnitionまたはCombustionのいずれかによって設定する必要があります。
デフォルトではマウントされないサブボリューム上で新しいユーザを追加する場合やファイルを変更する場合は、まずそのサブボリュームを宣言して、それもマウントされるようにする必要があります。
2.1.2.2 ストレージの設定 #
storage属性は、パーティションの設定、RAID、ファイルシステムの定義、ファイルの作成などに使用されます。パーティションを定義するには、disks属性を使用します。filesystems属性は、パーティションをフォーマットするために使用されます。files属性は、ファイルシステムのファイルの作成に使用できます。先に述べた属性のそれぞれについて、次のセクションで説明します。
2.1.2.2.1 disks属性 #
disks属性は、これらのデバイス上でパーティションを定義できるデバイスのリストです。disks属性には、少なくとも1つのdevice属性が含まれている必要があり、その他の属性はオプションです。次の例では、単一の仮想デバイスを使用し、ディスクを4つのパーティションに分割します。
{
"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.2.2 raid属性 #
raidは、RAIDアレイのリストです。raidの次の属性は必須です:
- level
特定のRAIDアレイのレベル(linear、raid0、raid1、raid2、raid3、raid4、raid5、raid6)
- devices
絶対パスで参照されるアレイ内のデバイスのリスト
- name
mdデバイスに使用される名前
次に例を示します。
{
"ignition": {
"version": "3.0.0"
},
"storage": {
"raid": [
{
"devices": [
"/dev/sda",
"/dev/sdb"
],
"level": "raid1",
"name": "system"
}
]
}
}2.1.2.2.3 filesystems属性 #
filesystems属性は、マウントユニットを変更しません。新しいパーティションを追加する場合、または既存のパーティションを削除する場合は、マウントユニットを手動で調整する必要があります。
filesystemsには次の属性が含まれている必要があります:
- device
デバイスへの絶対パス。通常、物理ディスクの場合は
/dev/sda- format
ファイルシステム形式(Btrfs、Ext4、xfs、vfat、またはswap)
注記SUSE Linux Microの場合、
rootファイルシステムはBtrfsにフォーマットする必要があります。
次の例は、filesystems属性の使用方法を示しています。/optディレクトリは、/dev/sda1パーティションにマウントされ、Btrfsにフォーマットされます。デバイスは消去されません。
次に例を示します。
{
"ignition": {
"version": "3.0.0"
},
"storage": {
"filesystems": [
{
"device": "/dev/sda1",
"format": "btrfs",
"path": "/opt",
"wipeFilesystem": false
}
]
}
}
普通、通常のユーザのホームディレクトリは/home/USER_NAMEディレクトリにあります。デフォルトでは/homeがinitrdにマウントされないので、ユーザを正しく作成するには、このマウントを明示的に定義する必要があります。
{
"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.2.4 files属性 #
files属性を使用して、マシンに任意のファイルを作成できます。デフォルトのパーティション方式の外部でファイルを作成するには、filesystems属性を使用してディレクトリを定義する必要があることに注意してください。
次の例では、ホスト名がfiles属性を使用して作成されます。ファイル/etc/hostnameはsl-micro1のホスト名で作成されます。
JSONでは、ファイルモードを420などの10進数で指定できることに注意してください。
JSON:
{
"ignition": {
"version": "3.0.0"
},
"storage": {
"files": [
{
"overwrite": true,
"path": "/etc/hostname",
"contents": {
"source": "data:,sl-micro1"
},
"mode": 420
}
]
}
}2.1.2.2.5 directories属性 #
directories属性は、ファイルシステムに作成されるディレクトリのリストです。directories属性には、少なくとも1つのpath属性が含まれている必要があります。
次に例を示します。
{
"ignition": {
"version": "3.0.0"
},
"storage": {
"directories": [
{
"path": "/home/tux",
"user": {
"name": "tux"
}
}
]
}
}2.1.2.3 ユーザ管理 #
passwd属性は、ユーザを追加するために使用されます。Cockpitなどの一部のサービスでは、root以外のユーザを使用してログインする必要があるため、ここで非特権ユーザを少なくとも1人定義します。または、5.3項 「ユーザの追加」の説明に従って、実行中のシステムからこのようなユーザを作成できます。
システムにログインするには、rootと通常のユーザを作成し、それぞれのパスワードを設定します。たとえば、opensslコマンドを使用して、パスワードをハッシュする必要があります。
openssl passwd -6
このコマンドは、選択したパスワードのハッシュを作成します。このハッシュをpassword_hash属性の値として使用します。
次に例を示します。
{
"ignition": {
"version": "3.0.0"
},
"passwd": {
"users": [
{
"name": "root",
"passwordHash": "PASSWORD_HASH",
"sshAuthorizedKeys": [
"ssh-rsa SSH_KEY_HASH USER@HOST"
]
}
]
}
}
users属性には、少なくとも1つのname属性が含まれている必要があります。ssh_authorized_keysは、ユーザのsshキーのリストです。
2.1.2.4 systemdサービスの有効化 #
systemd属性で指定して、systemdサービスを有効にできます。
次に例を示します。
{
"ignition": {
"version": "3.0.0"
},
"systemd": {
"units": [
{
"enabled": true,
"name": "sshd.service"
}
]
}
}2.2 Combustionを使用したSUSE Linux Micro展開の設定 #
Combustionは、最初のブート時にシステムを設定できるdracutモジュールです。Combustionを使用すると、デフォルトパーティションの変更、ユーザのパスワードの設定、ファイルの作成、パッケージのインストールなどができます。
2.2.1 Combustionの動作 #
ignition.firstboot引数をカーネルのコマンドラインに渡した後でCombustionが呼び出されます。Combustionによって、用意したファイルscriptが読み取られ、そこに記述されたコマンドが実行されて、ファイルシステムが変更されます。scriptにネットワークフラグを記述していると、Combustionによってネットワークの設定が試みられます。/sysrootをマウントすると、Combustionによって/etc/fstabにあるすべてのマウントポイントの有効化が試みられます。続いてtransactional-updateが呼び出され、rootパスワードの設定やパッケージのインストールなどの変更が適用されます。
QEMU/KVM仮想マシンを設定する場合は、qemuコマンドの属性としてscriptへのパスを提供します。次に例を示します。
-fw_cfg name=opt/org.opensuse.combustion/script,file=PATH_TO_script
Virtual Machine Manager (libvirt)で仮想マシンを設定する場合は、そのXML定義でscriptファイルへのパスを入力します。次に例を示します。
<domain ... > <sysinfo type="fwcfg"> <entry name="opt/org.opensuse.combustion/script" file="/location/of/script"/> </sysinfo> </domain>
または、 libvirtを使用する場合は、virt-installコマンドのオプションとしてパスを指定できます。
--sysinfo type=fwcfg,entry0.name="opt/org.opensuse.combustion/script",entry0.file="PATH_TO_script>"
Combustionは、Ignitionとともに使用することができます。その場合は、設定メディアにignitionというラベルを付け、ignitionディレクトリとconfig.ignを次に示すようなディレクトリ構造に含めます。
<root directory>
└── combustion
└── script
└── other files
└── ignition
└── config.ignこのシナリオでは、IgnitionはCombustionの前に実行されます。
2.2.2 Combustionの設定例 #
2.2.2.1 script設定ファイル #
script設定ファイルは、transactional-updateシェルでCombustionによって解析され、実行されるコマンド群です。この記事では、Combustionで実行される設定タスクの例を示します。
Combustionスクリプトを作成するには、Fuel Ignition Webアプリケーションを使用できます。そこで適切なパラメータを選択すると、アプリケーションによってダウンロード可能なCombustionスクリプトが生成されます。
scriptファイルはシェルで解釈されることから、その先頭行には必ずインタープリタ宣言を記述します。たとえば、Bashの場合は次のように記述します。
#!/bin/bash
実際のシステムにログインするには、少なくともrootパスワードを指定します。ただし、SSHキーを使用した認証を確立することをお勧めします。rootパスワードを使用する必要がある場合は、セキュアなパスワードを設定してください。ランダムに生成されたパスワードを使用する場合は、少なくとも10文字を使用してください。パスワードを手動で作成する場合は、11文字以上を使用し、大文字、小文字、および数字を組み合わせてください。
2.2.2.1.1 デフォルトパーティショニング #
イメージごとに次のサブボリュームがあります。
/home /root /opt /srv /usr/local /var
/etcディレクトリはoverlayFSとしてマウントされ、そこでは上位ディレクトリが/var/lib/overlay/1/etc/にマウントされます。
デフォルトでマウントされているサブボリュームは、/etc/fstabのx-initrd.mountオプションで認識できます。その他のサブボリュームまたはパーティションは、IgnitionまたはCombustionのいずれかによって設定する必要があります。
デフォルトではマウントされないサブボリューム上で新しいユーザを追加する場合やファイルを変更する場合は、まずそのサブボリュームを宣言して、それもマウントされるようにする必要があります。
2.2.2.1.2 ネットワーク設定 #
最初のブート時にネットワーク接続を設定および使用するには、次のステートメントをscriptに追加します。
# combustion: network
このステートメントを使用すると、rd.neednet=1引数がdracutに渡されます。ネットワーク設定はデフォルトでDHCPを使用します。別のネットワーク設定が必要な場合は、2.2.2.1.3項 「initramfsでの変更の実行」の説明に従って進めます。
このステートメントを使用しない場合、システムはネットワーク接続がない設定のままになります。
2.2.2.1.3 initramfsでの変更の実行 #
initramfs環境の変更が必要になる場合があります。たとえば、NetworkManager用のカスタムネットワーク設定を/etc/NetworkManager/system-connections/に書き込む場合などです。そのためには、prepareステートメントを使用します。
たとえば、静的IPアドレスで接続を作成し、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/combustion2.2.2.1.4 タスクの完了待機 #
一部のプロセスは、バックグラウンドで実行される場合があります(出力を端末にリダイレクトするteeプロセスなど)。scriptの実行が終了する前に、実行中のすべてのプロセスが確実に完了するようにするには、次の行を追加します。
exec 1>&- 2>&-; wait;
2.2.2.1.5 パーティショニング #
SUSE Linux Micro生イメージは、デフォルトのパーティショニングスキームで提供されます。異なるパーティショニングを使用することもできます。次の一連のスニペット例では、/homeを別のパーティションに移動します。
次のスクリプトは、スナップショットに含まれていない変更を実行します。このスクリプトが失敗してスナップショットが破棄された場合、/dev/vdbデバイスへの変更など、特定の変更は表示されたままになり、元に戻すことはできません。
次のスニペットは、/dev/vdbデバイス上にパーティションが1つのみのGPTパーティショニングスキーマを作成します。
sfdisk /dev/vdb <<EOF sleep 1 label: gpt type=linux EOF partition=/dev/vdb1
sfdiskコマンドは完了までに時間がかかる場合があるため、sfdiskの後にsleepコマンドを使用してlabelを延期します。
パーティションはBtrfsにフォーマットされます。
wipefs --all ${partition}
mkfs.btrfs ${partition}
次のスニペットによって、/homeの移動可能なコンテンツが新しい/homeフォルダの場所に移動されます。
mount /home
mount ${partition} /mnt
rsync -aAXP /home/ /mnt/
umount /home /mnt
次のスニペットは、/etc/fstabの古いエントリを削除して新しいエントリを作成します。
awk -i inplace '$2 != "/home"' /etc/fstab
echo "$(blkid -o export ${partition} | grep ^UUID=) /home btrfs defaults 0 0" >>/etc/fstab2.2.2.1.6 新しいユーザの作成 #
Cockpitなどの一部のサービスでは、root以外のユーザを使用してログインする必要があるため、ここで非特権ユーザを少なくとも1人定義します。または、5.3項 「ユーザの追加」の説明に従って、実行中のシステムからこのようなユーザを作成できます。
新しいユーザアカウントを追加するには、まず、ユーザのパスワードを表すハッシュ文字列を作成します。openssl passwd -6コマンドを使用します。
パスワードハッシュを取得したら、次の行をscriptに追加します。
mount /home useradd -m EXAMPLE_USER echo 'EXAMPLE_USER:PASSWORD_HASH' | chpasswd -e
2.2.2.1.7 rootのパスワードの設定 #
rootパスワードを設定する前に、openssl passwd
-6などを使用して、そのパスワードのハッシュを生成します。パスワードを設定するには、scriptに次の行を追加します。
echo 'root:PASSWORD_HASH' | chpasswd -e
2.2.2.1.8 SSHキーの追加 #
次のスニペットは、rootのSSHキーを保存するディレクトリを作成してから、設定デバイス上にあるSSH公開鍵をauthorized_keysファイルにコピーします。
mkdir -pm700 /root/.ssh/ cat id_rsa_new.pub >> /root/.ssh/authorized_keys
2.2.2.1.9 サービスの有効化 #
SSHサービスなどのシステムサービスを有効にするには、scriptに次の行を追加します。
systemctl enable sshd.service
2.2.2.1.10 パッケージのインストール #
特定のパッケージでは追加のサブスクリプションが必要になる場合があるので、システムの事前登録が必要なことがあります。また、追加のパッケージをインストールするには、利用可能なネットワーク接続が必要になる場合もあります。
最初のブート設定時に、システムに追加パッケージをインストールできます。たとえば、以下を追加して、vimエディタをインストールできます。
zypper --non-interactive install vim-small
設定が完了して、設定されたシステムでブートした後では、zypperを使用できないことに注意してください。後で変更を実行するには、transactional-updateコマンドを使用して、変更されたスナップショットを作成する必要があります。
3 仮想マシンの準備 #
このセクションでは、新しい仮想マシンを準備する方法と、そのマシンにSUSE Linux Microを展開するために実行する手順について説明します。
仮想化されたSUSE Linux Microを実行する予定のVMホストサーバにSUSE Linux Microディスクイメージをダウンロードします。
Virtual Machine Managerを起動し、 › を選択します。
を選択します。で確定します。
以前にダウンロードしたSUSE Linux Microディスクイメージのパスと、展開するLinux OSのタイプ(
Generic Linux 2020など)を指定します。で確定します。SUSE Linux Micro仮想マシンに割り当てるメモリの量とプロセッサの数を指定し、で確定します。
仮想マシンの名前と使用するネットワークを指定します。
暗号化されたSUSE Linux Microイメージを展開する場合は、次の追加の手順を実行します。
4 JeOS Firstbootを使用した設定 #
設定デバイスを提供せずにSUSE Linux Microを初めて起動する場合、JeOS Firstbootを使用すると、システムの最小限の設定を実行できます。展開プロセスをより細かく制御する必要がある場合は、設定デバイスとIgnitionまたはCombustionの設定を使用してください。詳細については、2.1項 「Ignitionを使用したSUSE Linux Micro展開の設定」および2.2項 「Combustionを使用したSUSE Linux Micro展開の設定」を参照してください。
JeOS Firstbootを使用してシステムを設定するには、次の手順を実行します。
にウェルカム画面が表示されます。Enterキーを押して確定します。
次の画面で、キーボードを選択して、ライセンス契約を確認し、タイムゾーンを選択します。
ダイアログウィンドウで、
rootのパスワードを入力して確定します。図 3: rootパスワードの入力 #暗号化した展開では、JeOS Firstbootによって次の処理が実行されます。
デフォルトのパスフレーズを置き換える新しいパスフレーズの入力を要求します。
新しいLUKSキーを生成し、パーティションを再暗号化します。
LUKSヘッダにセカンダリキースロットを追加し、それをTPMデバイスに対して秘匿状態にします。
暗号化したイメージを展開する場合は、次のステップに従います。
目的の保護方法を選択してで確定します。
LUKS暗号化の回復パスワードを入力し、それを再度入力します。ルートファイルシステムが再度暗号化されます。
図 4: 暗号化方法の選択 #(オプション) アクセス用のSSHキーを登録するには、Yes (はい)を押します。YES (はい)を押した場合は、以下の説明に従って進めます。
SSHを使用して、表示されたIPアドレスに接続します。
公開鍵を正しく受け取った場合は、次の画面で確認します。
SSHキーをインポートするためのプロンプトが表示されます。好みに応じてオプションを選択します。
(オプション) 必要に応じて、
User Creationフォームで非特権ユーザを作成できます。ユーザ名、フルネーム、パスワードを2回入力します。OKをクリックして、確定します。(オプション) CockpitにアクセスするためのMFAを設定するには、TOTPアプリケーションを開き、QRコードをスキャンします。アプリケーションから提供されたOTP値を入力します。OKをクリックして、続行します。
展開が成功したら、5.4項 「CLIからのSUSE Linux Microの登録」の説明に従ってシステムを登録します。
5 展開後の手順 #
5.1 暗号化されたディスクイメージの展開 #
SUSE Linux Microの暗号化された生ディスクイメージは、自動的にはディスク容量いっぱいまで拡張されません。この手順では、イメージを希望するサイズに拡張する手順について説明します。
qemu-imgコマンドを使用して、ディスクイメージを目的のサイズまで大きくします。partedコマンドを使用して、LUKSデバイスが存在するパーティション(パーティション番号3など)のサイズを目的のサイズに変更します。cryptsetup resize luksコマンドを実行します。パスフレーズを要求されるので、それを入力して、暗号化したデバイスのサイズを変更します。transactional-update shellコマンドを実行して、ディスクの現在のスナップショットで読み込み書き込みシェルを開きます。Btrfsファイルシステムのサイズを目的のサイズに変更します。次に例を示します。#btrfs fi resize max /exitでシェルを終了し、rebootでシステムを再起動します。
5.2 暗号化されたシステムの再暗号化 #
システムはセキュリティ保護されていません。したがって、ディスクの再暗号化が完了するまで機密データを保存しないでください。
JeOS Firstbootにより、展開フレーズ中に新しいパスフレーズの入力が求められます。入力すると、システムは自動的に再暗号化されるため、それ以上のアクションは必要はありません。
SUSE Linux Microの暗号化イメージは、デフォルトのLUKSパスフレーズを使用して提供されています。システムをセキュリティ保護するため、必ずシステムの展開後にパスフレーズを変更してください。そのためには、次の説明に従います。次の手順は同じシェルセッションで実行してください。
必要な関数をシェルにインポートします。
#source /usr/share/fde/luks基礎となるLUKSデバイスを特定し、さらに使用される変数を定義します。
#luks_name=$(expr "`df --output=source / | grep /dev/`" : ".*/\(.*\)")また、以下を実行します。
#luks_dev=$(luks_get_underlying_device "$luks_name")デフォルトのパスフレーズ1234を保存するキーファイルと、新しいパスフレーズを含むキーファイルを作成します。
回復パスワードを変更します。
#cryptsetup luksChangeKey --key-file PATH_TO_DEFAULT --pbkdf pbkdf2 "${luks_dev}" PATH_TO_NEWPATH_TO_DEFAULTは、デフォルトのパスフレーズを含むキーファイルのパスです。PATH_TO_NEWは、新しいパスフレーズを含むキーファイルのパスです。
LUKSデバイスを再暗号化します。
#cryptsetup reencrypt --key-file PATH_TO_NEW ${luks_dev}新しいランダムキーを作成してTPMで封印します。
>sudofdectl regenerate-key --passfile PATH_TO_NEWステップ 3で作成したキーファイルを両方とも削除します。
次のコマンドを実行して、
grub.cfgファイルを更新します。>sudotransactional-update grub.cfgシステムを再起動します。
5.3 ユーザの追加 #
SUSE Linux Microでは、デフォルトでSSHを介してログインしたりCockpitにアクセスしたりするために、非特権ユーザが必要となるため、そのようなアカウントを作成することをお勧めします。
システムの展開時に非特権ユーザを定義した場合、この手順はオプションです。そうでない場合は、以下の説明に従って進めることができます。
次のように、
useraddコマンドを実行します。#useradd -m USER_NAMEそのアカウントのパスワードを設定します。
#passwd USER_NAME必要に応じて、ユーザを
wheelグループに追加します。#usermod -aG wheel USER_NAME
5.4 CLIからのSUSE Linux Microの登録 #
展開が正常に完了したら、テクニカルサポートを利用したり、更新を受け取ったりするためにシステムを登録する必要があります。システムの登録は、transactional-update
registerコマンドを使用してコマンドラインから実行できます。
SUSE Customer CenterでSUSE Linux Microを登録するには、次の手順に従います。
transactional-update registerを次のように実行します。#transactional-update register -r REGISTRATION_CODE -e EMAIL_ADDRESSローカル登録サーバで登録するには、さらに次のようにサーバへのURLも入力します。
#transactional-update register -r REGISTRATION_CODE -e EMAIL_ADDRESS \ --url "https://suse_register.example.com/"REGISTRATION_CODEは、SUSE Linux Microのコピーで受け取った登録コードで置き換えます。EMAIL_ADDRESSは、各自または各自の組織が登録の管理に使用しているSUSEアカウントに関連付けられたEメールアドレスで置き換えます。
システムを再起動して、最新のスナップショットに切り替えます。
これで、SUSE Linux Microが登録されました。
このセクションの説明対象以外の情報については、SUSEConnect --helpでのインラインドキュメントを参照してください。
6 法的事項 #
Copyright © 2006–2025 SUSE LLC and contributors. All rights reserved.
この文書は、GNUフリー文書ライセンスのバージョン1.2または(オプションとして)バージョン1.3の条項に従って、複製、頒布、および/または改変が許可されています。ただし、この著作権表示およびライセンスは変更せずに記載すること。ライセンスバージョン1.2のコピーは、「GNUフリー文書ライセンス」セクションに含まれています。
SUSEの商標については、https://www.suse.com/company/legal/を参照してください。その他の第三者のすべての商標は、各社の所有に帰属します。商標記号(®、™など)は、SUSEおよび関連会社の商標を示します。アスタリスク(*)は、第三者の商標を示します。
本書のすべての情報は、細心の注意を払って編集されています。しかし、このことは正確性を完全に保証するものではありません。SUSE LLC、その関係者、著者、翻訳者のいずれも誤りまたはその結果に対して一切責任を負いかねます。



