Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Red Hat Enterprise Linux 8 Image Builder 紹介資料 / rhel8-imagebuilder
Kazuo Moriwaka
July 21, 2020
Technology
1
220
Red Hat Enterprise Linux 8 Image Builder 紹介資料 / rhel8-imagebuilder
RHEL の仮想マシンイメージを作成する Image Builder を紹介する資料です
Kazuo Moriwaka
July 21, 2020
Tweet
Share
More Decks by Kazuo Moriwaka
See All by Kazuo Moriwaka
moriwaka
0
81
moriwaka
0
260
moriwaka
1
770
moriwaka
1
260
moriwaka
0
460
moriwaka
0
270
moriwaka
0
65
moriwaka
3
350
moriwaka
1
1k
Other Decks in Technology
See All in Technology
miura55
0
500
legalforce
PRO
4
330
clustervr
0
250
iwashi
1
210
jrfk
0
220
udzura
2
260
nisshii0313
1
170
gamella
3
1.5k
yunoda
0
150
tosh2230
3
330
tricknotes
1
140
thockin
3
970
Featured
See All Featured
reverentgeek
27
2k
matthewcrist
73
7.5k
keathley
20
710
cromwellryan
104
6.2k
jnunemaker
PRO
40
4.6k
dougneiner
118
7.9k
destraynor
146
19k
bkeepers
321
53k
philnash
9
590
bryan
100
11k
danielanewman
200
20k
searls
204
36k
Transcript
1 Red Hat Enterprise Linux 8 Image Builder 森若 和雄
Solution Architect
2 目次 • Image Builder のしくみ概要 • インストール • blueprint
• Web Console • コマンド例 • Image Builder Q&A 、注意点 • 参考資料
3 VM のデプロイどうしてる ? • インストーラで都度インストール – kickstart や Red
Hat Satellite を使うと自動化・省力化できる • VM イメージから作成 – Image Builder はこの VM イメージを作成するためのツール
4 VM イメージをつくる • どうやって作る ? – クラウドプロバイダの提供イメージを使う – RHEL
の KVM 用 VM イメージを使う – ローカルの仮想化環境にインストールして変換 • パッケージの更新は ? – 新しいバージョンでイメージを作り直し – 各 VM で update
5 自動 VM イメージ作成 • 自作したいケース – 提供元によって内容やリリースタイミングが微妙に違う – 不要パッケージがある
– SELinux disable したい – ansible ユーザをつくっておきたい • 0 からインストールするのは面倒 → Image Builder でインストールと変換を自動化
6 Image Builder • VM イメージを作成する。 RHEL8 と 7.8 から
full support 。 – RHEL や Fedora の boot.iso などの作成にも使われている • 各種環境用のイメージを作成する – 仮想化 : KVM(qcow2), OpenStack, VMware, Hyper-V – クラウド : AWS, Azure, GCP, Alibaba – その他 : tar, Live CD, raw パーティション
7 Image Builder のしくみ概要 各環境用メタデータ blueprint ( パッケージ指定と設定 ) 各環境用
.ks yum リポジトリ lorax-composer kickstart 生成 anaconda /var/sysimage VM イメージ ファイル 変換 blueprint を用意して タイプを指定すると イメージファイルを作成 インストール
8 Image Builder のインストール • lorax 本体と CLI – yum
-y install composer-cli lorax-composer • Web Console UI – yum -y install cockpit-composer • サービス有効化 – systemctl enable --now lorax-composer.service – systemctl restart cockpit • 利用者を weldr グループに追加 – usermod -a -G weldr admin
9 blueprint 最低限のカスタマイズのみ可能 • パッケージとモジュールを指定 – 個別にバージョン指定可能 • ユーザとグループを作成 –
パスワード、 ssh 鍵、 uid 、 gid 、 shell などを指定 • その他 – timezone, locale, firewall, カーネルオプション – git リポジトリ内のファイルを特定ディレクトリ以下に配置する専用 rpm
10 blueprint 例 • TOML 形式 • blueprint の名前、バージョン •
パッケージとモジュール • カスタマイズ – ユーザとグループ – timezone, locale, firewall, カーネルオプションなど name = "http-server" description = "" version = "0.0.3" modules = [] groups = [] [[packages]] name = "httpd" version = "*" [[packages]] name = "openssh-server" version = "*" [customizations] [[customizations.user]] name = "admin" description = "admin tarou" groups = ["wheel"] password = "$6$PsLJTTaSZvSynSuD$Zs8qlMQ(略)KAv5g1" key = "ecdsa-sha2-nistp256 AAAAE(略) admin@localhost"
11 Web Console 上の UI • blueprint 作成 : パッケージ
選択と一部のカスタマイズ に対応 • image 作成、ログ参照、作 成済み image のダウンロー ド
12 コマンド例 • blueprint インポート – composer-cli blueprints push http-server.toml
• イメージのビルド – composer-cli compose start http-server ami • イメージの一覧、ダウンロード – composer-cli compose list eed61af0-e45c-4998-96a6-f151048ed9b9 RUNNING http-server 0.0.3 ami – composer-cli compose image eed61af0-e45c-4998-96a6-f151048ed9b9 • イメージ作成後の root パスワード変更 – yum install libguestfs-tools – virt-customize -a httpd-image.ami --root-password password:CHANGEME
13 Q&A: Image Builder の能力 • subscription-manager の登録も VM イメージ作成時にできるか?
→ できない。 subscription-manager は登録時に証明書を作って各システ ムを識別するためイメージ作成時に登録できない。 ( 登録作業の省力化 には activation key を使うとよい ) • 以前作成した VM イメージと同じパッケージバージョンで作業したい → Image Builder だけでは対応する機能がない。 composer-cli blueprints freeze は blueprint で指定されたパッケージのバージョンを記録するが、 依存関係で導入されるパッケージは記録しない。 Red Hat Satellite の Content View 機能を使うとリポジトリのバージョニ ングができるので組みあわせると可能。
14 Q&A: 利用リポジトリ • インストール用 ISO や , EPEL, サードパーティのパッケージを
VM イ メージに含みたい → /var/lib/lorax/composer/repos.d/ に *.repo を配置するとホストが購 読していないリポジトリを利用できる。 • 最新ではなく EUS のイメージを作りたい →デフォルトではホストのリポジトリを利用する。つまりホストで EUS を購読していると EUS を利用する。ホストと違うバージョンを扱いたい 場合は一時的に subscription-manager release --set=8.x ; yum clean all などをおこなってホストの状態を変更するか、別途 source を指定する。
15 Q&A: VM イメージの変更 • Image Builder ができないアレコレの作業をおこないたい → フェーズにより手法がかわります
– ビルド中 : カスタムの出力タイプを作る (kickstart のテンプレートを変更 できる、 サポート対象外 ) https://weldr.io/lorax/rhel8-branch/lorax-composer.html#adding-output-types – ビルド後 : libguestfs-tools (rescue 相当の環境に仮想マシンイメージを mount して操作するツール群 ) の virt-customize などで変更 – VM 起動後 : ansible 、 HashiCorp Packer などで作業したのち virt-sysprep で不要部分を初期化
16 注意点 • RHEL 8 では RHEL 8 のイメージを、 RHEL
7 では RHEL 7 の VM イメージ だけを作成できる。 • Image Builder 専用の VM( またはベアメタルシステム ) が必須 • /var/ 以下に VM イメージ、 rpm パッケージ、一時的なディレトリツリーな どを配置するのでストレージ容量は最終的なイメージの 2-3 倍必要 • 最新以外のパッケージを使いたい場合リポジトリを管理する必要がある – Image Builder はパッケージのバージョンを指定する能力があるが、 yum が依 存関係解決で別パッケージを導入する場合に過去のイメージと同じにバージョ ンのパッケージを利用するとは限らない。 Red Hat Satellite の Contents View 機能が該当する。
17 参考資料 • lorax ドキュメント (upstream project) – https://weldr.io/lorax/ RHEL7,
RHEL8 などのブランチ向けドキュメントあり • オンラインラボ – https://red.ht/31sc9Fe • RHEL 8 ドキュメント「 RHEL システムイメージのカスタマイズ」 – https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/composing_a_c ustomized_rhel_system_image/index • RHEL 7 ドキュメント「 virt-customize: 仮想マシン設定のカスタマイズ」 – https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/virtualization_de ployment_and_administration_guide/sect-guest_virtual_machine_disk_access_with_offline_tools- using_virt_customize
CONFIDENTIAL Designator linkedin.com/ company/red-hat youtube.com/user/ RedHatVideos facebook.com/ redhatinc twitter.com/RedHat 18
Thank you Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500.