Menu Close

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

Blueprint では、多くのイメージのカスタマイズがサポートされています。このオプションを使用するには、最初に Blueprint でカスタマイズを設定して、Image Builder にインポート(プッシュ)する必要があります。

注記

これらのカスタマイズは、現在 Web コンソールではサポートされていません。

イメージのホスト名の設定
[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 は任意で、イメージにすでに存在している必要があり、パッケージにより作成されるか、または Blueprint [[customizations.group]] エントリーで作成されます。

重要

ハッシュを生成するには、システムに python3 をインストールする必要があります。以下のコマンドにより、python3 パッケージをインストールします。

# dnf install python3

PASSWORD-HASH を、パスワードハッシュに置き換えます。ハッシュを生成するには、次のようなコマンドを実行します。

$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'

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

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

必要に応じて任意の行を省略します。ユーザー名のみが必須となります。

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

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

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

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

このオプションは、既存ユーザーにのみ適用されます。ユーザーを作成して ssh キーを設定するには、このセクションで 生成されるシステムイメージのカスタマイズのユーザー仕様 を参照してください。

デフォルトにカーネルの起動パラメーターオプションを追加
[customizations.kernel]
append = "KERNEL-OPTION"
デフォルトでは、Image Builder はデフォルトカーネルをイメージにビルドします。ただし、Blueprint で以下の設定でカーネルをカスタマイズできます。
[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

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

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

firewall.services に一覧表示されるサービスは、/etc/services ファイルで利用可能な名前とは異なります。

オプションで、作成する予定のシステムイメージのファイアウォールサービスをカスタマイズできます。

注記

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

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

システムの起動時に有効にするサービスを制御することができます。イメージタイプによっては、サービスがすでに有効または無効になっているため、イメージが正常に機能し、この設定はオーバーライドできません。

注記

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

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

ブループリントでカスタムファイルシステム構成を指定して、デフォルトのレイアウト構成を使用する代わりに、特定のディスクレイアウトでイメージを作成できます。ブループリントでデフォルト以外のレイアウト構成を使用すると、次の利点が得られます。

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

    ブループリントのファイルシステム構成をカスタマイズします。

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

    次のmountpointsとそのサブディレクトリがサポートされています。

    • / - ルートマウントポイント
    • /var
    • /home
    • /opt
    • /srv
    • /usr
    • /app
    • /data

      注記

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

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

      Blueprint にファイルシステムのカスタマイズを追加すると、ファイルシステムが LVM パーティションに変換されます。

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

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

      ユニットを使用してマウントポイントのサイズを定義することもできます。以下に例を示します。

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