9.3. RHEL Image Builder CLI を使用したシステムイメージの作成
RHEL Image Builder は、カスタムのシステムイメージを作成するツールです。RHEL Image Builder を制御し、カスタムシステムイメージを作成するには、コマンドライン (CLI) または Web コンソールインターフェイスを使用できます。
9.3.1. RHEL Image Builder コマンドラインインターフェイスの紹介 リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder コマンドラインインターフェイス (CLI) を使用してブループリントを作成するには、適切なオプションとサブコマンドを指定して composer-cli
コマンドを実行します。
コマンドラインのワークフローの概要は次のとおりです。
- ブループリントを作成するか、既存のブループリント定義をプレーンテキストファイルにエクスポート (保存) します。
- テキストエディターでこのファイルを編集します。
- ブループリントテキストファイルを Image Builder にインポートします。
- Compose を実行して、ブループリントからイメージをビルドします。
- イメージファイルをエクスポートしてダウンロードします。
composer-cli
コマンドには、ブループリントを作成する基本的なサブコマンドとは別に、設定したブループリントと Compose の状態を調べるための多くのサブコマンドが用意されています。
9.3.2. RHEL Image Builder を非 root ユーザーとして使用する リンクのコピーリンクがクリップボードにコピーされました!
非 root として composer-cli
コマンドを実行するには、ユーザーが weldr
グループに属している必要があります。
前提条件
- ユーザーを作成している。
手順
ユーザーを
weldr
またはroot
グループに追加するには、次のコマンドを実行します:sudo usermod -a -G weldr user newgrp weldr
$ sudo usermod -a -G weldr user $ newgrp weldr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.3. コマンドラインを使用したブループリントの作成 リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder のコマンドラインインターフェイス (CLI) を使用して、新しいブループリントを作成できます。ブループリントには、最終的なイメージと、パッケージやカーネルのカスタマイズなどのそのカスタマイズが記述されています。
前提条件
-
root ユーザーまたは
weldr
グループのメンバーであるユーザーとしてログインしている。
手順
次の内容のプレーンテキストファイルを作成します。
name = "BLUEPRINT-NAME" description = "LONG FORM DESCRIPTION TEXT" version = "0.0.1" modules = [] groups = []
name = "BLUEPRINT-NAME" description = "LONG FORM DESCRIPTION TEXT" version = "0.0.1" modules = [] groups = []
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BLUEPRINT-NAME および LONG FORM DESCRIPTION TEXT は、ブループリントの名前および説明に置き換えます。
0.0.1 は、セマンティックバージョニングスキームに従ってバージョン番号に置き換えます。
ブループリントに含まれるすべてのパッケージに、次の行をファイルに追加します。
[[packages]] name = "package-name" version = "package-version"
[[packages]] name = "package-name" version = "package-version"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow package-name は、
httpd
、gdb-doc
、coreutils
などのパッケージ名に置き換えます。必要に応じて、package-version を使用するバージョンに置き換えます。このフィールドは、
dnf
バージョンの指定に対応します。- 特定のバージョンについては、8.7.0 などの正確なバージョン番号を使用してください。
- 利用可能な最新バージョンについては、アスタリスク * を使用してください。
- 最新のマイナーバージョンを指定する場合は、8.* などの形式を使用してください。
ニーズに合わせてブループリントをカスタマイズします。たとえば、Simultaneous Multi Threading (SMT) を無効にするには、ブループリントファイルに次の行を追加します。
[customizations.kernel] append = "nosmt=force"
[customizations.kernel] append = "nosmt=force"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow その他に利用できるカスタマイズについては、サポートされているイメージのカスタマイズ を参照してください。
[]
と[[]]
は TOML で表現される異なるデータ構造であることに注意してください。-
[customizations.kernel]
ヘッダーは、キーと各値のペアの集合によって定義される単一のテーブルを表します (例:append = "nosmt=force"
)。 -
[[packages]]
ヘッダーはテーブルの配列を表します。最初のインスタンスで、配列とその最初のテーブル要素を定義します (例:name = "package-name"
、version = "package-version"
)。後続の各インスタンスで、指定の順序で、その配列内に新しいテーブル要素を作成して定義します。
-
- たとえば、ファイルを BLUEPRINT-NAME.toml として保存し、テキストエディターを閉じます。
オプション: Blueprint TOML ファイルのすべての設定が正しく解析されているかどうかを確認します。ブループリントを保存し、保存した出力を入力ファイルと比較します。
composer-cli blueprints save BLUEPRINT-NAME.toml
# composer-cli blueprints save BLUEPRINT-NAME.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存した
BLUEPRINT-NAME.toml
ファイルを入力ファイルと比較します。
-
保存した
ブループリントをプッシュします。
composer-cli blueprints push BLUEPRINT-NAME.toml
# composer-cli blueprints push BLUEPRINT-NAME.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BLUEPRINT-NAME は、前の手順で使用した値に置き換えます。
注記composer-cli
を非 root として使用してイメージを作成するには、ユーザーをweldr
またはroot
グループに追加します。usermod -a -G weldr user newgrp weldr
# usermod -a -G weldr user $ newgrp weldr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ブループリントがプッシュされ存在していることを確認するには、既存のブループリントを一覧表示します。
composer-cli blueprints list
# composer-cli blueprints list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加したばかりのブループリント設定を表示します。
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブループリントに記載されているコンポーネントおよびバージョンと、その依存関係が有効かどうかを確認します。
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHEL Image Builder がカスタムリポジトリーのパッケージの依存関係を解決できない場合は、
osbuild-composer
キャッシュを削除します。3sudo rm -rf /var/cache/osbuild-composer/* sudo systemctl restart osbuild-composer
$ sudo rm -rf /var/cache/osbuild-composer/* $ sudo systemctl restart osbuild-composer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.4. コマンドラインを使用したブループリントの編集 リンクのコピーリンクがクリップボードにコピーされました!
コマンドライン (CLI) で既存のブループリントを編集して、たとえば、新しいパッケージを追加したり、新しいグループを定義したり、カスタマイズしたイメージを作成したりできます。
前提条件
- ブループリントを作成している。
手順
既存のブループリントをリストします。
composer-cli blueprints list
# composer-cli blueprints list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブループリントをローカルテキストファイルに保存します。
composer-cli blueprints save BLUEPRINT-NAME
# composer-cli blueprints save BLUEPRINT-NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - BLUEPRINT-NAME .toml ファイルをテキストエディターで編集し、変更を加えます。
編集を完了する前に、ファイルが有効なブループリントであることを確認します。
ブループリントに次の行が存在する場合は、それを削除します。
packages = []
packages = []
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - たとえば、バージョン番号を 0.0.1 から 0.1.0 に増やします。RHEL Image Builder のブループリントバージョンでは、セマンティックバージョニングスキームを使用する必要があります。また、バージョンを変更しない場合、パッチバージョンコンポーネントが自動的に増加することにも注意してください。
- ファイルを保存し、テキストエディターを閉じます。
ブループリントを RHEL Image Builder にプッシュして戻します。
composer-cli blueprints push BLUEPRINT-NAME.toml
# composer-cli blueprints push BLUEPRINT-NAME.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ブループリントを RHEL Image Builder にインポートして戻すには、
.toml
拡張子を含むファイル名を指定しますが、他のコマンドではブループリント名のみを使用します。
検証
RHEL Image Builder にアップロードした内容が編集内容と一致することを確認するには、ブループリントの内容をリストします。
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブループリントに記載されているコンポーネントおよびバージョンと、その依存関係が有効かどうかを確認します。
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.5. RHEL Image Builder コマンドラインでのシステムイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder のコマンドラインインターフェイスを使用して、カスタマイズした RHEL イメージをビルドできます。そのためには、ブループリントとイメージタイプを指定する必要があります。必要に応じて、ディストリビューションを指定することもできます。ディストリビューションを指定しない場合は、ホストシステムと同じディストリビューションとバージョンが使用されます。アーキテクチャーもホストのアーキテクチャーと同じになります。
前提条件
- イメージにブループリントを用意している。コマンドラインを使用して RHEL Image Builder ブループリントを作成するを 参照してください。
手順
オプション: 作成できるイメージ形式をリストします。
composer-cli compose types
# composer-cli compose types
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compose を起動します。
composer-cli compose start BLUEPRINT-NAME IMAGE-TYPE
# composer-cli compose start BLUEPRINT-NAME IMAGE-TYPE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BLUEPRINT-NAME をブループリントの名前に、IMAGE-TYPE をイメージのタイプに置き換えます。使用可能な値は、
composer-cli compose types
コマンドの出力を参照してください。作成プロセスはバックグラウンドで開始され、作成者の Universally Unique Identifier (UUID) が表示されます。
イメージの作成が完了するまでに最大 10 分かかる場合があります。
Compose のステータスを確認するには、以下のコマンドを実行します。
composer-cli compose status
# composer-cli compose status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compose が完了すると、ステータスが FINISHED になります。リスト内の Compose を識別するには、その UUID を使用します。
Compose プロセスが完了したら、作成されたイメージファイルをダウンロードします。
composer-cli compose image UUID
# composer-cli compose image UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow UUID は、前の手順で示した UUID 値に置き換えます。
検証
イメージを作成した後、次のコマンドを使用してイメージ作成の進行状況を確認できます。
イメージのメタデータをダウンロードして、Compose 用のメタデータの
.tar
ファイルを取得します。sudo composer-cli compose metadata UUID
$ sudo composer-cli compose metadata UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージのログをダウンロードします。
sudo composer-cli compose logs UUID
$ sudo composer-cli compose logs UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、イメージ作成のログを含む
.tar
ファイルを作成します。ログが空の場合は、ジャーナルを確認できます。ジャーナルを確認してください。
journalctl | grep osbuild
$ journalctl | grep osbuild
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージのマニフェストを確認します。
sudo cat /var/lib/osbuild-composer/jobs/job_UUID.json
$ sudo cat /var/lib/osbuild-composer/jobs/job_UUID.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ジャーナルで job_UUID .json を見つけることができます。
9.3.6. RHEL Image Builder コマンドラインの基本的なコマンド リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder コマンドラインインターフェイスでは、以下のサブコマンドを利用できます。
ブループリント操作
- 利用可能なブループリント一覧の表示
composer-cli blueprints list
# composer-cli blueprints list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - TOML 形式でブループリントの内容の表示
composer-cli blueprints show <BLUEPRINT-NAME>
# composer-cli blueprints show <BLUEPRINT-NAME>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - TOML 形式のブループリントの内容を
BLUEPRINT-NAME.toml
ファイルに保存 (エクスポート) composer-cli blueprints save <BLUEPRINT-NAME>
# composer-cli blueprints save <BLUEPRINT-NAME>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ブループリントの削除
composer-cli blueprints delete <BLUEPRINT-NAME>
# composer-cli blueprints delete <BLUEPRINT-NAME>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - TOML 形式のブループリントファイルを RHEL Image Builder へプッシュ (インポート)
composer-cli blueprints push <BLUEPRINT-NAME>
# composer-cli blueprints push <BLUEPRINT-NAME>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ブループリントでイメージの設定
- 利用可能なイメージタイプをリスト表示します。
composer-cli compose types
# composer-cli compose types
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Compose の起動
composer-cli compose start <BLUEPRINT> <COMPOSE-TYPE>
# composer-cli compose start <BLUEPRINT> <COMPOSE-TYPE>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Compose のリスト表示
composer-cli compose list
# composer-cli compose list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Compose、およびそのステータスのリスト表示
composer-cli compose status
# composer-cli compose status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 実行中の Compose のキャンセル
composer-cli compose cancel <COMPOSE-UUID>
# composer-cli compose cancel <COMPOSE-UUID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 完了した Compose の削除
composer-cli compose delete <COMPOSE-UUID>
# composer-cli compose delete <COMPOSE-UUID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Compose の詳細情報の表示
composer-cli compose info <COMPOSE-UUID>
# composer-cli compose info <COMPOSE-UUID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Compose のイメージファイルのダウンロード
composer-cli compose image <COMPOSE-UUID>
# composer-cli compose image <COMPOSE-UUID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - サブコマンドとオプションをもっと見る
composer-cli help
# composer-cli help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.7. RHEL Image Builder のブループリント形式 リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder のブループリントは、TOML 形式のプレーンテキストとしてユーザーに表示されます。
一般的なブループリントファイルの要素には、次のものが含まれます。
- ブループリントのメタデータ
name = "<BLUEPRINT-NAME>" description = "<LONG FORM DESCRIPTION TEXT>" version = "<VERSION>"
name = "<BLUEPRINT-NAME>" description = "<LONG FORM DESCRIPTION TEXT>" version = "<VERSION>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BLUEPRINT-NAME および LONG FORM DESCRIPTION TEXT フィールドは、ブループリントの名前と説明です。
VERSION は、セマンティックバージョニングスキームに従ったバージョン番号であり、ブループリントファイル全体で 1 つだけ存在するものです。
- イメージに追加するグループ
[[groups]] name = "group-name"
[[groups]] name = "group-name"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow group エントリーは、イメージにインストールするパッケージのグループを説明します。グループは、次のパッケージカテゴリーを使用します。
- 必須
- デフォルト
任意
group-name は、anaconda-tools、widget、wheel または users などのグループの名前です。ブループリントは、必須パッケージとデフォルトパッケージをインストールします。オプションパッケージを選択するメカニズムはありません。
- イメージに追加するパッケージ
[[packages]] name = "<package-name>" version = "<package-version>"
[[packages]] name = "<package-name>" version = "<package-version>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow package-name は、httpd、gdb-doc、または coreutils などのパッケージの名前です。
package-version は使用するバージョンです。このフィールドは、
dnf
バージョンの指定に対応します。- 特定のバージョンについては、8.7.0 などの正確なバージョン番号を使用してください。
- 利用可能な最新バージョンを指定する場合は、アスタリスク (*) を使用します。
最新のマイナーバージョンの場合は、8.* などの形式を使用します。
追加するすべてのパッケージにこのブロックを繰り返します。
RHEL Image Builder ツールのパッケージとモジュールの間に違いはありません。どちらも RPM パッケージの依存関係として扱われます。
9.3.8. サポートされているイメージのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
ブループリントに次のようなカスタマイズを追加することで、イメージをカスタマイズできます。
- RPM パッケージの追加
- サービスの有効化
- カーネルコマンドラインパラメーターのカスタマイズ
とりわけ、ブループリント内ではいくつかのイメージのカスタマイズを使用できます。カスタマイズを使用すると、デフォルトのパッケージでは使用できないパッケージやグループをイメージに追加できます。これらのオプションを使用するには、ブループリントでカスタマイズを設定し、それを RHEL Image Builder にインポート (プッシュ) します。
9.3.8.1. ディストリビューションの選択 リンクのコピーリンクがクリップボードにコピーされました!
distro
フィールドを使用して、イメージを作成するときやブループリント内の依存関係を解決するときに使用するディストリビューションを指定できます。distro
フィールドが空白のままの場合、ブループリントはホストのオペレーティングシステムディストリビューションを自動的に使用します。ディストリビューションを指定しない場合、ブループリントはホストディストリビューションを使用します。ホストオペレーティングシステムをアップグレードすると、指定されたディストリビューションがないブループリントは、アップグレードされたオペレーティングシステムのバージョンを使用してイメージをビルドします。
新しいシステムで古いメジャーバージョンのイメージをビルドできます。たとえば、RHEL 10 ホストを使用して、RHEL 9 および RHEL 8 のイメージを作成できます。ただし、古いシステムで新しいメジャーバージョンのイメージをビルドすることはできません。
RHEL Image Builder ホストとは異なるオペレーティングシステムイメージをビルドすることはできません。たとえば、RHEL システムを使用して Fedora または CentOS のイメージをビルドすることはできません。
指定の RHEL イメージを常にビルドするように、RHEL ディストリビューションを使用してブループリントをカスタマイズします。
name = "blueprint_name" description = "blueprint_version" version = "0.1" distro = "different_minor_version"
name = "blueprint_name" description = "blueprint_version" version = "0.1" distro = "different_minor_version"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
name = "tmux" description = "tmux image with openssh" version = "1.2.16" distro = "rhel-9.5"
name = "tmux" description = "tmux image with openssh" version = "1.2.16" distro = "rhel-9.5"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
別のマイナーバージョンをビルドするには、"different_minor_version" を置き換えます。たとえば、RHEL 8.10 イメージをビルドする場合は、distro
= "rhel-810" を使用します。RHEL 8.10 イメージでは、RHEL 8.9 以前のリリースなどのマイナーバージョンをビルドできます。
9.3.8.2. パッケージグループの選択 リンクのコピーリンクがクリップボードにコピーされました!
パッケージグループを使用してブループリントをカスタマイズします。イメージにインストールするパッケージのグループを、groups
リストに記述します。パッケージグループはリポジトリーのメタデータで定義されます。各グループには、主にユーザーインターフェイスでの表示に使用されるわかりやすい名前と、キックスタートファイルでよく使用される ID があります。この場合、ID を使用してグループをリストする必要があります。グループでは、必須、デフォルト、任意の 3 つの方法でパッケージを分類できます。ブループリントには、必須パッケージとデフォルトパッケージのみがインストールされます。任意のパッケージを選択することはできません。
name
属性は、必須の文字列であり、リポジトリー内のパッケージグループ ID と正確に一致する必要があります。
現在、osbuild-composer
のパッケージとモジュールの間に違いはありません。どちらも RPM パッケージの依存関係として扱われます。
パッケージを使用してブループリントをカスタマイズします。
[[groups]] name = "group_name"
[[groups]] name = "group_name"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow group_name
は、グループの名前に置き換えます。たとえば、anaconda-tools
です。[[groups]] name = "anaconda-tools"
[[groups]] name = "anaconda-tools"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.3. コンテナーの埋め込み リンクのコピーリンクがクリップボードにコピーされました!
ブループリントをカスタマイズして、最新の RHEL コンテナーを埋め込むことができます。ソースを含むオブジェクトと、必要に応じて tls-verify
属性をコンテナーリストに含めます。
イメージに埋め込むコンテナーイメージを、コンテナーリストのエントリーに記述します。
-
source
- 必須フィールド。これは、レジストリーにあるコンテナーイメージへの参照です。この例では、registry.access.redhat.com
レジストリーを使用します。タグのバージョンを指定できます。デフォルトのタグバージョンは latest です。 -
name
- ローカルレジストリー内のコンテナーの名前。 -
tls-verify
- ブールフィールド。tls-verify ブールフィールドは、Transport Layer Security を制御します。デフォルト値は true です。
埋め込まれたコンテナーは自動的に起動しません。これを起動するには、systemd
ユニットファイルまたは quadlets
を作成し、ファイルをカスタマイズします。
registry.access.redhat.com/ubi9/ubi:latest
のコンテナーとホストのコンテナーを埋め込むには、ブループリントに次のカスタマイズを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
containers-auth.json
ファイルを使用して、保護されたコンテナーリソースにアクセスできます。コンテナーレジストリーの認証情報 を参照してください。
9.3.8.4. イメージのホスト名の設定 リンクのコピーリンクがクリップボードにコピーされました!
customizations.hostname
は、最終イメージのホスト名を設定するために使用できるオプションの文字列です。このカスタマイズはオプションであり、設定しない場合、ブループリントはデフォルトのホスト名を使用します。
ブループリントをカスタマイズしてホスト名を設定します。
[customizations] hostname = "baseimage"
[customizations] hostname = "baseimage"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.5. 追加ユーザーの指定 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーをイメージに追加し、必要に応じて SSH キーを設定します。このセクションのフィールドは、name
を除いてすべてオプションです。
手順
ブループリントをカスタマイズして、イメージにユーザーを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow GID はオプションであり、イメージにすでに存在している必要があります。GID は、必要に応じて、パッケージによって作成されるか、ブループリントによって
[[customizations.group]]
エントリーを使用して作成されます。PASSWORD-HASH は、実際の
password hash
に置き換えます。password hash
を生成するには、次のようなコマンドを使用します。python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow その他のプレースホルダーを、適切な値に置き換えます。
name
の値を入力し、不要な行は省略します。追加するすべてのユーザーにこのブロックを繰り返します。
9.3.8.6. 追加グループの指定 リンクのコピーリンクがクリップボードにコピーされました!
作成されるシステムイメージのグループを指定します。name
属性と gid
属性は両方とも必須です。
グループを使用してブループリントをカスタマイズします。
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加するすべてのグループにこのブロックを繰り返します。以下に例を示します。
[[customizations.group]] name = "widget" gid = 1130
[[customizations.group]] name = "widget" gid = 1130
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.7. 既存ユーザーの SSH キーの設定 リンクのコピーリンクがクリップボードにコピーされました!
customizations.sshkey
を使用して、最終イメージ内の既存ユーザーの SSH キーを設定できます。user
属性と key
属性は両方とも必須です。
既存ユーザーの SSH キーを設定してブループリントをカスタマイズします。
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
[[customizations.sshkey]] user = "root" key = "SSH key for root"
[[customizations.sshkey]] user = "root" key = "SSH key for root"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記既存ユーザーに対してのみ、
customizations.sshkey
カスタマイズを設定できます。ユーザーを作成して SSH キーを設定するには、追加ユーザーの指定 のカスタマイズを参照してください。
9.3.8.8. カーネル引数の追加 リンクのコピーリンクがクリップボードにコピーされました!
ブートローダーのカーネルコマンドラインに引数を追加できます。デフォルトでは、RHEL Image Builder はデフォルトのカーネルをイメージにビルドします。ただし、ブループリントでカーネルを設定することでカーネルをカスタマイズできます。
デフォルト設定にカーネルの起動パラメーターオプションを追加します。
[customizations.kernel] append = "KERNEL-OPTION"
[customizations.kernel] append = "KERNEL-OPTION"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
[customizations.kernel] name = "kernel-debug" append = "nosmt=force"
[customizations.kernel] name = "kernel-debug" append = "nosmt=force"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.9. リアルタイムカーネルを使用した RHEL イメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
リアルタイムカーネル (kernel-rt
) を使用して RHEL イメージをビルドするには、デフォルトカーネルとして kernel-rt
が正しく選択されたイメージをビルドできるように、リポジトリーをオーバーライドする必要があります。/usr/share/osbuild-composer/repositories/
ディレクトリーの .json
を使用してください。その後、ビルドしたイメージをシステムにデプロイし、リアルタイムカーネル機能を使用できます。
リアルタイムカーネルは、Red Hat Enterprise Linux の動作認定を受けた AMD64 および Intel 64 サーバープラットフォームで動作します。
前提条件
- システムが登録され、RHEL が RHEL for Real Time サブスクリプションに割り当てられている。dnf を使用した RHEL for Real Time のインストール を参照してください。
手順
以下のディレクトリーを作成します。
mkdir /etc/osbuild-composer/repositories/
# mkdir /etc/osbuild-composer/repositories/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/osbuild-composer/repositories/rhel-8.version.json
ファイルの内容を新しいディレクトリーにコピーします。cp /usr/share/osbuild-composer/repositories/rhel-8.version.json /etc/osbuild-composer/repositories
# cp /usr/share/osbuild-composer/repositories/rhel-8.version.json /etc/osbuild-composer/repositories
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/osbuild-composer/repositories/rhel-8.version.json
ファイルを編集して、RT カーネルリポジトリーを含めます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを再起動します。
systemctl restart osbuild-composer
# systemctl restart osbuild-composer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kernel-rt
が.json
ファイルに含まれていることを確認します。composer-cli sources list composer-cli sources info kernel-rt
# composer-cli sources list # composer-cli sources info kernel-rt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以前に設定した URL が表示されます。
ブループリントを作成します。ブループリントに、"[customizations.kernel]" カスタマイズを追加します。以下は、ブループリントに "[customizations.kernel]" を追加した例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブループリントをサーバーにプッシュします。
composer-cli blueprints push rt-kernel-image.toml
# composer-cli blueprints push rt-kernel-image.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成したブループリントからイメージをビルドします。次の例では、(
.qcow2
) イメージをビルドします。composer-cli compose start rt-kernel-image qcow2
# composer-cli compose start rt-kernel-image qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ビルドしたイメージを、リアルタイムカーネル機能を使用するシステムにデプロイします。
検証
イメージから仮想マシンを起動した後、デフォルトのカーネルとして
kernel-rt
が正しく選択されたイメージがビルドされていることを確認します。cat /proc/cmdline BOOT_IMAGE=(hd0,got3)/vmlinuz-5.14.0-362.24.1..el8_version_.x86_64+rt...
$ cat /proc/cmdline BOOT_IMAGE=(hd0,got3)/vmlinuz-5.14.0-362.24.1..el8_version_.x86_64+rt...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.10. タイムゾーンと NTP の設定 リンクのコピーリンクがクリップボードにコピーされました!
ブループリントをカスタマイズして、タイムゾーンと Network Time Protocol (NTP) を設定できます。timezone
属性と ntpservers
属性は両方ともオプションの文字列です。タイムゾーンをカスタマイズしない場合、システムは 協定世界時 (UTC) を使用します。NTP サーバーを設定しない場合、システムはデフォルトのディストリビューションを使用します。
必要な
timezone
とntpservers
を使用してブループリントをカスタマイズします。[customizations.timezone] timezone = "TIMEZONE" ntpservers = "NTP_SERVER"
[customizations.timezone] timezone = "TIMEZONE" ntpservers = "NTP_SERVER"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
[customizations.timezone] timezone = "US/Eastern" ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]
[customizations.timezone] timezone = "US/Eastern" ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Google Cloud などの一部のイメージタイプには、すでに NTP サーバーがセットアップされています。そのようなイメージでは、選択されている環境で NTP サーバーを起動する必要があるため、これをオーバーライドすることはできません。ただし、ブループリントでタイムゾーンをカスタマイズできます。
9.3.8.11. ロケール設定のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
作成されるシステムイメージのロケール設定をカスタマイズできます。language
属性と keyboard
属性は両方とも必須です。他の多くの言語を追加できます。最初に追加する言語はプライマリー言語で、他の言語はセカンダリー言語です。
手順
ロケール設定を行います。
[customizations.locale] languages = ["LANGUAGE"] keyboard = "KEYBOARD"
[customizations.locale] languages = ["LANGUAGE"] keyboard = "KEYBOARD"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
[customizations.locale] languages = ["en_US.UTF-8"] keyboard = "us"
[customizations.locale] languages = ["en_US.UTF-8"] keyboard = "us"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 言語でサポートされている値を一覧表示するには、以下のコマンドを実行します。
localectl list-locales
$ localectl list-locales
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーボードでサポートされている値を一覧表示するには、以下のコマンドを実行します。
localectl list-keymaps
$ localectl list-keymaps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.12. ファイアウォールのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
生成されたシステムイメージのファイアウォールを設定します。デフォルトでは、ファイアウォールは、sshd
など、ポートを明示的に有効にするサービスを除き、着信接続をブロックします。
[customizations.firewall]
または [customizations.firewall.services]
を使用したくない場合は、属性を削除するか、空のリスト [] に設定します。デフォルトのファイアウォールセットアップのみを使用する場合は、ブループリントからカスタマイズを省略できます。
Google および OpenStack テンプレートは、環境のファイアウォールを明示的に無効にします。ブループリントを設定してこの動作をオーバーライドすることはできません。
手順
他のポートとサービスを開くには、次の設定を使用してブループリントをカスタマイズします。
[customizations.firewall] ports = ["PORTS"]
[customizations.firewall] ports = ["PORTS"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
ports
は、ポート、または開くポートとプロトコルの範囲を含む文字列のオプションのリストです。port:protocol
形式を使用してポートを設定できます。portA-portB:protocol
形式を使用してポート範囲を設定できます。以下に例を示します。[customizations.firewall] ports = ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp", "30000-32767:tcp", "30000-32767:udp"]
[customizations.firewall] ports = ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp", "30000-32767:tcp", "30000-32767:udp"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/services
の数値ポートまたはその名前を使用して、ポートリストを有効または無効にすることができます。customizations.firewall.service
セクションで、どのファイアウォールサービスを有効または無効にするかを指定します。[customizations.firewall.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
[customizations.firewall.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 利用可能なファイアウォールサービスを確認できます。
firewall-cmd --get-services
$ firewall-cmd --get-services
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
[customizations.firewall.services] enabled = ["ftp", "ntp", "dhcp"] disabled = ["telnet"]
[customizations.firewall.services] enabled = ["ftp", "ntp", "dhcp"] disabled = ["telnet"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記firewall.services
にリストされているサービスは、/etc/services
ファイルで使用可能なservice-names
とは異なります。
9.3.8.13. サービスの有効化または無効化 リンクのコピーリンクがクリップボードにコピーされました!
システムの起動時に有効にするサービスを制御することができます。一部のイメージタイプでは、イメージが正しく機能するようにすでにサービスが有効または無効になっており、このセットアップをオーバーライドすることができません。ブループリントの [customizations.services]
設定はこれらのサービスを置き換えるものではありませんが、イメージテンプレートにすでに存在するサービスのリストにサービスを追加します。
起動時に有効にするサービスをカスタマイズします。
[customizations.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
[customizations.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
[customizations.services] enabled = ["sshd", "cockpit.socket", "httpd"] disabled = ["postfix", "telnetd"]
[customizations.services] enabled = ["sshd", "cockpit.socket", "httpd"] disabled = ["postfix", "telnetd"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.14. キックスタートファイルへの ISO イメージの注入 リンクのコピーリンクがクリップボードにコピーされました!
[customization.installer]
ブループリントのカスタマイズを使用すると、イメージインストーラー
や エッジインストーラー
などの ISO インストーラーのビルドに独自のキックスタートファイルを追加して、ベアメタルデプロイメント用の ISO イメージを構築する際の柔軟性を高めることができます。
キックスタートはシステム上の最初のディスクを自動的に再フォーマットするように設定されています。そのため、既存のオペレーティングシステムまたはデータを有するマシンで ISO を起動すると、破壊的な結果を招く可能性があります。
次の中から、独自のキックスタートファイルを追加する方法を選択できます。
- インストールプロセス中にすべての値を設定する。
-
キックスタートで
unattended = true
フィールドを有効にし、デフォルト設定を使用した完全に無人のインストールを実行する。 - キックスタートフィールドを使用して独自のキックスタートを注入する。これにより、すべての必須フィールドを指定した場合に完全に無人のインストールが実行されるか、またはインストーラーが欠落している可能性のあるいくつかのフィールドの入力を要求することになります。
Anaconda インストーラーの ISO イメージタイプでは、次のブループリントのカスタマイズがサポートされています。
[customizations.installer] unattended = true sudo-nopasswd = ["user", "%wheel"]
[customizations.installer]
unattended = true
sudo-nopasswd = ["user", "%wheel"]
無人
:インストールを完全に自動化するキックスタートファイルを作成します。これには、デフォルトで次のオプションの設定が含まれます。
- テキスト表示モード
- en_US.UTF-8 言語/ロケール
- US キーボードレイアウト
- UTC タイムゾーン
- zerombr、clearpart、autopart による最初のディスクの自動的なワイプおよびパーティション設定
- DHCP と自動アクティブ化を有効にするネットワークオプション
以下に例を示します。
sudo-nopasswd
:インストール後に /etc/sudoers.d
にドロップインファイルを作成し、指定されたユーザーとグループがパスワードなしで sudo を実行できるようにするスニペットをキックスタートファイルに追加します。グループには %
という接頭辞を付ける必要があります。たとえば、値を ["user", "%wheel"]
に設定すると、次のようなキックスタートの %post
セクションが作成されます。
インストーラーキックスタート
または、次のカスタマイズを使用して、カスタムのキックスタートを含めることもできます。
osbuild-composer
を使用すると、image-installer
または edge-installer
イメージタイプに関連する場合に、システムをインストールするコマンド liveimg
または ostreesetup
が自動的に追加されます。[customizations.installer.kickstart]
によるカスタマイズを、他のインストーラーカスタマイズと組み合わせて使用することはできません。
9.3.8.15. パーティションモードの指定 リンクのコピーリンクがクリップボードにコピーされました!
ビルドするディスクイメージをパーティション設定する方法を選択するには、partitioning_mode
変数を使用します。サポートされている次のモードでイメージをカスタマイズできます。
-
auto-lvm
: 1 つ以上のファイルシステムのカスタマイズがない限り、RAW パーティションモードを使用します。ある場合は、LVM パーティションモードを使用します。 -
lvm
: 追加のマウントポイントがない場合でも、常に LVM パーティションモードを使用します。 -
raw
: マウントポイントが 1 つ以上ある場合でも、RAW パーティションを使用します。 次のカスタマイズを使用して、
partitioning_mode
変数を使用してブループリントをカスタマイズできます。[customizations] partitioning_mode = "lvm"
[customizations] partitioning_mode = "lvm"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.8.16. カスタムファイルシステム設定の指定 リンクのコピーリンクがクリップボードにコピーされました!
ブループリントでカスタムファイルシステム設定を指定できるため、デフォルトのレイアウト設定ではなく、特定のディスクレイアウトでイメージを作成できます。ブループリントでデフォルト以外のレイアウト設定を使用すると、次の利点が得られます。
- セキュリティーベンチマークへの準拠
- ディスク外エラーに対する保護
- パフォーマンスの向上
- 既存のセットアップとの整合性
OSTree イメージには読み取り専用などの独自のマウントルールがあるため、OSTree システムではファイルシステムのカスタマイズはサポートされません。次のイメージタイプはサポートされません。
-
image-installer
-
edge-installer
-
edge-simplified-installer
さらに、次のイメージタイプはパーティション設定されたオペレーティングシステムイメージを作成しないため、ファイルシステムのカスタマイズをサポートしません。
-
edge-commit
-
edge-container
-
tar
-
container
ただし、次のイメージタイプではファイルシステムのカスタマイズがサポートされています。
-
simplified-installer
-
edge-raw-image
-
edge-ami
-
edge-vsphere
OSTree システムの一部例外を除き、ファイルシステムの /root
レベルで任意のディレクトリー名を選択できます (例: `/local`、`/mypartition`、/$PARTITION
)。論理ボリュームでは、これらの変更は LVM パーティションシステム上で行われます。別の論理ボリューム上の /var
、`/var/log`、および /var/lib/containers
ディレクトリーがサポートされています。root レベルでの例外は次のとおりです。
- "/home": {Deny: true},
- "/mnt": {Deny: true},
- "/opt": {Deny: true},
- "/ostree": {Deny: true},
- "/root": {Deny: true},
- "/srv": {Deny: true},
- "/var/home": {Deny: true},
- "/var/mnt": {Deny: true},
- "/var/opt": {Deny: true},
- "/var/roothome": {Deny: true},
- "/var/srv": {Deny: true},
- "/var/usrlocal": {Deny: true},
RHEL 8.10 および 9.5 より前のリリースディストリビューションの場合、ブループリントは次の mountpoints
とそのサブディレクトリーをサポートしています。
-
/
- ルートマウントポイント -
/var
-
/home
-
/opt
-
/srv/
-
/usr
-
/app
-
/data
-
/tmp
RHEL 9.5 および 8.10 以降のリリースディストリビューションでは、オペレーティングシステム用に予約されている特定のパスを除き、任意のカスタムマウントポイントを指定できます。
次のマウントポイントとそのサブディレクトリーに任意のカスタムマウントポイントを指定することはできません。
-
/bin
-
/boot/efi
-
/dev
-
/etc
-
/lib
-
/lib64
-
/lost+found
-
/proc
-
/run
-
/sbin
-
/sys
-
/sysroot
-
/var/lock
-
/var/run
ブループリントで /usr
カスタムマウントポイントのファイルシステムはカスタマイズできますが、そのサブディレクトリーはカスタマイズできません。
マウントポイントのカスタマイズは、RHEL 8.5 ディストリビューション以降、CLI を使用した場合のみサポートされます。以前のディストリビューションでは、root
パーティションをマウントポイントとして指定し、size 引数をイメージ size
のエイリアスとして指定することしかできません。RHEL 8.6 以降、osbuild-composer-46.1-1.el8
RPM 以降のバージョンでは、物理パーティションは使用できなくなり、ファイルシステムのカスタマイズによって論理ボリュームが作成されます。
カスタマイズされたイメージに複数のパーティションがある場合、LVM でカスタマイズされたファイルシステムパーティションを使用してイメージを作成し、実行時にそれらのパーティションのサイズを変更できます。これを行うには、ブループリントでカスタマイズされたファイルシステム設定を指定して、必要なディスクレイアウトでイメージを作成します。デフォルトのファイルシステムレイアウトは変更されません。ファイルシステムをカスタマイズせずにプレーンイメージを使用すると、cloud-init
によってルートパーティションのサイズが変更されます。
ブループリントは、ファイルシステムのカスタマイズを LVM パーティションに自動的に変換します。
カスタムファイルブループリントのカスタマイズを使用して、新しいファイルを作成したり、既存のファイルを置き換えたりできます。指定するファイルの親ディレクトリーが存在している必要があります。存在しない場合、イメージのビルドが失敗します。[[customizations.directories]]
のカスタマイズで親ディレクトリーを指定して、親ディレクトリーが存在することを確認してください。
ファイルのカスタマイズを他のブループリントのカスタマイズと組み合わせると、他のカスタマイズの機能に影響が生じたり、現在のファイルのカスタマイズがオーバーライドされる可能性があります。
9.3.8.16.1. カスタマイズされたファイルをブループリントで指定する リンクのコピーリンクがクリップボードにコピーされました!
[[customizations.files]]
ブループリントのカスタマイズを使用すると、次のことが可能になります。
- 新しいテキストファイルを作成する。
- 既存のファイルを変更する。警告: これにより、既存のコンテンツが上書きされる可能性があります。
- 作成するファイルのユーザーとグループの所有権を設定する。
- モード許可を 8 進数形式で設定する。
以下のファイルは作成または置き換えることはできません。
-
/etc/fstab
-
/etc/shadow
-
/etc/passwd
-
/etc/group
[[customizations.files]]
および [[customizations.directories]]
ブループリントのカスタマイズを使用して、イメージ内にカスタマイズされたファイルとディレクトリーを作成できます。これらのカスタマイズは、/etc
ディレクトリーでのみ使用できます。
これらのブループリントのカスタマイズは、OSTree コミットをデプロイするイメージタイプ (edge-raw-image
、edge-installer
、edge-simplified-installer
など) を除く、すべてのイメージタイプでサポートされます。
mode
、user
、または group
がすでに設定されているイメージ内にすでに存在するディレクトリーパスで customizations.directories
を使用すると、イメージビルドで既存のディレクトリーの所有権または権限の変更を防ぐことができません。
9.3.8.16.2. カスタマイズされたディレクトリーをブループリントで指定する リンクのコピーリンクがクリップボードにコピーされました!
[[customizations.directories]]
ブループリントのカスタマイズを使用すると、以下を行うことができます。
- 新しいディレクトリーを作成する。
- 作成するディレクトリーのユーザーとグループの所有権を設定する。
- ディレクトリーモードのパーミッションを 8 進数形式で設定する。
- 必要に応じて親ディレクトリーを作成する。
[[customizations.files]]
ブループリントのカスタマイズを使用すると、次のことが可能になります。
- 新しいテキストファイルを作成する。
- 既存のファイルを変更する。警告: これにより、既存のコンテンツが上書きされる可能性があります。
- 作成するファイルのユーザーとグループの所有権を設定する。
- モード許可を 8 進数形式で設定する。
以下のファイルは作成または置き換えることはできません。
-
/etc/fstab
-
/etc/shadow
-
/etc/passwd
-
/etc/group
以下のカスタマイズが可能です。
ブループリントのファイルシステム設定をカスタマイズします。
[[customizations.filesystem]] mountpoint = "MOUNTPOINT" minsize = MINIMUM-PARTITION-SIZE
[[customizations.filesystem]] mountpoint = "MOUNTPOINT" minsize = MINIMUM-PARTITION-SIZE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MINIMUM-PARTITION-SIZE
値には、デフォルトのサイズ形式はありません。ブループリントのカスタマイズでは、kB から TB、および KiB から TiB の値と単位がサポートされています。たとえば、マウントポイントのサイズをバイト単位で定義できます。[[customizations.filesystem]] mountpoint = "/var" minsize = 1073741824
[[customizations.filesystem]] mountpoint = "/var" minsize = 1073741824
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 単位を使用してマウントポイントのサイズを定義します。以下に例を示します。
[[customizations.filesystem]] mountpoint = "/opt" minsize = "20 GiB"
[[customizations.filesystem]] mountpoint = "/opt" minsize = "20 GiB"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[customizations.filesystem]] mountpoint = "/boot" minsize = "1 GiB"
[[customizations.filesystem]] mountpoint = "/boot" minsize = "1 GiB"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow minsize
を設定して最小パーティションを定義します。以下に例を示します。[[customizations.filesystem]] mountpoint = "/var" minsize = 2147483648
[[customizations.filesystem]] mountpoint = "/var" minsize = 2147483648
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[customizations.directories]]
を使用して、イメージ用にカスタマイズされたディレクトリーを/etc
ディレクトリーの下に作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブループリントの各エントリーを説明します。
-
path
- 必須 - 作成するディレクトリーへのパスを入力します。/etc
ディレクトリー下の絶対パスである必要があります。 -
mode
- オプション - ディレクトリーのアクセスパーミッションを 8 進数形式で設定します。パーミッションを指定しない場合、デフォルトで 0755 に設定されます。先頭のゼロは任意です。 -
user
- オプション - ユーザーをディレクトリーの所有者として設定します。ユーザーを指定しない場合は、デフォルトでroot
に設定されます。ユーザーは文字列または整数として指定できます。 -
group
- オプション - グループをディレクトリーの所有者として設定します。グループを指定しない場合は、デフォルトでroot
になります。グループは文字列または整数として指定できます。 -
ensure_parents
- オプション - 必要に応じて親ディレクトリーを作成するかどうかを指定します。値を指定しない場合は、デフォルトでfalse
に設定されます。
-
[[customizations.directories]]
を使用して、イメージ用にカスタマイズされたファイルを/etc
ディレクトリーの下に作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブループリントの各エントリーを説明します。
-
path
- 必須 - 作成するファイルへのパスを入力します。/etc
ディレクトリー下の絶対パスである必要があります。 -
mode
- オプション - ファイルのアクセスパーミッションを 8 進数形式で設定します。パーミッションを指定しない場合、デフォルトで 0644 に設定されます。先頭のゼロは任意です。 -
user
- オプション - ユーザーをファイルの所有者として設定します。ユーザーを指定しない場合は、デフォルトでroot
に設定されます。ユーザーは文字列または整数として指定できます。 -
group
- オプション - グループをファイルの所有者として設定します。グループを指定しない場合は、デフォルトでroot
になります。グループは文字列または整数として指定できます。 -
data
- オプション - プレーンテキストファイルの内容を指定します。コンテンツを指定しない場合は、空のファイルが作成されます。
-
9.3.8.17. ブループリントでボリュームグループと論理ボリュームの命名を指定する リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder は次の操作に使用できます。
-
高度なパーティションレイアウトを使用して RHEL ディスクイメージを作成します。カスタムのマウントポイント、LVM ベースのパーティション、LVM ベースの SWAP を使用してディスクイメージを作成できます。たとえば、
config.toml
ファイルを使用して、/
および/boot
ディレクトリーのサイズを変更できます。 -
使用するファイルシステムを選択します。
ext4
とxfs
のどちらかを選択できます。 - スワップパーティションと LV を追加します。ディスクイメージに LV ベースの SWAP を含めることができます。
- LVM エンティティーの名前を変更します。イメージ内の論理ボリューム (LV) とボリュームグループ (VG) にカスタム名を付けることができます。
次のオプションはサポートされていません。
- 1 つのイメージに複数の PV または VG を含める
- SWAP ファイル
-
/dev/shm
や/tmp
などの非物理パーティションのマウントオプション
たとえば、以下のようになります。ファイルシステムが存在する VG および LG カスタマイズ名を追加します。
9.3.9. RHEL Image Builder によってインストールされるパッケージ リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder を使用してシステムイメージを作成すると、システムは一連のベースパッケージグループをインストールします。
ブループリントにコンポーネントを追加する場合は、追加したコンポーネント内のパッケージが他のパッケージコンポーネントと競合しないようにしてください。そうしないと、システムは依存関係を解決できず、カスタマイズされたイメージの作成に失敗します。次のコマンドを実行して、パッケージ間に競合がないかどうかを確認できます。
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
デフォルトでは、RHEL Image Builder は Core
グループをパッケージの基本リストとして使用します。
イメージタイプ | デフォルトパッケージ |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9.3.10. カスタムイメージで有効なサービス リンクのコピーリンクがクリップボードにコピーされました!
Image Builder を使用してカスタムイメージを設定する場合、イメージが使用するデフォルトのサービスは次のように決定されます。
-
osbuild-composer
ユーティリティーを使用する RHEL リリース - イメージの種類
たとえば、ami
イメージタイプは、デフォルトで sshd
、chronyd
、および cloud-init
サービスを有効にします。これらのサービスが有効になっていない場合、カスタムイメージは起動しません。
イメージタイプ | デフォルトで有効化されているサービス |
---|---|
| sshd, cloud-init, cloud-init-local, cloud-config, cloud-final |
| sshd, cloud-init, cloud-init-local, cloud-config, cloud-final |
| cloud-init |
| デフォルトでは、追加のサービスは有効になりません。 |
| デフォルトでは、追加のサービスは有効になりません。 |
| sshd, chronyd, waagent, cloud-init, cloud-init-local, cloud-config, cloud-final |
| sshd、chronyd、vmtoolsd、cloud-init |
注記:システムの起動時に有効にするサービスをカスタマイズできます。ただし、カスタマイズは、前述のイメージタイプに対してデフォルトで有効になっているサービスを上書きしません。