Image Builder ガイド
Image Builder でのカスタムシステムイメージの作成
概要
第1章 Image Builder の説明 リンクのコピーリンクがクリップボードにコピーされました!
1.1. Image Builder の概要 リンクのコピーリンクがクリップボードにコピーされました!
composer-cli ツールのコマンドラインインターフェイスで Image Builder 機能、または RHEL 7 Web コンソールでグラフィカルインターフェイスにアクセスできます。詳細はmanaging the web consoleを参照してください。
lorax-composer として実行します。このサービスは、以下の 2 つのインターフェイスを介してこのサービスを利用できます。
- 端末でコマンドを実行する CLI ツールの
composer-cli。この方法が推奨されています。 - RHEL 7 Web コンソールの GUI プラグイン。
1.2. Image Builder の用語 リンクのコピーリンクがクリップボードにコピーされました!
- Blueprint - Blueprint は、システムに追加されるパッケージおよびカスタマイズを一覧表示して、カスタマイズされたシステムのイメージを定義します。Blueprint は編集でき、バージョン管理が行われています。Blueprint からシステムイメージを作成すると、イメージは、RHEL 7 Web コンソールの Image Builder インターフェイスにある Blueprint に関連付けられます。Blueprint は、TOML (Tom's Obvious, Minimal Language) 形式の平文テキストとして表示されます。
- Compose - Compose は、特定の Blueprint の特定のバージョンに基づくシステムイメージの個々のビルドです。用語としての Compose は、システムイメージと、その作成、入力、メタデータ、およびそのプロセス自体のログを指します。
- カスタマイズ カスタマイズはシステムの仕様で、パッケージではありません。これには、ユーザーアカウント、グループ、カーネル、タイムゾーン、ロケール、ファイアウォール、および ssh キーが含まれます。
1.3. Image Builder の出力形式 リンクのコピーリンクがクリップボードにコピーされました!
| 説明 | CLI 名 | ファイル拡張子 |
|---|---|---|
QEMU QCOW2 イメージ | qcow2 | .qcow2 |
Ext4 ファイルシステムイメージ | 80 | .qcow2 |
raw パーティション設定ディスクイメージ | partitioned-disk | .img |
ライブ起動可能 ISO | live-iso | .iso |
tar アーカイブ | tar | .tar |
Amazon Machine Image ディスクの作成 | ami | .ami |
VMware 仮想マシンディスク | vmdk | .vmdk |
Openstack | openstack | .qcow2 |
1.4. Image Builder のシステム要件 リンクのコピーリンクがクリップボードにコピーされました!
lorax ツールは、システムイメージを作成している間に、潜在的にセキュリティーが保護されていないため、安全でない操作を多数実行します。このため、仮想マシンを使用して Image Builder を実行します。
| パラメーター | 最低要求値 |
|---|---|
システムのタイプ | 専用の仮想マシン |
プロセッサー | 2 コア |
メモリー | 4 GiB |
ディスク容量 | 20 GiB |
アクセス権限 | 管理者レベル (root) |
ネットワーク | インターネットへの接続 |
第2章 Image Builder のインストール リンクのコピーリンクがクリップボードにコピーされました!
2.1. 仮想マシンへの Image Builder のインストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- 仮想マシンに接続している。
- Image Builder 用の仮想マシンがインストールされ、サブスクライブされ、実行している。
手順
- lorax-composer
- composer-cli
- cockpit-composer
- bash-completion
yum install lorax-composer composer-cli cockpit-composer bash-completion
# yum install lorax-composer composer-cli cockpit-composer bash-completion
systemctl enable lorax-composer.socket
# systemctl enable lorax-composer.socket
systemctl enable cockpit.socket
# systemctl enable cockpit.socket
lorax-composer サービスおよび cockpit サービスは、最初のアクセスで自動的に起動します。
firewall-cmd --add-service=cockpit && firewall-cmd --add-service=cockpit --permanent
# firewall-cmd --add-service=cockpit && firewall-cmd --add-service=cockpit --permanent
composer-cli ツールのオートコンプリート機能が、システムを再起動しなくてもすぐに動作するように、シェル設定スクリプトを読み込みます。
source /etc/bash_completion.d/composer-cli
$ source /etc/bash_completion.d/composer-cli
第3章 Image Builder コマンドラインインターフェイスでシステムイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
3.1. Image Builder コマンドラインインターフェイス リンクのコピーリンクがクリップボードにコピーされました!
composer-cli ツールに、適切なオプションとサブコマンドを付けて実行します。
composer-cli ツールには、設定した Blueprint と Compose の状態を調べるサブコマンドが多数あります。
composer-cli コマンドを実行するには、ユーザーが weldr グループまたは root グループに属している必要があります。
3.2. コマンドラインインターフェイスで Image Builder の Blueprint の作成 リンクのコピーリンクがクリップボードにコピーされました!
手順
name = "BLUEPRINT-NAME" description = "LONGER BLUEPRINT DESCRIPTION TEXT" version = "0.0.1"
name = "BLUEPRINT-NAME"
description = "LONGER BLUEPRINT DESCRIPTION TEXT"
version = "0.0.1"
BLUEPRINT-NAME および LONGER BLUEPRINT DESCRIPTION を、Blueprint の名前および説明に置き換えます。
0.0.1 をバージョン番号に置き換えます。
[[packages]] name = "package-name" version = "package-version"
[[packages]]
name = "package-name"
version = "package-version"
package-name を、パッケージ名 (httpd、gdb-doc、coreutils など) に置き換えます。
package-version を、使用するバージョンに置き換えます。このフィールドは、dnf バージョンの指定に対応します。
- 特定のバージョンを指定する場合は、
7.30のように、バージョン番号を正確に指定してください。 - 利用可能な最新バージョンを指定する場合は、アスタリスク (
*) を使用します - 最新のマイナーバージョンを指定する場合の形式は、
7.*のようになります。
[customizations.kernel] append = "nosmt=force"
[customizations.kernel]
append = "nosmt=force"
BLUEPRINT-NAME.toml として保存し、テキストエディターを閉じます。
composer-cli blueprints push BLUEPRINT-NAME.toml
# composer-cli blueprints push BLUEPRINT-NAME.toml
composer-cli blueprints list
# composer-cli blueprints list
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
3.3. コマンドラインインターフェイスで Image Builder の Blueprint の編集 リンクのコピーリンクがクリップボードにコピーされました!
手順
composer-cli blueprints save BLUEPRINT-NAME
# composer-cli blueprints save BLUEPRINT-NAME
BLUEPRINT-NAME.toml ファイルは、選択したテキストエディターで編集して変更を加えます。
- 次の行がある場合は削除します。
packages = []
packages = []Copy to Clipboard Copied! Toggle word wrap Toggle overflow - バージョン番号を大きくしてください。Image Builder の Blueprint バージョンは Semantic Versioning スキームを使用する必要があります。バージョンを変更しないと、バージョンの patch コンポーネントが自動的に増えます。
- コンテンツが有効な TOML 仕様かどうかを確認します。詳細は、TOML のドキュメント を参照してください。
composer-cli blueprints push BLUEPRINT-NAME.toml
# composer-cli blueprints push BLUEPRINT-NAME.toml
.toml 拡張子を含むファイル名を指定する必要がありますが、他のコマンドでは Blueprint の名前のみを使用することに注意してください。
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAME
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
3.4. Image Builder コマンドラインインターフェイスでシステムイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- イメージに Blueprint を用意している。
手順
composer-cli compose start BLUEPRINT-NAME IMAGE-TYPE
# composer-cli compose start BLUEPRINT-NAME IMAGE-TYPE
composer-cli compose types コマンドの出力を参照してください。
composer-cli compose status
# composer-cli compose status
composer-cli compose image UUID
# composer-cli compose image UUID
/var/lib/lorax/composer/results/UUID/ の配下にあるイメージファイルに直接アクセスできます。
composer-cli compose logs UUID コマンドを使用してログをダウンロードし、composer-cli compose metadata UUID コマンドを使用してメタデータをダウンロードすることもできます。
3.5. Image Builder コマンドラインの基本的なコマンド リンクのコピーリンクがクリップボードにコピーされました!
Blueprint 操作
- 利用可能なブループリント一覧の表示
composer-cli blueprints list
# composer-cli blueprints listCopy to Clipboard Copied! Toggle word wrap Toggle overflow - TOML 形式でブループリントの内容の表示
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - TOML 形式のブループリントの内容を BLUEPRINT-NAME.toml ファイルに保存 (エクスポート)
composer-cli blueprints save BLUEPRINT-NAME
# composer-cli blueprints save BLUEPRINT-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - ブループリントの削除
composer-cli blueprints delete BLUEPRINT-NAME
# composer-cli blueprints delete BLUEPRINT-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - TOML 形式のブループリントファイルを Image Builder へプッシュ (インポート)
composer-cli blueprints push BLUEPRINT-NAME
# composer-cli blueprints push BLUEPRINT-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
Blueprint でイメージの設定
- Compose の起動
composer-cli compose start BLUEPRINT COMPOSE-TYPE
# composer-cli compose start BLUEPRINT COMPOSE-TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow BLUEPRINT は、構築する Blueprint の名前に、COMPOSE-TYPE は、出力イメージタイプに置き換えます。- Compose の一覧表示
composer-cli compose list
# composer-cli compose listCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 実行中の Compose のキャンセル
composer-cli compose cancel COMPOSE-UUID
# composer-cli compose cancel COMPOSE-UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 完了した Compose の削除
composer-cli compose delete COMPOSE-UUID
# composer-cli compose delete COMPOSE-UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Compose の詳細情報の表示
composer-cli compose info COMPOSE-UUID
# composer-cli compose info COMPOSE-UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Compose のイメージファイルのダウンロード
composer-cli compose image COMPOSE-UUID
# composer-cli compose image COMPOSE-UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- man ページの
composer-cli(1)は、利用可能なサブコマンドとオプションの完全リストを提供します。man composer-cli
$ man composer-cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow composer-cliツールは、サブコマンドとオプションに関するヘルプを提供します。composer-cli compose list
# composer-cli compose listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. Image Builder の Blueprint 形式 リンクのコピーリンクがクリップボードにコピーされました!
- Blueprint のメタデータ
name = "BLUEPRINT-NAME" description = "LONGER BLUEPRINT DESCRIPTION" version = "VERSION" modules = [] groups = []
name = "BLUEPRINT-NAME" description = "LONGER BLUEPRINT DESCRIPTION" version = "VERSION" modules = [] groups = []Copy to Clipboard Copied! Toggle word wrap Toggle overflow BLUEPRINT-NAME および LONG FORM DESCRIPTION TEXT は、Blueprint の名前および説明に置き換えます。
Semantic Versioning スキームに従い、VERSION をバージョン番号に置き換えます。
この部分は、Blueprint ファイル全体に対して一度だけ提示します。
modules エントリーは、パッケージ名と、イメージにインストールするバージョンと一致する glob を示し、group では、イメージにインストールされるパッケージのグループを記述します。これらの項目を追加しない場合、Blueprint はそれらを empyt リストとして識別します。
- イメージに含まれるパッケージ
[[packages]] name = "package-name" version = "package-version"
[[packages]] name = "package-name" version = "package-version"Copy to Clipboard Copied! Toggle word wrap Toggle overflow package-nameを、パッケージ名 (httpd、gdb-doc、coreutils など) に置き換えます。package-versionを、使用するバージョンに置き換えます。このフィールドは、dnfバージョンの指定に対応します。- 特定のバージョンを指定する場合は、7.30 のように、バージョン番号を正確に指定してください。
- 利用可能な最新バージョンを指定する場合は、アスタリスク (*) を使用します。
- 最新のマイナーバージョンを指定する場合の形式は、7.* のようになります。
追加するすべてのパッケージにこのブロックを繰り返します。
3.7. サポートされているイメージのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
- イメージのホスト名の設定
[customizations] hostname = "baseimage"
[customizations] hostname = "baseimage"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成されるシステムイメージに対するユーザー指定
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
python3 パッケージが必要です。パッケージをインストールするには、次のコマンドを使用します。
yum install python3
# yum install python3
- 作成されるシステムイメージに対するグループ指定
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
[[customizations.group]] name = "GROUP-NAME" gid = NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 追加するすべてのグループにこのブロックを繰り返します。- 既存ユーザーの SSH キーの設定
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- デフォルトにカーネルの起動パラメーターオプションを追加
[[customizations.kernel]] append = "KERNEL-OPTION"
[[customizations.kernel]] append = "KERNEL-OPTION"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- イメージのホスト名の設定
[customizations] hostname = "BASE-IMAGE"
[customizations] hostname = "BASE-IMAGE"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成されるシステムイメージのグループを追加
[[customizations.group]] name = "USER-NAME" gid = NUMBER
[[customizations.group]] name = "USER-NAME" gid = NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 名前のみが必要であり、GID は任意です。- 作成されたシステムイメージにタイムゾーンおよび Network Time Protocol (NTP) サーバーを設定
[customizations.timezone] timezone = "TIMEZONE" ntpservers = NTP-SERVER
[customizations.timezone] timezone = "TIMEZONE" ntpservers = NTP-SERVERCopy to Clipboard Copied! Toggle word wrap Toggle overflow タイムゾーンを設定しないと、システムはデフォルトとして Universal Time, Coordinated (UTC) を使用します。NTP サーバーの設定はオプションです。- 作成されたシステムイメージのロケール設定
[customizations.locale] language = "[LANGUAGE]" keyboard = "KEYBOARD"
[customizations.locale] language = "[LANGUAGE]" keyboard = "KEYBOARD"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 言語とキーボードの両方のオプションを設定することが必要です。複数の言語を追加できます。最初に追加する言語はプライマリー言語で、他の言語はセカンダリーになります。- 作成されたシステムイメージのファイアウォールを設定
[customizations.firewall] port = "[PORTS]"
[customizations.firewall] port = "[PORTS]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/services ファイルの数値ポートまたは名前を使用して、一覧を有効または無効にすることができます。- システムの起動時に有効にするサービスの設定
[customizations.services] enabled = "[SERVICES]" disabled = "[SERVICES]"
[customizations.services] enabled = "[SERVICES]" disabled = "[SERVICES]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow システムの起動時に有効にするサービスを制御することができます。イメージタイプによっては、サービスがすでに有効または無効になっているため、イメージが正常に機能し、この設定はオーバーライドできません。
第4章 Image Builder Web コンソールインターフェイスでシステムイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
4.1. RHEL 7 Web コンソールで Image Builder GUI へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- システムへの root アクセス権限がある。
手順
https://localhost:9090/ を開きます。
図4.1 Web コンソールへのログイン
図4.2 Web コンソールの Image Builder
関連情報
- Image Builder シナリオ を使用してカスタマイズされた RHEL OS イメージを作成できます。
4.2. Web コンソールインターフェイスで Image Builder の Blueprint の作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- ブラウザーで、RHEL 7 Web コンソールの Image Builder インターフェイスを開いている。
手順
図4.3 Blueprint の作成
- i.左側の 利用可能なコンポーネント フィールドにコンポーネント名またはその一部を入力し、Enter を押します。
図4.4 利用可能なコンポーネントの検索
テキスト入力フィールドの下にあるフィルターリストに検索条件が追加され、その下のコンポーネントのリストが、検索条件と一致するものに絞られます。コンポーネントのリストが長すぎる場合は、さらに検索の用語を追加します。 - ii.コンポーネントのリストは、1 ページずつ表示されます。別の結果ページに移動するには、コンポーネントリストの上にある矢印および入力フィールドを使用します。
- iii.使用するコンポーネントの名前をクリックし、その詳細を表示します。右側のペインに、コンポーネントの詳細 (バージョンや依存関係など) が表示されます。
- iv.コンポーネントのオプションボックスのバージョンリリースドロップダウンメニューで、使用するバージョンを選択します。
- v.左上の追加をクリックします。
- vi.誤ってコンポーネントを追加してしまった場合には、右側のペインでエントリーの右端にある ... ボタンをクリックしてそのコンポーネントを選択し、メニューで 削除 を選択してそのコンポーネントを削除します。
4.3. Web コンソールインターフェイスで Image Builder の Blueprint の編集 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- ブラウザーで、RHEL 7 Web コンソールの Image Builder インターフェイスを開いている。
- Blueprint が存在する。
手順
削除 を選択してそのコンポーネントを削除します。
- i.Blueprint コンポーネント検索フィールドで、
Blueprint コンポーネントの見出しの下にあるフィールドにコンポーネント名またはその一部を入力し、 を押します。テキスト入力フィールドの下にあるフィルターリストに検索条件が追加され、その下のコンポーネントのリストが、検索条件と一致するものに絞られます。コンポーネントのリストが長すぎる場合は、さらに検索の用語を追加します。 - ii.コンポーネントのエントリー右端の ボタンをクリックし、メニューで
表示を選択します。右側のペインに、コンポーネントの詳細ウィンドウが表示されます。 - iii.
バージョンリリースドロップダウンメニューで目的のバージョンを選択し、右上の をクリックします。変更が保存され、右側のペインが Blueprint コンポーネントのリストに戻ります。
- i.左側で、利用可能なコンポーネントの見出しの下にあるフィールドにコンポーネント名またはその一部を入力し、Enter を押します。テキスト入力フィールドの下にあるフィルターリストに検索条件が追加され、その下のコンポーネントのリストが、検索条件と一致するものに絞られます。コンポーネントのリストが長すぎる場合は、さらに検索の用語を追加します。
- ii.コンポーネントのリストは、1 ページずつ表示されます。別の結果ページに移動するには、コンポーネントリストの上にある矢印および入力フィールドを使用します。
- iii.使用するコンポーネントの名前をクリックし、その詳細を表示します。右側のペインに、コンポーネントの詳細 (バージョンや依存関係など) が表示されます。
- iv.
コンポーネントのオプションボックスで、バージョンリリースドロップダウンメニューを使用して、使用するバージョンを選択します。 - v.右上の をクリックします。
- vi.誤ってコンポーネントを追加してしまった場合には、右側のペインでそのエントリー右端の ボタンをクリックし、メニューで
削除を選択してそのコンポーネントを削除します。
- i.右上のコミットボタンをクリックします。ポップアップウィンドウに変更の概要が表示されます。
- ii.変更内容を確認し、コミットをクリックして確定します。右側の小さなポップアップに保存の進捗が表示され、続いて結果が表示されます。新しいバージョンの Blueprint が作成されます。
- iii.左上の
Blueprint に戻るをクリックし、編集ウィンドウを終了します。Image Builder ビューが開き、既存の Blueprint の一覧が表示されます。
4.4. Web コンソールインターフェイスで Image Builder の Blueprint にユーザーおよびグループを追加 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Blueprint が存在する。
vim、nano、emacsなどの CLI テキストエディターがインストールされている。インストールするには、以下のコマンドを実行します。yum install editor-name
# yum install editor-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
sudo bash
$ sudo bash
composer-cli blueprints save BLUEPRINT-NAME
# composer-cli blueprints save BLUEPRINT-NAME
- i.追加するすべてのユーザーに対して、このブロックをファイルに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD-HASH を、パスワードハッシュに置き換えます。ハッシュを生成するには、以下のようなコマンドを実行します。python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ssh-rsa (…) key-name を、公開鍵に置き換えます。その他のプレースホルダーを、適切な値に置き換えます。必要に応じて任意の行を省略します。ユーザー名のみが必須となります。 - ii.追加するすべてのユーザーグループに対して、このブロックをファイルに追加します。
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
[[customizations.group]] name = "GROUP-NAME" gid = NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow iii.バージョン番号を大きくしてください。iv.ファイルを保存してエディターを閉じます。 - 6.Blueprint を Image Builder にインポートします。
composer-cli blueprints push BLUEPRINT-NAME.toml
# composer-cli blueprints push BLUEPRINT-NAME.tomlCopy to Clipboard Copied! Toggle word wrap Toggle overflow .toml拡張子を含むファイル名を指定する必要がありますが、他のコマンドでは Blueprint の名前のみを使用することに注意してください。 - 7.Image Builder にアップロードしたコンテンツが編集内容と一致することを確認するには、Blueprint のコンテンツの一覧を表示します。
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow バージョンが、ファイルに指定したバージョンと一致するか、およびカスタマイズが存在するかどうかを確認します。重要Blueprint に含まれるパッケージも編集しないと、変更が適用されたことを確認するために使用できる情報が、RHEL 7 Web コンソールの Image Builder プラグインには表示されません。 - 8.特権シェルを終了します。
exit
# exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 9.左側の Image Builder (Image builder) タブを開き、開いていたすべてのブラウザーとタブでページを更新します。これにより、読み込まれたページにキャッシュされた状態が、誤って変更を元に戻すことを防ぎます。
追加情報
4.5. Web コンソールインターフェイスで Image Builder を使用したシステムイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- ブラウザーで、RHEL 7 Web コンソールの Image Builder インターフェイスを開いている。
- Blueprint が存在する。
手順
第5章 Image Builder を使用したクラウドイメージのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
5.1. アップロードする AWS AMI イメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- AWS IAM アカウントマネージャー にアクセスキー ID を設定している。
- 書き込み可能な S3 bucket を準備する必要があります。
手順
pip ツールをインストールします。
yum install python3 python3-pip
# yum install python3 python3-pip
pip3 install awscli
# pip3 install awscli
aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
BUCKET=bucketname
$ BUCKET=bucketname
aws s3 mb s3://$BUCKET
$ aws s3 mb s3://$BUCKET
vmimport S3 Role を作成し、これまでに S3 にアクセスする権限を付与していない場合は、それを行います。
printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }' > trust-policy.json $ printf '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::%s", "arn:aws:s3:::%s/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }' $BUCKET $BUCKET > role-policy.json $ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json $ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
$ printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }' > trust-policy.json $ printf '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::%s", "arn:aws:s3:::%s/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }' $BUCKET $BUCKET > role-policy.json $ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json $ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
5.2. AWS への AMI イメージのアップロード リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- AWS イメージのアップロードを設定している。
- Image Builder で AWS イメージを作成している。イメージの作成時に、CLI で
ami出力タイプ、または GUI で Amazon Machine Image Disk (.ami) を使用します。
手順
$ AMI=8db1b463-91ee-4fd9-8065-938924398428-disk.ami
$ $ AMI=8db1b463-91ee-4fd9-8065-938924398428-disk.ami
aws s3 cp $AMI s3://$BUCKET Completed 24.2 MiB/4.4 GiB (2.5 MiB/s) with 1 file(s) remaining ...
$ aws s3 cp $AMI s3://$BUCKET Completed 24.2 MiB/4.4 GiB (2.5 MiB/s) with 1 file(s) remaining ...
A printf '{ "Description": "my-image", "Format": "raw", "UserBucket": { "S3Bucket": "%s", "S3Key": "%s" } }' $BUCKET $AMI > containers.json
$ A printf '{ "Description": "my-image", "Format": "raw", "UserBucket": { "S3Bucket": "%s", "S3Key": "%s" } }' $BUCKET $AMI > containers.json
aws ec2 import-snapshot disk-container file://containers.json
$ aws ec2 import-snapshot disk-container file://containers.json
aws ec2 describe-import-snapshot-tasks --filters Name=task-state,Values=active
$ aws ec2 describe-import-snapshot-tasks --filters Name=task-state,Values=active
図5.1 イメージの作成
図5.2 仮想化のタイプ
5.3. VMDK イメージの vSphere へのアップロード リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Image Builder で VMDK イメージを作成している。イメージの作成時に、CLI で vmdk 出力タイプ、または GUI で VMware Virtual Machine Disk (.vmdk) を使用します。
手順
図5.3 仮想化のタイプ
SCSI にすると、仮想マシンが起動できません。
図5.4 仮想化のタイプ
5.4. QCOW2 イメージの OpenStack へのアップロード リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Image Builder で OpenStack 固有のイメージを作成している。イメージの作成時に、CLI で openstack 出力タイプ、GUI で OpenStack Image (.qcow2) を使用します。
手順
図5.5 仮想化のタイプ
図5.6 仮想化のタイプ
付録A 改訂履歴 リンクのコピーリンクがクリップボードにコピーされました!
| 改訂履歴 | |||
|---|---|---|---|
| 改訂 1.1.0- | Tue Aug 06 2019 | ||
| 改訂 1.0.0- | Thu Jul 11 2019 | ||
| |||
| 改訂 0.0-0 | Sun Jun 2 2019 | ||
| |||