第7章 テンプレート
テンプレートは仮想マシンのコピーで、これを使用して後続の、同様の仮想マシンの繰り返しの作成を単純化できます。テンプレートは、ソフトウェア、ハードウェアの設定、およびテンプレートのベースになっている仮想マシンにインストールされているソフトウェアを取得します。テンプレートのベースとなる仮想マシンは、ソース仮想マシンと呼ばれます。
仮想マシンに基づいてテンプレートを作成すると、仮想マシンのディスクの読み取り専用コピーが作成されます。この読み取り専用ディスクが、新規テンプレートおよびテンプレートをベースに作成されるすべての仮想マシンのベースイメージになります。そのため、テンプレートに基づいて作成された仮想マシンが環境に存在する間は、そのテンプレートは削除できません。
テンプレートに基づいて作成された仮想マシンは、元の仮想マシンと同じ NIC タイプとドライバーを使用しますが、個別の一意の MAC アドレスが割り当てられます。
仮想マシンは Templates タブから、また Virtual Machines タブから直接作成できます。テンプレート タブで 、 必要なテンプレートを右クリックし、New VM を選択します。新しい仮想マシンの設定とコントロールの選択の詳細は、「仮想マシンの一般設定の説明」 を参照してください。。
7.1. テンプレートとしてのデプロイメントの準備段階での仮想マシンのシーリング
本セクションでは、Linux 仮想マシンと Windows 仮想マシンをシールする手順を説明します。シーリングとは、仮想マシンに基づいてテンプレートを作成する前に、仮想マシンからすべてのシステム固有の詳細を削除するプロセスです。同じテンプレートに基づいて作成された複数の仮想マシンに同じ詳細が引き継がれないように、シーリングが必要です。また、予測可能な vNIC の順序などの他の機能の機能を確保する必要があります。
7.1.1. テンプレートとしてのデプロイメントするための Linux 仮想マシンのシーリング
Linux 仮想マシンをシールする方法として、その仮想マシンを使用してテンプレートを作成するために準備するには 2 つの方法があります。手動で使用するか、sys-unconfig コマンドを使用します。Linux 仮想マシンを手動でシールするには、仮想マシンを起動する際に、さまざまな設定タスクを開始するフラグとして機能する仮想マシンにファイルを作成する必要があります。sys-unconfig コマンドを使用すると、このプロセスを自動化できます。ただし、これらの方法はいずれも、その仮想マシンに固有の仮想マシン上のファイルを手動で削除するか、その仮想マシンに基づいて作成するテンプレートに基づいて作成された仮想マシン間で競合する可能性があります。そのため、どちらも Linux 仮想マシンをシールするための有効な方法であり、同じ結果が得られます。
7.1.1.1. テンプレートとしてデプロイするための Linux 仮想マシンの手動によるシーリング
その仮想マシンに基づいてテンプレートを作成する前に、Linux 仮想マシンを一般化(シール)する必要があります。
手順7.1 Linux 仮想マシンのシーリング
この手順では、テンプレートとして使用するために仮想マシンをシールするために必要な最小手順を説明します。追加のホストおよびサイト固有の手順が利用可能です。
- 仮想マシンにログインします。
- 再設定用にシステムにフラグを付けます。
- For Red Hat Enterprise Linux (RHEL) 6:
# touch /.unconfigured
- RHEL 7 または Red Hat Virtualization Host (RHVH) 4.0 の場合:
# yum install initial-setup
注記inital-setup
パッケージを受け取るには、システムを登録する必要があります。
- SSH ホストキーを削除します。
# rm -rf /etc/ssh/ssh_host_*
- ホスト名を
localhost.localdomain
に変更します。- RHEL 6 の場合は、
/etc/sysconfig/network
のHOSTNAME
値を編集します。HOSTNAME=localhost.localdomain
- RHEL 7 または RHVH 4.0 の場合は、hostnamectl コマンドを使用します。
# hostnamectl set-hostname localhost.localdomain
/etc/udev/rules.d/70-*
を削除します。# rm -rf /etc/udev/rules.d/70-*
/etc/sysconfig/network-scripts/ifcfg-eth*
からHWADDR
行およびUUID
行を削除します。IP アドレス、DNS、ゲートウェイなどのすべての静的情報がこのファイルから削除されていることを確認します。/etc/
から machine-id を削除します。machine-id
# cd /etc # chmod 777 machine-id # vi machine-id
マシン ID を削除します
。# chmod 444 machine-id
- RHEL 7 の場合は、
initial-setup
サービスを有効にします。# systemctl enable initial-setup.service
- システムの登録を解除します。
# subscription-manager unregister # subscription-manager remove --all # subscription-manager clean
- 必要に応じて、
/var/log
からすべてのログを削除し、/root
からビルドログを削除します。 - 仮想マシンをシャットダウンします:
# poweroff
仮想マシンはシールされ、テンプレートに作成できます。設定ファイルの競合を発生させずに、このテンプレートから Linux 仮想マシンをデプロイできます。
7.1.1.2. sys-unconfig を使用したテンプレートとしてデプロイするための Linux 仮想マシンのシーリング
その仮想マシンに基づいてテンプレートを作成する前に、Linux 仮想マシンを一般化(シール)する必要があります。
手順7.2 sys-unconfig を使用した Linux 仮想マシンのシーリング
- 仮想マシンにログインします。
- SSH ホストキーを削除します。
# rm -rf /etc/ssh/ssh_host_*
- ホスト名を
localhost.localdomain
に変更します。- Red Hat Enterprise Linux 6 の場合は、
/etc/sysconfig/network
のHOSTNAME
値を編集します。HOSTNAME=localhost.localdomain
- Red Hat Enterprise Linux 7 の場合は、hostnamectl コマンドを使用します。
# hostnamectl set-hostname localhost.localdomain
/etc/sysconfig/network-scripts/ifcfg-eth*
からHWADDR
行およびUUID
行を削除します。- 必要に応じて、
/var/log
からすべてのログを削除し、/root
からビルドログを削除します。 - 以下のコマンドを実行します。
# sys-unconfig
仮想マシンがシャットダウンします。これがシールされ、テンプレートに行うことができます。設定ファイルの競合を発生させずに、このテンプレートから Linux 仮想マシンをデプロイできます。
7.1.2. テンプレートとしてのデプロイメントするための Windows 仮想マシンのシーリング
Windows 仮想マシン用に作成されたテンプレートは、仮想マシンのデプロイ用に使用する前に一般化 (シール) する必要があります。これにより、マシン固有の設定がテンプレートで再現されなくなります。
sysprep は、使用する前に Windows テンプレートをシールするために使用されます。sysprep は、完全な無人インストールの応答ファイルを生成します。複数の Windows オペレーティングシステムのデフォルト値は、
/usr/share/ovirt-engine/conf/sysprep/
ディレクトリーにあります。これらのファイルは、Sysprep のテンプレートとして機能します。これらのファイルのフィールドは、必要に応じてコピー、貼り付け、および変更できます。この定義は、Edit Virtual Machine ウィンドウ の Initial Run フィールドに入力した値を上書きします。
Sysprep ファイルを編集して、Sysprep ファイルが割り当てられているテンプレートから作成される Windows 仮想マシンのさまざまな側面に影響を与えることができます。これには、Windows のプロビジョニング、必要なドメインメンバーシップの設定、ホスト名の設定、およびセキュリティーポリシーの設定が含まれます。
代替文字列は、
/usr/share/ovirt-engine/conf/sysprep/
ディレクトリーのデフォルトファイルで提供される値を置き換えるために使用できます。たとえば、"<Domain><![CDATA[$JoinDomain$]]></Domain>"
を使用して、参加するドメインを指定できます。
7.1.2.1. Windows 仮想マシンをシールするための前提条件
重要
Sysprep の実行中に仮想マシンを再起動しないでください。
- Windows 仮想マシンのパラメーターが正しく定義されている。
- そうでない場合は、Edit the Virtual Machines タブをクリックして、Operating System および Cluster フィールドに必要な情報を入力します。
- 正しいプロダクトキーが Manager のオーバーライドファイルで定義されている。オーバーライドファイルは
/etc/ovirt-engine/osinfo.conf.d/
の下に作成し、/etc/ovirt-engine/osinfo.conf.d/00-defaults
で終わる必要があります。たとえば、.properties
の後に配置するファイル名を持ち、.properties/etc/ovirt-engine/osinfo.conf.d/10-productkeys.properties
です。最後のファイルが優先され、それより前の他のファイルはすべて上書きされます。そうでない場合は、Windows オペレーティングシステムのデフォルト値を/etc/ovirt-engine/osinfo.conf.d/00-defaults.properties
からオーバーライドファイルにコピーし、productKey.value
フィールドおよびsysprepPath.value
フィールドに値を入力します。例7.1 Windows 7 のデフォルト設定値
# Windows7(11, OsType.Windows, false),false os.windows_7.id.value = 11 os.windows_7.name.value = Windows 7 os.windows_7.derivedFrom.value = windows_xp os.windows_7.sysprepPath.value = ${ENGINE_USR}/conf/sysprep/sysprep.w7 os.windows_7.productKey.value = os.windows_7.devices.audio.value = ich6 os.windows_7.devices.diskInterfaces.value.3.3 = IDE, VirtIO_SCSI, VirtIO os.windows_7.devices.diskInterfaces.value.3.4 = IDE, VirtIO_SCSI, VirtIO os.windows_7.devices.diskInterfaces.value.3.5 = IDE, VirtIO_SCSI, VirtIO os.windows_7.isTimezoneTypeInteger.value = false
7.1.2.2. Windows 7、Windows 2008、または Windows 2012 テンプレートのシーリング
テンプレートを使用して仮想マシンをデプロイする前に、Windows 7、Windows 2008、または Windows 2012 テンプレートをシールします。
手順7.3 Windows 7、Windows 2008、または Windows 2012 テンプレートのシーリング
C:\Windows\System32\sysprep\sysprep.exe
から Sysprep を起動します。- Sysprep に次の情報を入力します。
- System Cleanup Action で、Enter System Out-of-Box-Experience (OOBE) を選択します。
- コンピューターのシステム ID 番号(SID)を変更する必要がある場合は、Generalize チェックボックスを選択します。
- Shutdown Options で Shutdown を選択します。
Windows 7、Windows 2008、または Windows 2012 テンプレートはシールされ、仮想マシンをデプロイする準備が整いました。