12.2. マシン設定を通してブートローダーを自動更新する
bootupd
を使用してブートローダーを自動更新するもう 1 つの方法は、必要に応じて起動するたびにブートローダーを更新する systemd サービスユニットを作成することです。このユニットは、ブートプロセス中に bootupctl update
コマンドを実行し、マシン設定を通してノードにインストールされます。
更新操作が予期せず中断されるとノードが起動不能になる可能性があるため、この設定はデフォルトでは有効になっていません。この設定を有効にする場合は、ブートローダーを更新する間、ブートプロセス中にノードが中断されないように注意してください。通常、ブートローダーの更新操作はすぐに完了するため、リスクは低くなります。
bootupctl-update.service
systemd ユニットの内容を含む Butane 設定ファイル99-worker-bootupctl-update.bu
を作成します。注記Butane の詳細は、「Butane を使用したマシン設定の作成」を参照してください。
出力例
variant: openshift version: 4.13.0 metadata: name: 99-worker-chrony 1 labels: machineconfiguration.openshift.io/role: worker 2 systemd: units: - name: bootupctl-update.service enabled: true contents: | [Unit] Description=Bootupd automatic update [Service] ExecStart=/usr/bin/bootupctl update RemainAfterExit=yes [Install] WantedBy=multi-user.target
Butane を使用して、ノードに配信される設定を含む
MachineConfig
オブジェクトファイル (99-worker-bootupctl-update.yaml
) を生成します。$ butane 99-worker-bootupctl-update.bu -o 99-worker-bootupctl-update.yaml
以下の 2 つの方法のいずれかで設定を適用します。
-
クラスターがまだ起動していない場合は、マニフェストファイルを生成した後に、
MachineConfig
オブジェクトファイルを<installation_directory>/openshift
ディレクトリーに追加してから、クラスターの作成を続行します。 クラスターがすでに実行中の場合は、ファイルを適用します。
$ oc apply -f ./99-worker-bootupctl-update.yaml
-
クラスターがまだ起動していない場合は、マニフェストファイルを生成した後に、