4.3. コマンドラインインターフェイスを使用したブループリントの作成
RHEL Image Builder のコマンドラインインターフェイス (CLI) を使用して、新しいブループリントを作成できます。ブループリントには、最終的なイメージと、パッケージやカーネルのカスタマイズなどのそのカスタマイズが記述されています。
前提条件
-
root ユーザーまたは
weldr
グループのメンバーであるユーザーとしてログインしている。
手順
次の内容のプレーンテキストファイルを作成します。
name = "BLUEPRINT-NAME" description = "LONG FORM DESCRIPTION TEXT" version = "0.0.1" modules = [] groups = []
BLUEPRINT-NAME および LONG FORM DESCRIPTION TEXT は、ブループリントの名前および説明に置き換えます。
0.0.1 は、セマンティックバージョニングスキームに従ってバージョン番号に置き換えます。
ブループリントに含まれるすべてのパッケージに、次の行をファイルに追加します。
[[packages]] name = "package-name" version = "package-version"
package-name は、
httpd
、gdb-doc
、coreutils
などのパッケージ名に置き換えます。必要に応じて、package-version を使用するバージョンに置き換えます。このフィールドは、
dnf
バージョンの指定に対応します。- 特定のバージョンについては、8.7.0 などの正確なバージョン番号を使用してください。
- 利用可能な最新バージョンについては、アスタリスク * を使用してください。
- 最新のマイナーバージョンを指定する場合は、8.* などの形式を使用してください。
ニーズに合わせてブループリントをカスタマイズします。たとえば、Simultaneous Multi Threading (SMT) を無効にするには、ブループリントファイルに次の行を追加します。
[customizations.kernel] append = "nosmt=force"
その他に利用できるカスタマイズについては、サポートされているイメージのカスタマイズ を参照してください。
[]
と[[]]
は TOML で表現される異なるデータ構造であることに注意してください。-
[customizations.kernel]
ヘッダーは、キーと各値のペアの集合によって定義される単一のテーブルを表します (例:append = "nosmt=force"
)。 -
[[packages]]
ヘッダーはテーブルの配列を表します。最初のインスタンスで、配列とその最初のテーブル要素を定義します (例:name = "package-name"
、version = "package-version"
)。後続の各インスタンスで、指定の順序で、その配列内に新しいテーブル要素を作成して定義します。
-
- たとえば、ファイルを BLUEPRINT-NAME.toml として保存し、テキストエディターを閉じます。
ブループリントをプッシュします。
# composer-cli blueprints push BLUEPRINT-NAME.toml
BLUEPRINT-NAME は、前の手順で使用した値に置き換えます。
注記composer-cli
を非 root として使用してイメージを作成するには、ユーザーをweldr
またはroot
グループに追加します。# usermod -a -G weldr user $ newgrp weldr
検証
ブループリントがプッシュされ存在していることを確認するには、既存のブループリントを一覧表示します。
# composer-cli blueprints list
追加したばかりのブループリント設定を表示します。
# composer-cli blueprints show BLUEPRINT-NAME
ブループリントに記載されているコンポーネントおよびバージョンと、その依存関係が有効かどうかを確認します。
# composer-cli blueprints depsolve BLUEPRINT-NAME
RHEL Image Builder がカスタムリポジトリーのパッケージの依存関係を解決できない場合は、
osbuild-composer
キャッシュを削除します。3$ sudo rm -rf /var/cache/osbuild-composer/* $ sudo systemctl restart osbuild-composer
関連情報
- osbuild-composer is unable to depsolve a package from my custom repository Red Hat ナレッジベース
- Composing a customized RHEL system image with proxy server (Red Hat ナレッジベース)