|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
PXEブートインストール
前提条件
ノードは、インストーラーが完全なISOファイルをtmpfsにロードするため、少なくとも*8 GiB*のRAMを持っている必要があります。
|
インストーラーは、ハードウェアが生産使用のための最小要件を満たしているかどうかを自動的にチェックします。チェックのいずれかが失敗した場合、インストールは停止されます。この動作をオーバーライドするには、設定ファイルオプション `install.skipchecks=true`またはカーネルパラメータ `harvester.install.skipchecks=true`のいずれかを設定してください。 |
HTTPサーバーの準備
ブートファイルを提供するためにHTTPサーバーが必要です。 NGINX HTTPサーバーのIPが`10.100.0.10`であり、`/usr/share/nginx/html/`ディレクトリを`http://10.100.0.10/`のパスで提供していると仮定しましょう。
ブートファイルの準備
-
リリースページから必要なファイルをダウンロードしてください。
-
.iso:
harvester-<version>-amd64.iso -
カーネル:
harvester-<version>-vmlinuz-amd64 -
initrd:
harvester-<version>-initrd-amd64 -
rootfs squashfsイメージ:
harvester-<version>-rootfs-amd64.squashfs
-
-
ファイルを提供してください。
ダウンロードしたファイルを適切な場所にコピーまたは移動して、HTTPサーバー経由でダウンロードできるようにしてください。次に例を示します。
sudo mkdir -p /usr/share/nginx/html/harvester/ sudo cp /path/to/harvester-<version>-amd64.iso /usr/share/nginx/html/harvester/ sudo cp /path/to/harvester-<version>-vmlinuz-amd64 /usr/share/nginx/html/harvester/ sudo cp /path/to/harvester-<version>-initrd-amd64 /usr/share/nginx/html/harvester/ sudo cp /path/to/harvester-<version>-rootfs-amd64.squashfs /usr/share/nginx/html/harvester/
iPXEブートスクリプトの準備
自動インストールを行う際には、2つのモードがあります:
-
CREATE:初期クラスターを構築するためにノードをインストールしています。 -
JOIN:既存のクラスターに参加するためにノードをインストールしています。
異なるシナリオをサポートするために、ノードに役割を割り当てることができます。詳細については、設定ファイルを参照してください。
CREATEモード
|
セキュリティリスク:以下の設定ファイルには、秘密にしておくべき資格情報が含まれています。設定ファイルを公開しないでください。 |
設定ファイルという名前の`config-create.yaml`を作成し、`CREATE`モード用にしてください。必要に応じて値を修正してください:
# cat /usr/share/nginx/html/harvester/config-create.yaml
scheme_version: 1
token: token # Replace with a desired token
os:
hostname: node1 # Set a hostname. This can be omitted if DHCP server offers hostnames
ssh_authorized_keys:
- ssh-rsa ... # Replace with your public key
password: p@ssword # Replace with your password
ntp_servers:
- 0.suse.pool.ntp.org
- 1.suse.pool.ntp.org
install:
mode: create
management_interface: # available as of v1.1.0
interfaces:
- name: ens5
default_route: true
method: dhcp
bond_options:
mode: balance-tlb
miimon: 100
device: /dev/sda # The target disk to install
# data_disk: /dev/sdb # It is recommended to use a separate disk to store VM data
iso_url: http://10.100.0.10/harvester/harvester-<version>-amd64.iso
# tty: ttyS1,115200n8 # For machines without a VGA console
vip: 10.100.0.99 # The VIP to access the UI. Make sure the IP is free to use
vip_mode: static # Or dhcp, check configuration file for more information
# vip_hw_addr: 52:54:00:ec:0e:0b # Leave empty when vip_mode is static
`CREATE`モードを使用してインストールする必要があるマシンの場合、以下は上記の設定でカーネルをブートするiPXEスクリプトです:
#!ipxe kernel harvester-<version>-vmlinuz ip=dhcp net.ifnames=1 rd.cos.disable rd.noverifyssl console=tty1 root=live:http://10.100.0.10/harvester/rootfs.squashfs harvester.install.automatic=true harvester.install.config_url=http://10.100.0.10/harvester/config-create.yaml initrd harvester-<version>-initrd boot
これは、iPXEスクリプトが`/usr/share/nginx/html/harvester/ipxe-create`に保存されていることを前提としています。
|
複数のネットワークインタフェースがある場合、dracutの`ip= ブートインタフェースのみを指定するために`ip=`パラメータを使用してください。*1つの`ip=`パラメータ*のみをサポートしています。 |
JOINモード
|
セキュリティリスク:下記の設定ファイルには、秘密にしておくべき認証情報が含まれています。設定ファイルを公開しないでください。 |
`JOIN`モード用に、`config-join.yaml`という名前の設定ファイルを作成してください。必要に応じて値を修正してください:
# cat /usr/share/nginx/html/harvester/config-join.yaml
scheme_version: 1
server_url: https://10.100.0.99:443 # Should be the VIP set up in "CREATE" config
token: token
os:
hostname: node2
ssh_authorized_keys:
- ssh-rsa ... # Replace with your public key
password: p@ssword # Replace with your password
dns_nameservers:
- 1.1.1.1
- 8.8.8.8
install:
mode: join
management_interface: # available as of v1.1.0
interfaces:
- name: ens5
default_route: true
method: dhcp
bond_options:
mode: balance-tlb
miimon: 100
device: /dev/sda # The target disk to install
# data_disk: /dev/sdb # It is recommended to use a separate disk to store VM data
iso_url: http://10.100.0.10/harvester/harvester-<version>-amd64.iso
# tty: ttyS1,115200n8 # For machines without a VGA console
`mode`は`join`であり、`server_url`を提供する必要があることに注意してください。
`JOIN`モードでインストールする必要があるマシンの場合、以下は上記の設定でカーネルをブートするiPXEスクリプトです:
#!ipxe kernel harvester-<version>-vmlinuz ip=dhcp net.ifnames=1 rd.cos.disable rd.noverifyssl console=tty1 root=live:http://10.100.0.10/harvester/rootfs.squashfs harvester.install.automatic=true harvester.install.config_url=http://10.100.0.10/harvester/config-join.yaml initrd harvester-<version>-initrd boot
これは、iPXEスクリプトが`/usr/share/nginx/html/harvester/ipxe-join`に保存されていることを前提としています。
DHCPサーバ設定
|
PXEインストールシナリオでは、DHCPサーバを構成する際に_routers_オプション( ISOインストールシナリオでは、管理ネットワークインタフェースがDHCPモードのとき、DHCPサーバを構成する際に_routers_オプション( 次に例を示します。 Harvester Host:~ # ip route
default via 192.168.122.1 dev mgmt-br proto dhcp
詳細については、 ISC DHCPv4オプション設定を参照してください。 |
以下は、ISC DHCPサーバを構成してiPXEスクリプトを提供する方法の例です:
option architecture-type code 93 = unsigned integer 16;
subnet 10.100.0.0 netmask 255.255.255.0 {
option routers 10.100.0.10;
option domain-name-servers 192.168.2.1;
range 10.100.0.100 10.100.0.253;
}
group {
# create group
if exists user-class and option user-class = "iPXE" {
# iPXE Boot
if option architecture-type = 00:07 {
filename "http://10.100.0.10/harvester/ipxe-create-efi";
} else {
filename "http://10.100.0.10/harvester/ipxe-create";
}
} else {
# PXE Boot
if option architecture-type = 00:07 {
# UEFI
filename "ipxe.efi";
} else {
# Non-UEFI
filename "undionly.kpxe";
}
}
host node1 { hardware ethernet 52:54:00:6b:13:e2; }
}
group {
# join group
if exists user-class and option user-class = "iPXE" {
# iPXE Boot
if option architecture-type = 00:07 {
filename "http://10.100.0.10/harvester/ipxe-join-efi";
} else {
filename "http://10.100.0.10/harvester/ipxe-join";
}
} else {
# PXE Boot
if option architecture-type = 00:07 {
# UEFI
filename "ipxe.efi";
} else {
# Non-UEFI
filename "undionly.kpxe";
}
}
host node2 { hardware ethernet 52:54:00:69:d5:92; }
}
設定ファイルは、サブネットと2つのグループを宣言します。最初のグループは`CREATE`モードを使用してブートするホスト用で、もう一つは`JOIN`モード用です。デフォルトでは、iPXEパスが選択されますが、PXEクライアントを検出すると、クライアントアーキテクチャに応じてiPXEイメージを提供します。まず、これらのイメージとTFTPサーバを準備してください。
インターネットシステムコンソーシアム(ISC)は、2022年にISC DHCPの最終 サービス終了(EOL)を発表しました。ISC DHCPユーザーは、ISCがより現代的なネットワーク環境向けに設計した新しく機能豊富な Kea DHCPへ移行することが推奨されます。すでにKea DHCPv4サーバを使用している場合は、以下の設定例を確認してください。詳細については、 Kea DHCPv4設定を参照してください。
"client-classes": [
{
"name": "iPXE UEFI/CREATE",
"test": "option[user-class].exists and substring(option[user-class].hex,0,4) == 'iPXE' and option[client-system].hex == 0x0007",
"boot-file-name": "http://10.100.0.10/harvester/ipxe-create-efi",
"only-if-required": true
},
{
"name": "iPXE non-UEFI/CREATE",
"test": "option[user-class].exists and substring(option[user-class].hex,0,4) == 'iPXE' and not option[client-system].hex == 0x0007",
"boot-file-name": "http://10.100.0.10/harvester/ipxe-create",
"only-if-required": true
},
{
"name": "iPXE UEFI/JOIN",
"test": "option[user-class].exists and substring(option[user-class].hex,0,4) == 'iPXE' and option[client-system].hex == 0x0007",
"boot-file-name": "http://10.100.0.10/harvester/ipxe-join-efi",
"only-if-required": true
},
{
"name": "iPXE non-UEFI/JOIN",
"test": "option[user-class].exists and substring(option[user-class].hex,0,4) == 'iPXE' and not option[client-system].hex == 0x0007",
"boot-file-name": "http://10.100.0.10/harvester/ipxe-join",
"only-if-required": true
},
{
"name": "PXE UEFI",
"test": "option[user-class].exists and not substring(option[user-class].hex,0,4) == 'iPXE' and option[client-system].hex == 0x0007",
"next-server": "10.100.0.20",
"boot-file-name": "ipxe.efi"
},
{
"name": "PXE non-UEFI",
"test": "option[user-class].exists and not substring(option[user-class].hex,0,4) == 'iPXE' and option[client-system].hex == 0x0007",
"next-server": "10.100.0.20",
"boot-file-name": "undionly.kpxe"
}
]
"subnet4": [
{
"subnet": "10.100.0.0/24",
"pools": [
{
"pool": "10.100.0.100 - 10.100.0.199",
"require-client-classes" : [ "iPXE UEFI/CREATE", "iPXE non-UEFI/CREATE" ]
}.
{
"pool": "10.100.0.200 - 10.100.0.253",
"require-client-classes" : [ "iPXE UEFI/JOIN", "iPXE non-UEFI/JOIN" ]
}
],
"option-data": [
{
"name": "routers",
"data": "10.100.0.10"
}
],
"reservations": [
// assign ip address to the host for booting in CREATE mode
{
"hw-address": "52:54:00:6b:13:e2",
"ip-address": "10.100.0.101"
},
// assign ip address to the host for booting in JOIN mode
{
"hw-address": "52:54:00:69:d5:92",
"ip-address": "10.100.0.201"
}
]
}
]
設定ファイル
詳細については、設定ファイルを参照してください。
デフォルトでは、最初のノードがクラスターの管理ノードになります。ノードが3つある場合、最初に追加された他の2つのノードは自動的に管理ノードに昇格し、HAクラスターを形成します。
異なるゾーンから管理ノードを昇格させたい場合は、os.labels設定にノードラベル`topology.kubernetes.io/zone`を追加できます。この場合、少なくとも3つの異なるゾーンが必要です。
ユーザーはカーネルパラメータを介して設定を提供することもできます。たとえば、CREATE インストールモードを指定するには、ユーザーはブート時に harvester.install.mode=create カーネルパラメータを渡すことができます。カーネルパラメータを通じて渡された値は、設定ファイルに指定された値よりも優先されます。
UEFI HTTPブートサポート
UEFIファームウェアは、HTTPサーバーからブートイメージを読み込むことをサポートしています。このセクションでは、UEFI HTTPブートを使用してiPXEプログラムを読み込み、自動インストールを実行する方法を示します。
iPXEプログラムを提供する
http://boot.ipxe.org/ipxe.efi からiPXE UEFIプログラムをダウンロードし、ipxe.efi がHTTPサーバーからダウンロードできることを確認してください。次に例を示します。
cd /usr/share/nginx/html/harvester/
wget http://boot.ipxe.org/ipxe.efi
そのファイルは現在、http://10.100.0.10/harvester/ipxe.efi からローカルにダウンロードできます。
DHCPサーバ設定
ユーザーが最初に動的IPを取得してUEFI HTTPブート機能を使用する予定の場合、DHCPサーバーはそのようなリクエストを受け取ったときにiPXEプログラムのURLを提供する必要があります。以下は、更新されたISC DHCPサーバーグループの例です:
group {
# create group
if exists user-class and option user-class = "iPXE" {
# iPXE Boot
if option architecture-type = 00:07 {
filename "http://10.100.0.10/harvester/ipxe-create-efi";
} else {
filename "http://10.100.0.10/harvester/ipxe-create";
}
} elsif substring (option vendor-class-identifier, 0, 10) = "HTTPClient" {
# UEFI HTTP Boot
option vendor-class-identifier "HTTPClient";
filename "http://10.100.0.10/harvester/ipxe.efi";
} else {
# PXE Boot
if option architecture-type = 00:07 {
# UEFI
filename "ipxe.efi";
} else {
# Non-UEFI
filename "undionly.kpxe";
}
}
host node1 { hardware ethernet 52:54:00:6b:13:e2; }
}
elsif substring ステートメントは新しく、UEFI HTTPブートDHCPリクエストを受け取ったときに http://10.100.0.10/harvester/ipxe.efi を提供します。クライアントがiPXEプログラムを取得して実行すると、iPXEプログラムは再度DHCPリクエストを送信し、URL http://10.100.0.10/harvester/ipxe-create-efi からiPXEスクリプトを読み込みます。
Kea DHCPv4サーバーでUEFI HTTPブートを有効にしたい場合は、`client-classes`の末尾に新しい`client-class`を追加する必要があります。
例:
{
"name": "HTTP",
"test": "substring(option[vendor-class-identifier].hex,0,10) == 'HTTPClient'",
"option-data": [
{
"name": "vendor-class-identifier",
"data": "HTTPClient"
}
],
"boot-file-name": "http://10.100.0.10/harvester/ipxe.efi"
}
UEFIブート用のiPXEスクリプト
カーネルパラメータでUEFIブート用のinitrdイメージを指定することは必須です。以下は、`CREATE`モード用のiPXEスクリプトの更新版です。
#!ipxe kernel harvester-<version>-vmlinuz initrd=harvester-<version>-initrd ip=dhcp net.ifnames=1 rd.cos.disable rd.noverifyssl console=tty1 root=live:http://10.100.0.10/harvester/rootfs.squashfs harvester.install.automatic=true harvester.install.config_url=http://10.100.0.10/harvester/config-create.yaml initrd harvester-<version>-initrd boot
パラメータ initrd=harvester-<version>-initrd は必須です。
タグ付きVLANネットワークブート
タグ付きVLANネットワーク上でPXEブートを実行するには、SUSE Virtualization ホストを次のBIOS/UEFI設定で構成する必要があります:
-
VLAN IDはネットワークIDに設定されています。
-
ブートプロトコルは`PXE`に設定されています。
-
DHCPが有効になっています。
|
成功したネットワークブートには、ホストの仕様に応じて追加の設定変更が必要な場合があります。これらの変更を行う方法も異なる場合があります。例えば、HPE ProLiant DL360 Gen9サーバーでは、NICファームウェアを通じてのみブートプロトコルとVLAN IDを変更できます。 詳細については、サーバーのマニュアルを参照してください。 |
ブート時に正しいネットワークインタフェースが使用されるように、iPXE `kernel`コマンドを以下のdracutパラメータで更新するようにしてください:
-
BOOTIF=<mac_address>:ネットワークインタフェース`<interface_name>`を使用します。 -
ifname=<interface_name>:<mac_address>:アドレス`<mac_address>`を持つネットワークインタフェースに名前`<interface_name>`を割り当てます。 -
vlan=<vlan_id>:<interface_name>:`<interface_name>`上に名前`<vlan_id>`のVLANデバイスを設定します。
サンプルiPXEスクリプト:
#!ipxe
kernel harvester-<version>-vmlinuz ip=dhcp net.ifnames=1 rd.cos.disable rd.noverifyssl console=tty1 root=live:http://10.100.0.10/harvester/rootfs.squashfs harvester.install.automatic=true harvester.install.config_url=http://10.100.0.10/harvester/config-create.yaml BOOTIF=<mac_address> ifname=<interface_name>:<mac_address> vlan=<vlan_id>:<interface_name>
initrd harvester-<version>-initrd
boot
便利なカーネルパラメータ
設定に加えて、さまざまなシナリオで役立つ他のカーネルパラメータを指定することもできます。 また、 dracut.cmdline(7)も参照してください。
rd.net.dhcp.retry=<cnt>
DHCPサーバーからIPを取得できないと、iPXEブートが失敗します。パラメータ`rd.net.dhcp.retry=<cnt>`を追加して、`<cnt>`回DHCPリクエストを再試行できます。
harvester.install.skipchecks=true
ハードウェアチェックが失敗した場合(生産使用の最小要件が満たされていないため)、インストールは停止します。この動作をオーバーライドするには、カーネルパラメータ`harvester.install.skipchecks=true`を設定してください。true`に設定されている場合、警告メッセージは/var/log/console.log`に保存されますが、製品使用のためのハードウェア要件が満たされていなくてもインストールは進行します。
harvester.install.with_net_images=true
インストーラーはインストール中に画像を事前に読み込まず、インストールが完了した後に必要なすべての画像をインターネットから取得します。このパラメータの使用はほとんどの場合推奨されません。詳細については、ネットインストールISOを参照してください。