B ブループリント形式
ブループリントの内容は、基本メタデータ情報、パッケージ情報およびカスタマイズからなります。
ブループリントは、Image Builderのカスタム・イメージの仕様を提供します。一般的なブループリント・ファイル内の要素としては、1)基本メタデータ、2)パッケージ・リストおよび3)その他のカスタマイズがあります。ブループリント内のすべての構成エントリは、parameter = "value"
の形式を使用して定義します。
メタデータおよびパッケージ情報は、ブループリントのルートで定義されます。
基本メタデータ情報
ブループリントのメタデータでは、そのブループリント自体についての一般情報が提供されます。メタデータは、ファイルの上部に入力され、次のもので構成されます:
-
name: ブループリントの名前(必須)。
-
description: ブループリントの説明(オプション)。
-
version: ブループリントのバージョン番号(必須)。このバージョンは、https://semver.org/にあるセマンティック・バージョニング・スキームに従ってます。
-
distro: イメージの基になるImage Builderリポジトリ内の必要なdistro (オプション)。distro値が空の場合、イメージはホスト・イメージのdistroに基づきます。
name = "myblueprint"
description = "My Blueprint"
version = "0.0.2"
distro = "ol-8"
パッケージ情報
パッケージ情報とは、パッケージ、モジュール、コンテナおよびグループのリストを示す総称です。各エントリには、[[heading]]
という形式で、対応する見出しがあります。
各見出しの下のパラメータは、その見出しで説明されている内容によって異なります。たとえば、パッケージとモジュールのリストには、パッケージの名前とバージョンが必要です。このバージョンの形式は、dnf
バージョン仕様に従っています。たとえば、メジャー・リリースのバージョンは、n.n.n
のように指定します(8.7.0など)。最新のパッケージ・バージョンを指定するには、バージョン番号のかわりにアスタリスク(*
)を入力します。マイナー・リリースの場合は、major-number.*
と入力します(8.*など)。
コンテナとグループでは、異なる情報が必要となり、異なるパラメータが使用されます。各パッケージ、モジュール、コンテナ、またはグループ・リストには、次の例で示すように、それ固有の見出しが必要です:
[[packages]]
name = "tmux"
version = "3.5"
[[packages]]
name = "python3"
version = "3.9.18"
[[groups]]
name = "graphical-admin-tools"
-
パッケージ:
[[packages]]
ブロックで定義されます。各エントリには、パッケージ名とバージョンが必要です。 -
パッケージ・グループ:
[[groups]]
ブロックで定義されます。各エントリには、パッケージ・グループの名前のみが必要です。
ノート:
パッケージ・グループは、一連の関連パッケージであり、リポジトリにそのように定義されます。このため、パッケージ・グループには、個別のパッケージと区別するために独自のブループリント見出し[[groups]]
があります。
カスタマイズ
カスタマイズには、パッケージに関連付けられていないイメージのその他の仕様が含まれています。たとえば、ユーザー、グループ、キーなどです。
カスタマイズは、見出し[customizations]
の下に定義し、より詳細なカスタマイズでは、見出しにキーワードを追加して識別しやすいようにします([[customizations.locale]]
など)。カスタマイズには、通常は、パッケージ情報エントリより多くのパラメータが含まれています。
次の例では、イメージのホスト名、ロケール、タイムゾーンおよびグループに関するカスタマイズを示します。
[customizations]
hostname = "system1"
[[customizations.locale]]
languages = ["en_GB.utf8"]
keyboard = "gb"
[[customizations.timezone]]
timezone = "Europe/Dublin"
ntpservers = ["uk.pool.ntp.org"]
[[customizations.group]]
name = "students"
定義できるその他のカスタム・エントリとしては、次のものがあります:
-
ユーザー: ユーザーの名前、ホーム・ディレクトリ、ユーザーのデフォルト・シェル、そのユーザーが割り当てられているグループなど、特定のユーザー・アカウントに適用される必要なすべての詳細が含まれます。
-
SSH鍵: 特定のユーザーの名前と、そのユーザー用に作成する公開SSH鍵が含まれます。この鍵は、そのユーザーの
authorized_keys
ファイルに追加されます。 -
カーネル: ブートローダーのコマンドラインに追加する引数が含まれます。
-
ファイアウォール・ポート: 開くポートのリストが含まれます。ポートは、
port:protocol
という形式を使用して指定します(たとえば、22:tcp
)。 -
ファイアウォール・サービス: そのイメージに対して有効化および無効化するサービスのリストを含む、別個のリスト。有効化または無効化できるサービスを特定するには、
firewall-cmd --get-services
コマンドを実行します。 -
Systemd
サービス: ファイアウォール・サービスと同様に、このエントリには、イメージに対して有効化および無効化するsystemd
サービスのリストが含まれます。
前述のリストは一部です。ブループリント・エントリをすべて示すリストは、https://osbuild.org/docs/user-guide/blueprint-reference/を参照してください。