目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / ネットワークPXEブートを使用したSUSE Linux Microの展開

ネットワークPXEブートを使用したSUSE Linux Microの展開

発行日: 20/03/2025
概要

SUSE Linux Microは、ターゲットデバイスのPXEブートを使用してリモートで展開できるイメージを提供します。

目的

SUSE Linux Microをリモートで展開したいと考えています。

所要時間

この記事の理解には15分ほどを要します。

目標

SUSE Linux Microの適切に設定されたインスタンス。

要件
  • 適切に設定されたDHCPサーバ

  • インストールされているTFTPサーバ

1 SUSE Linux MicroのPXEインストールの概要

SUSE Linux Microは、PXE (Preboot Execution Environment)を介してインストールすることができます。そのためには、クライアントハードウェアがPXEでのブートをサポートしている必要があります。また、クライアントに必要なデータを提供するDHCPサーバとTFTPサーバがネットワーク上に存在している必要もあります。

展開手順は、次の手順にまとめることができます。

  1. (オプション) より複雑なfirstboot設定またはインストールをユーザの操作なしで実行するには、CombustionまたはIgnitionで使用されるfirstboot設定を準備します。たとえば、システムのユーザの定義、パッケージのインストール、ホスト名の設定、システムの登録、その他多くのタスクを行うことができます。詳細については、2.2項 「Combustionを使用したSUSE Linux Micro展開の設定」または2.3項 「Ignitionを使用したSUSE Linux Micro展開の設定」を参照してください。

  2. DHCPサーバが正しく設定されていることを確認します。

  3. インストールイメージを追加し、ブート設定を行い、TFTPサーバにCombustion/Ignition設定を配置して、TFTPサーバを準備します。詳細については、3項 「TFTPサーバの準備」を参照してください。

  4. ターゲットマシンでPXEブートを選択し、マシンを起動します。詳細については、4項 「イメージのリモート展開」を参照してください。

2 firstboot設定の作成

次のセクションでは、最初のブートでSUSE Linux Microを設定するために使用できる2つのツールについて説明します。Combustionを使用して設定用のBASHスクリプトを作成することも、Ignitionを使用してJSONを使用することもできます。また、複雑な設定や無人設定が必要ない場合は、4.1項 「JeOS Firstbootを使用したSUSE Linux Microの設定」で説明されているように、JeOS Firstbootを使用して基本的な設定を実行できるため、この手順をスキップできます。

2.1 最初のブートの検出

最初のブート時にのみ展開が設定されます。最初のブートと以降のブートを区別するために、最初のブートが終了するとファイル/etc/machine-idが作成されます。このファイルがファイルシステムに存在しない場合、システムはこれが最初のブートであると想定し、設定プロセスをトリガします。最初のブートの完了後、/etc/machine-idファイルが作成されます。

注記
注記: /etc/machine-idファイルは常に作成される

設定ファイルが不適切であるか欠落しているために適切な設定にならない場合でも、/etc/machine-idファイルが作成されます。

2.1.1 以降のブート時にシステムの再設定を強制する

最初のブートが発生した後で、システムを再設定する必要がある場合は、それ以降のブート時に再設定を強制することができます。ここでは2つのオプションがあります。

  • ignition.firstbootまたはcombustion.firstboot属性をカーネルコマンドラインに渡すことができます。

  • ファイル/etc/machine-idを削除して、システムを再起動できます。

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パスワードの設定やパッケージのインストールなどの変更が適用されます。

設定スクリプトはTFTPサーバ上に存在する必要があり、ブート時に、combustion.urlパラメータを使用してそのURLをカーネルに提供する必要があります。詳細については、3項 「TFTPサーバの準備」を参照してください。

ヒント
ヒント: IgnitionとCombustionの併用

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で実行される設定タスクの例を示します。

ヒント
ヒント: Fuel Ignitionを使用して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/fstabx-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/combustion
2.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/fstab
2.2.2.1.6 新しいユーザの作成

Cockpitなどの一部のサービスでは、root以外のユーザを使用してログインする必要があるため、ここで非特権ユーザを少なくとも1人定義します。または、5.2項 「ユーザの追加」の説明に従って、実行中のシステムからこのようなユーザを作成できます。

新しいユーザアカウントを追加するには、まず、ユーザのパスワードを表すハッシュ文字列を作成します。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
注記
注記

SSHを介したリモートログインを使用する必要がある場合は、SSHサービスを有効にする必要があります。詳細については、2.2.2.1.9項 「サービスの有効化」を参照してください。

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コマンドを使用して、変更されたスナップショットを作成する必要があります。

2.3 Ignitionを使用したSUSE Linux Micro展開の設定

Ignitionは、最初のブート時に仕様に従ってシステムを設定できるプロビジョニングツールです。

2.3.1 Ignitionの動作

システムが最初にブートすると、Ignitionはinitramfsの一部としてロードされ、(USBフラッシュディスク上、またはURLを指定できる)特定のディレクトリ内の設定ファイルを検索します。カーネルによってファイルシステムが一時ファイルシステムから実際のルートファイルシステムに切り替わる前(switch_rootコマンドが発行される前)に、すべての変更処理が実行されます。

Ignitionでは、JSON形式の設定ファイルconfig.ignが使用されます。その設定は手動で記述できるほか、https://ignite.opensuse.orgにあるFuel Ignition Webアプリケーションを使用して生成することもできます。

重要
重要

Fuel IgnitionはIgnitionの語彙をまだ完全には網羅していません。そのため、結果として生成されるJSONファイルをさらに手動で微調整しなければならない場合があります。

2.3.1.1 config.ign

config.ignには、複数のデータタイプ(オブジェクト、文字列、整数、ブール、オブジェクトのリスト)が含まれています。仕様の全詳細については、Ignition specification v3.3.0を参照してください。

version属性は必須であり、SUSE Linux Microの場合、その値は3.4.0またはそれ以下のバージョンに設定する必要があります。そのように設定しないとIgnitionの実行に失敗します。

rootとしてシステムにログインするには、少なくともrootのパスワードを記述する必要があります。ただし、SSHキーを使用してアクセスを確立することをお勧めします。パスワードの設定では、必ずセキュアなパスワードを使用します。ランダムに生成されたパスワードを使用する場合は、少なくとも10文字を使用してください。パスワードを手動で作成する場合は、11文字以上を使用し、大文字、小文字、および数字を組み合わせてください。

2.3.2 Ignitionの設定例

このセクションでは、組み込みのJSON形式でのIgnition設定の例をいくつか示します。

注記
注記: version属性は必須

config.ignはバージョン3.4.0以下を含む必要があります。バージョンは対応するIgnition仕様に変換されます。

2.3.2.1 デフォルトパーティショニング

イメージごとに次のサブボリュームがあります。

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

/etcディレクトリはoverlayFSとしてマウントされ、そこでは上位ディレクトリが/var/lib/overlay/1/etc/にマウントされます。

デフォルトでマウントされているサブボリュームは、/etc/fstabx-initrd.mountオプションで認識できます。その他のサブボリュームまたはパーティションは、IgnitionまたはCombustionのいずれかによって設定する必要があります。

デフォルトではマウントされないサブボリューム上で新しいユーザを追加する場合やファイルを変更する場合は、まずそのサブボリュームを宣言して、それもマウントされるようにする必要があります。

2.3.2.2 ストレージの設定

storage属性は、パーティションの設定、RAID、ファイルシステムの定義、ファイルの作成などに使用されます。パーティションを定義するには、disks属性を使用します。filesystems属性は、パーティションをフォーマットするために使用されます。files属性は、ファイルシステムのファイルの作成に使用できます。先に述べた属性のそれぞれについて、次のセクションで説明します。

2.3.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.3.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.3.2.2.3 filesystems属性
注記
注記: Ignitionはマウントユニットの変更を実行しません

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.3.2.2.4 files属性

files属性を使用して、マシンに任意のファイルを作成できます。デフォルトのパーティション方式の外部でファイルを作成するには、filesystems属性を使用してディレクトリを定義する必要があることに注意してください。

次の例では、ホスト名がfiles属性を使用して作成されます。ファイル/etc/hostnamesl-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.3.2.2.5 directories属性

directories属性は、ファイルシステムに作成されるディレクトリのリストです。directories属性には、少なくとも1つのpath属性が含まれている必要があります。

次に例を示します。

{
  "ignition": {
    "version": "3.0.0"
  },
  "storage": {
    "directories": [
      {
        "path": "/home/tux",
        "user": {
          "name": "tux"
        }
      }
    ]
  }
}
2.3.2.3 ユーザ管理

passwd属性は、ユーザを追加するために使用されます。Cockpitなどの一部のサービスでは、root以外のユーザを使用してログインする必要があるため、ここで非特権ユーザを少なくとも1人定義します。または、5.2項 「ユーザの追加」の説明に従って、実行中のシステムからこのようなユーザを作成できます。

システムにログインするには、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.3.2.4 systemdサービスの有効化

systemd属性で指定して、systemdサービスを有効にできます。

次に例を示します。

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

3 TFTPサーバの準備

PXEクライアントを使用してSUSE Linux Microを展開するには、次の手順を実行する必要があります。

  1. /etc/sysconfig/tftptftpdの設定を確認し、必要に応じてオプションを追加または変更します。詳細については、man 8 tftpdを参照してください。TFTPデーモンは設定変更なしで機能します。ファイルのデフォルトのルートディレクトリは/srv/tftpbootです。

  2. ブート時にtftpdの起動を確認したら、それを再起動して新しい設定を読み込みます。

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

    展開プロセス全体にわたって(数分かかる場合があります)、tftp.socketがアクティブなままであることを確認します。

  3. ディレクトリ構造を準備します。

    > sudo mkdir /srv/tftpboot/sl-micro
  4. 作成したディレクトリに移動します。

              > 
              cd /srv/tftpboot/sl-micro
  5. SL-Micro.ARCHITECTURE-6.1-IMAGE_TYPE-GM.install.tarをTFTPサーバにダウンロードします。

  6. TARファイルを解凍します。

              > 
              sudo
              tar xvf IMAGE_TAR -C .

    必要なファイルがすべて/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. 次のようにシンボリックリンクを作成します。

              > 
              sudo
              ln -s pxeboot.*.kernel linux
              > 
              sudo
              ln -s pxeboot.*.initrd initrd
  8. (オプション) 最初のブート設定用のディレクトリを作成します(Combustionおよび/またはIgnitionの設定の場合):

    1. Combustion設定の場合:

                    # 
                    mkdir combustion
    2. Ignition設定の場合:

                    # 
                    mkdir ignition
  9. Combustionおよび/またはIgnitionの設定を対応するディレクトリに配置します。

  10. SL-Micro.ARCH-6.1.appendファイル内の次のパラメータを調整/追加します。

    • rd.kiwi.install.image – インストールイメージSL-Micro.ARCH6.1.xzへのパスを指定します。このパスには、プロトコル、IPアドレス、およびインストールイメージへの相対パスを含める必要があります。

      tftp://TFTP_SERVER/sl-micro/IMAGE_NAME

      TFTPルートディレクトリが定義されている場合は、必ずパスから省略してください。デフォルトディレクトリ/srv/tftboot/etc/sysconfig/tftpで設定できます。または、-sオプションを使用して実行するバイナリを定義するサービスユニットファイル属性でこのディレクトリを指定することもできます。

    • rd.kiwi.oem.installdevice – 無人インストールを実行できます。

    • rd.kiwi.install.pass.bootparam – イメージがターゲットディスクにコピーされた後、kiwiはkexecを実行します。このパラメータは、カーネルに追加のパラメータを渡す必要があることをkiwiに指示します。たとえば、以下で説明するものです。

    • combustion.url – 必要に応じて、カーネルCLIに渡されるCombustionスクリプトへの完全なURLを指定します。

    • ignition.config.url – 必要に応じて、カーネルCLIに渡されるIgnition設定ファイルへの完全なURLを指定します。Combustionとともに使用することができます。

  11. SUSE Linux Microが含まれるように/srv/tftpboot/pxelinux.cfg/defaultファイルを調整します。

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

4 イメージのリモート展開

DHCPサーバとTFTPサーバを準備したら、ターゲットマシンでSUSE Linux Microの展開を開始できます。

  1. ターゲットマシンの電源を入れます。

  2. UEFIブートメニューに入り、PXEブートを選択します。

  3. マシンで展開が開始されます。カーネルとinitrdがTFTPからダウンロードされます。ブートローダが起動します。

  4. Install SUSE Linux Microを選択します。/srv/tftpboot/pxelinux.cfg/defaultで別のLABEL値を使用した場合、この項目は異なる可能性があります

  5. SUSE Linux Microを展開するディスクを選択し、そのデバイス上のデータの削除を確認します。その後、イメージがディスクにコピーされます。

  6. Kexecを使用すると、システムが再起動され、設定プロセスの準備が整います。

  7. SL Microを選択して、設定プロセスを開始します。IgnitionまたはCombustionの指示が提供されていない場合、JeOS Firstbootがトリガされます。詳細については、4.1項 「JeOS Firstbootを使用したSUSE Linux Microの設定」を参照してください。

4.1 JeOS Firstbootを使用したSUSE Linux Microの設定

JeOS Firstbootを使用してシステムを設定するには、次の手順を実行します。

  1. JeOS Firstbootにウェルカム画面が表示されます。Enterキーを押して確定します。

  2. 次の画面で、キーボードを選択して、ライセンス契約を確認し、タイムゾーンを選択します。

  3. Enter root password (rootパスワードの入力)ダイアログウィンドウで、rootのパスワードを入力して確定します。

    rootパスワードの入力
    図 1: rootパスワードの入力
  4. (オプション) アクセス用のSSHキーを登録するには、Yes (はい)を押します。​YES (はい)を押した場合は、以下の説明に従って進めます。

    1. SSHを使用して、表示されたIPアドレスに接続します。

    2. 公開鍵を正しく受け取った場合は、次の画面で確認します。

    3. SSHキーをインポートするためのプロンプトが表示されます。好みに応じてオプションを選択します。

  5. (オプション) 必要に応じて、User Creationフォームで非特権ユーザを作成できます。ユーザ名、フルネーム、パスワードを2回入力します。OKをクリックして、確定します。

  6. (オプション) CockpitにアクセスするためのMFAを設定するには、TOTPアプリケーションを開き、QRコードをスキャンします。アプリケーションから提供されたOTP値を入力します。OKをクリックして、続行します。

  7. 展開が成功したら、5.1項 「CLIからのSUSE Linux Microの登録」の説明に従ってシステムを登録します。

5 展開後の手順

5.1 CLIからのSUSE Linux Microの登録

展開が正常に完了したら、テクニカルサポートを利用したり、更新を受け取ったりするためにシステムを登録する必要があります。システムの登録は、transactional-update registerコマンドを使用してコマンドラインから実行できます。

SUSE Customer CenterでSUSE Linux Microを登録するには、次の手順に従います。

  1. 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メールアドレスで置き換えます。

  2. システムを再起動して、最新のスナップショットに切り替えます。

  3. これで、SUSE Linux Microが登録されました。

注記
注記: その他の登録オプション

このセクションの説明対象以外の情報については、SUSEConnect --helpでのインラインドキュメントを参照してください。

5.2 ユーザの追加

SUSE Linux Microでは、デフォルトでSSHを介してログインしたりCockpitにアクセスしたりするために、非特権ユーザが必要となるため、そのようなアカウントを作成することをお勧めします。

システムの展開時に非特権ユーザを定義した場合、この手順はオプションです。そうでない場合は、以下の説明に従って進めることができます。

  1. 次のように、useraddコマンドを実行します。

                # 
                useradd -m USER_NAME
  2. そのアカウントのパスワードを設定します。

    # passwd USER_NAME
  3. 必要に応じて、ユーザをwheelグループに追加します。

    # usermod -aG wheel USER_NAME