RHEL 8.1 beta のImage BuilderのGCP対応はどこまでガイドに忠実か見てみた

Red Hatの森若です。

※ Image Builder自体の紹介については以下の記事をごらんください。 rheb.hatenablog.com

RHEL 8.1でImage BuilderがGCPに対応するらしい

RHEL 8.1 beta (11月予定なのでGAももうすぐですね) のリリースノートを読んでいると、以下のような記述がありました。

Image Builder now supports image creation for more cloud providers

With this update, the Image Builder expanded the number of Cloud Providers that the Image Builder can create an image for. As a result, now you can create RHEL images that can be deployed also on Google Cloud and Alibaba Cloud as well as run the custom instances on these platforms.

(BZ#1689140)

GCPで使える仮想マシンイメージはrawをtar.gzに収めた形式のファイルをgcloudコマンドで送ります。従来でもraw形式で仮想マシンイメージを作ってtarに入れればできるといえばできていました。もう少しいろいろやっているのかもしれません。見てみましょう。

upstreamのissueを見る

Image Builderのupstreamであるloraxプロジェクトをみると、対応するpull requestがあります。 github.com

コメントを読むとGCPはkernel optionの"rhgb quiet" を消すことを推奨していますが消していないことがわかります。

ここでfilesタブを見るとこのPRで修正されたファイル群を閲覧できます。 github.com

disk.rawのようなパーティションつきイメージを作ってdisk.tar.gz に収めるtar対応、それを使う"google"というイメージタイプの定義、専用kickstartやコマンドラインツールの対応、テストなどが含まれています。

kickstartファイルを見る

この中で技術的に気になるところはなんといってもkickstart部分でしょう。kickstartはRHELのインストーラであるanacondaで自動インストールするために使われるファイルです。対話的なGUIやテキストベースのUIよりもこまかい処理が可能です。

https://github.com/weldr/lorax/blob/rhel8.1-branch/share/composer/google.ks

このファイルを見ると、firewallの無効化、MTUサイズ、IPv6の無効化、dhcpを使うこと、タイムゾーンをUTCにすること、irqbalanceの無効化、rootユーザのロックアウトなど、GCPで推奨されている設定が含まれています。

cloud.google.com cloud.google.com

GCP推奨との違い

私が見た限りでは以下の点はGCPの推奨から外れているようです。

  • パッケージの自動更新を設定しない
  • denyhosts, pam_cracklib, pam_tally を設定しない(RHELに含まれていません)
  • linuxコマンドラインの "rhgb quiet" がそのまま
  • CAP_SYS_MODULEの無効化はしない
  • System.map の削除はしない

まとめ

RHEL 8のImage Builder(lorax, weldr)は各種の仮想マシンイメージを作成できます。ぜひ試してみてください。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。