5.3. サポートされているイメージのカスタマイズ

ブループリントに追加の RPM パッケージを追加するか、サービスを有効にするか、カーネルコマンドラインパラメーターをカスタマイズすることで、イメージをカスタマイズできます。ブループリント内でいくつかのイメージのカスタマイズを使用できます。これらのオプションを利用するには、最初にブループリントでカスタマイズを設定し、それを Image Builder にインポート (プッシュ) する必要があります。

注記

Web コンソールで Image Builder を使用する場合、これらのカスタマイズはサポートされません。

パッケージグループの選択
[[packages]]
name = "package_group_name"

"package_group_name" は、パッケージグループの名前に置き換えます。たとえば、"@server with gui" です。

イメージのホスト名の設定
[customizations]
hostname = "baseimage"
作成されるシステムイメージに対するユーザー指定
[[customizations.user]]
name = "USER-NAME"
description = "USER-DESCRIPTION"
password = "PASSWORD-HASH"
key = "PUBLIC-SSH-KEY"
home = "/home/USER-NAME/"
shell = "/usr/bin/bash"
groups = ["users", "wheel"]
uid = NUMBER
gid = NUMBER

GID はオプションであり、イメージに既に存在している必要があります。必要に応じて、パッケージで作成するか、ブループリントで customizations.group エントリーを使用して GID を作成します。

重要

password hash を生成するには、システムに python3 をインストールする必要があります。

# yum install python3

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())'

PUBLIC-SSH-KEY を、実際の公開鍵に置き換えます。

その他のプレースホルダーを、適切な値に置き換えます。

name を入力する必要があります。不要な行は省略できます。

追加するすべてのユーザーにこのブロックを繰り返します。

作成されるシステムイメージに対するグループ指定
[[customizations.group]]
name = "GROUP-NAME"
gid = NUMBER

追加するすべてのグループにこのブロックを繰り返します。

既存ユーザーの SSH 鍵を設定します。
[[customizations.sshkey]]
user = "root"
key = "PUBLIC-SSH-KEY"
注記

既存のユーザーの SSH キーの設定のカスタマイズは、既存ユーザーにのみ適用されます。ユーザーの作成と SSH キーの設定は、システムイメージのカスタマイズに関するユーザー仕様 を参照してください。

デフォルトにカーネルの起動パラメーターオプションを追加
[customizations.kernel]
append = "KERNEL-OPTION"
デフォルトでは、Image Builder はデフォルトのカーネルをイメージにビルドします。ただし、ブループリントで次の設定を使用してカーネルをカスタマイズできます
[customizations.kernel]
name = "KERNEL-rt"
イメージで使用するカーネル名を定義
[customizations.kernel.name]
name = "KERNEL-NAME"
作成されたシステムイメージにタイムゾーンおよび Network Time Protocol (NTP) サーバーを設定
[customizations.timezone]
timezone = "TIMEZONE"
ntpservers = "NTP_SERVER"

タイムゾーンを設定しないと、システムはデフォルトとして Universal Time, Coordinated (UTC) を使用します。NTP サーバーの設定はオプションです。

作成されたシステムイメージのロケール設定
[customizations.locale]
languages = ["LANGUAGE"]
keyboard = "KEYBOARD"

言語とキーボードオプションの両方を設定する必要があります。他の多くの言語を追加できます。最初に追加する言語はプライマリー言語で、他の言語はセカンダリーになります。

作成されたシステムイメージのファイアウォールを設定
[customizations.firewall]
port = ["PORTS"]

リストを有効にするには、数値ポートまたは /etc/services ファイルの名前を使用できます。

ファイアウォールサービスのカスタマイズ

利用可能なファイアウォールサービスを確認します。

$ firewall-cmd --get-services

ブループリントの customizations.firewall.service セクションで、カスタマイズするファイアウォールサービスを指定します。

[customizations.firewall.services]
enabled = ["SERVICES"]
disabled = ["SERVICES"]

firewall.services にリストされているサービスは、/etc/services ファイルで使用可能なサービス名とは異なります。

注記

ファイアウォールサービスをカスタマイズしない場合は、ブループリントの [customizations.firewall] セクションおよび [customizations.firewall.services] セクションを省略します。

システムの起動時に有効にするサービスの設定
[customizations.services]
enabled = ["SERVICES"]
disabled = ["SERVICES"]

システムの起動時に有効にするサービスを制御することができます。一部のイメージタイプでは、イメージが正しく機能し、この設定を上書きできないようにするために、既にサービスが有効または無効になっています。ブループリントの customizations.services カスタマイズは、これらのサービスを置き換えるのではなく、イメージテンプレートにすでに存在するサービスのリストに追加します。

注記

ビルドが開始されるたびに、ホストシステムのリポジトリーのクローンが作成されます。大量の履歴を持つリポジトリーを参照すると、クローンに時間がかかり、大量のディスク領域が使用される場合があります。また、クローンは一時的なものであり、RPM パッケージの作成後にビルドによって削除されます。

カスタムファイルシステム設定を指定します。

ブループリントでカスタムファイルシステム設定を指定できるため、デフォルトのレイアウト設定ではなく、特定のディスクレイアウトでイメージを作成できます。ブループリントでデフォルト以外のレイアウト設定を使用すると、次の利点が得られます。

  • セキュリティーベンチマークコンプライアンス
  • ディスク外エラーに対する保護
  • 改良された性能
  • 既存の設定との一貫性

    ブループリントでファイルシステム設定をカスタマイズするには:

    [[customizations.filesystem]]
    mountpoint = "MOUNTPOINT"
    size = MINIMUM-PARTITION-SIZE

    ブループリントは、次の mountpoints とそのサブディレクトリーをサポートしています。

    • / - ルートマウントポイント
    • /var
    • /home
    • /opt
    • /srv/
    • /usr
    • /app
    • /data
    • /boot - RHEL 8.7 および RHEL 9.1 以降でサポートされています。

      注記

      マウントポイントのカスタマイズは、CLI を使用することで、RHEL 8.5 および RHEL 9.0 ディストリビューション以降でのみサポートされます。以前のディストリビューションでは、root パーティションをマウントポイントとして指定し、size 引数をイメージ size のエイリアスとして指定することしかできません。

      カスタマイズされたイメージに複数のパーティションがある場合、LVM でカスタマイズされたファイルシステムパーティションを使用してイメージを作成し、実行時にそれらのパーティションのサイズを変更できます。これを行うには、ブループリントでカスタマイズされたファイルシステム設定を指定して、目的のディスクレイアウトでイメージを作成します。デフォルトのファイルシステムレイアウトは変更されません。ファイルシステムをカスタマイズせずにプレーンイメージを使用すると、ルートパーティションは cloud-init によってサイズ変更されます。

      注記

      8.6 以降、osbuild-composer-46.1-1.el8 RPM 以降のバージョンでは、物理パーティションは使用できなくなり、ファイルシステムのカスタマイズによって論理ボリュームが作成されます。

      ブループリントは、ファイルシステムのカスタマイズを LVM パーティションに自動的に変換します。

      MINIMUM-PARTITION-SIZE 値には、デフォルトのサイズ形式はありません。ブループリントのカスタマイズでは、kB から TB、および KiB から TiB の値と単位がサポートされています。たとえば、マウントポイントのサイズをバイト単位で定義できます。

      [[customizations.filesystem]]
      mountpoint = "/var"
      size = 1073741824

      単位を使用してマウントポイントのサイズを定義することもできます。

      注記

      RHEL 8.6 および RHEL 9.0 ディストリビューション以降に提供されているパッケージバージョンの単位を使用してのみ、マウントポイントサイズを定義できます。

      以下に例を示します。

      [[customizations.filesystem]]
      mountpoint = "/opt"
      size = "20 GiB"
      
      or
      
      [[customizations.filesystem]]
      mountpoint = "/boot"
      size = "1 GiB"