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-10"
パッケージ情報
パッケージ情報とは、パッケージ、モジュール、コンテナおよびグループのリストを示す総称です。 各エントリには、[[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/を参照してください。