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)は各種の仮想マシンイメージを作成できます。ぜひ試してみてください。