第7章 テンプレート
テンプレートとは、仮想マシンのコピーです。テンプレートを使用すると、後で同様の仮想マシンを繰り返し作成する場合に作業を簡素化することができます。テンプレートには、ベースとなっている仮想マシン上のソフトウェア設定、ハードウェア設定、およびインストール済みソフトウェアがキャプチャーされます。テンプレートのベースとなっている仮想マシンはソース仮想マシンとして知られています。
仮想マシンをベースにテンプレートを作成すると、仮想マシンディスクの読み取り専用コピーが作成されます。この読み取り専用ディスクは、新規テンプレートおよびそのテンプレートをベースに作成されるすべての仮想マシンのベースディスクイメージとなります。このため、テンプレートをベースに作成した仮想マシンが環境に存在する限りは、そのテンプレートを削除することはできません。
テンプレートをベースに作成された仮想マシンの使用する NIC タイプとドライバーは元の仮想マシンと同じですが、MAC アドレスは一意で異なるアドレスが割り当てられます。
テンプレート タブから直接仮想マシンを作成することも、仮想マシン タブから作成することもできます。テンプレート タブで、必要なテンプレートを右クリックして、新規仮想マシン を選択します。新規仮想マシンの設定や制御の選択に関する詳しい情報は「仮想マシンの全般設定」を参照してください。
7.1. テンプレートとしてのデプロイに備えた仮想マシンのシーリング
本セクションでは、Linux および Windows の仮想マシンをシーリングする手順について説明します。シーリングとは、仮想マシンをベースにテンプレートを作成する前に、その仮想マシンのシステム固有の情報をすべて削除するプロセスです。シーリングは、同じテンプレートをベースにして作成した複数の仮想マシンで同じ情報が使用されるのを防ぐのに必要です。また、予測可能な 仮想 NIC の順序などのその他の機能が確実に動作するためにも不可欠です。
7.1.1. テンプレートとしてデプロイする Linux 仮想マシンのシーリング
Linux 仮想マシンを使用したテンプレート作成に備えて仮想マシンをシーリングするには、手動または
sys-unconfig
コマンドを使用する 2 つの主要な方法があります。Linux 仮想マシンを手動でシーリングするには、次回仮想マシンを起動する際にさまざまな設定タスクを開始するフラグの役割を果たすファイルを、仮想マシンに作成する必要があります。sys-unconfig
コマンドを使用する場合は、このプロセスを自動化できます。ただし、いずれの手法でも、シーリングする仮想マシンに固有のファイルや、その仮想マシンをベースにして作成したテンプレートを使用して作成された仮想マシンの間で競合発生の原因となる可能性があるファイルを手動で削除する必要があります。したがって、これらの手法は、Linux 仮想マシンをシーリングする手法としていずれも有効で、同じ結果が得られます。
7.1.1.1. テンプレートとしてデプロイする Linux 仮想マシンの手動シーリング
Linux の仮想マシンをベースにテンプレートを作成する場合には、その仮想マシンをあらかじめ一般化 (シーリング) しておく必要があります。
手順7.1 Linux 仮想マシンのシーリング
- 仮想マシンにログインします。
- システムを再設定するためのフラグを付けます。
# touch /.unconfigured
- 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/udev/rules.d/70-*
を削除します。# rm -rf /etc/udev/rules.d/70-*
/etc/sysconfig/network-scripts/ifcfg-eth*
からHWADDR
とUUID
の行を削除します。- 任意で
/var/log
から全ログを削除し、/root
からのログを作成します。 - 仮想マシンをシャットダウンします。
# poweroff
仮想マシンがシーリングされ、テンプレートを作成できるようになりました。設定ファイルの競合が発生することなく、このテンプレートから Linux 仮想マシンをデプロイすることができます。
ここで説明する手順は、Red Hat Enterprise Linux 仮想マシンをテンプレートとして使用するようにシーリングするために必要なステップです。追加のホストや、サイト固有のカスタムの手順もあります。
7.1.1.2. テンプレートとしてデプロイする Linux 仮想マシンを sys-unconfig でシーリングする手順
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 仮想マシン用に作成されたテンプレートは、仮想マシンのデプロイに使用する前に一般化 (シール) する必要があります。この処理により、仮想マシン固有の設定はテンプレートで再現されなくなります。
Windows テンプレートを使用前にシールするには、Sysprep ツールを使用します。
重要
このプロセスの実行中には、仮想マシンを再起動しないでください。
Sysprep プロセスを開始する前には、以下のように設定されているかどうかを確認します。
- Windows Sysprep パラメーターが正しく定義されていること。正しく定義されていない場合には、仮想マシンの オペレーティングシステム および ドメイン のフィールドに必要な情報を入力します。をクリックして、
- 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
などです。最後のファイルがそれ以外のすべてのファイルに優先します。正しく定義されていない場合には、/etc/ovirt-engine/osinfo.conf.d/00-defaults.properties
から Windows オペレーティングシステム用のデフォルト値をオーバーライドファイルにコピーし、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.1. 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 ツールに入力します。
- システムクリーンアップアクション 下で、システムの OOBE (Out-of-Box-Experience) に入る を選択します。
- コンピューターのシステム識別番号 (SID) を変更する必要がある場合には、一般化する チェックボックスにチェックを入れます。
- シャットダウンオプション で、シャットダウン を選択します。
Windows 7、Windows 2008、Windows 2008 のテンプレートがシーリングされ、仮想マシンをデプロイする準備が整いました。