Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

第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 仮想マシンのシーリング

  1. 仮想マシンにログインします。
  2. システムを再設定するためのフラグを付けます。
    # touch /.unconfigured
  3. SSH ホストキーを削除します。
    # rm -rf /etc/ssh/ssh_host_*
  4. ホスト名を localhost.localdomain に変更します。
    • Red Hat Enterprise Linux 6 の場合は、/etc/sysconfig/networkHOSTNAME の値を編集します。
      HOSTNAME=localhost.localdomain
    • Red Hat Enterprise Linux 7 の場合は、hostnamectl コマンドを使用します。
      # hostnamectl set-hostname localhost.localdomain
  5. /etc/udev/rules.d/70-* を削除します。
    # rm -rf /etc/udev/rules.d/70-*
  6. /etc/sysconfig/network-scripts/ifcfg-eth* から HWADDRUUID の行を削除します。
  7. 任意で /var/log から全ログを削除し、/root からのログを作成します。
  8. 仮想マシンをシャットダウンします。
    # poweroff
仮想マシンがシーリングされ、テンプレートを作成できるようになりました。設定ファイルの競合が発生することなく、このテンプレートから Linux 仮想マシンをデプロイすることができます。
ここで説明する手順は、Red Hat Enterprise Linux 仮想マシンをテンプレートとして使用するようにシーリングするために必要なステップです。追加のホストや、サイト固有のカスタムの手順もあります。

7.1.1.2. テンプレートとしてデプロイする Linux 仮想マシンを sys-unconfig でシーリングする手順

Linux の仮想マシンをベースにテンプレートを作成する場合には、その仮想マシンをあらかじめ一般化 (シーリング) しておく必要があります。

手順7.2 sys-unconfig を使用した Linux 仮想マシンのシーリング

  1. 仮想マシンにログインします。
  2. SSH ホストキーを削除します。
    # rm -rf /etc/ssh/ssh_host_*
  3. ホスト名を localhost.localdomain に変更します。
    • Red Hat Enterprise Linux 6 の場合は、/etc/sysconfig/networkHOSTNAME の値を編集します。
      HOSTNAME=localhost.localdomain
    • Red Hat Enterprise Linux 7 の場合は、hostnamectl コマンドを使用します。
      # hostnamectl set-hostname localhost.localdomain
  4. /etc/sysconfig/network-scripts/ifcfg-eth* から HWADDRUUID の行を削除します。
  5. 任意で /var/log から全ログを削除し、/root からのログを作成します。
  6. 次のコマンドを実行します。
    # 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 テンプレートのシーリング手順

  1. C:\Windows\System32\sysprep\sysprep.exe から Sysprep を起動します。
  2. 以下の情報を Sysprep ツールに入力します。
    • システムクリーンアップアクション 下で、システムの OOBE (Out-of-Box-Experience) に入る を選択します。
    • コンピューターのシステム識別番号 (SID) を変更する必要がある場合には、一般化する チェックボックスにチェックを入れます。
    • シャットダウンオプション で、シャットダウン を選択します。
  3. OK をクリックするとシーリングプロセスが完了します。仮想マシンは、処理が完了すると自動的にシャットダウンされます。
Windows 7、Windows 2008、Windows 2008 のテンプレートがシーリングされ、仮想マシンをデプロイする準備が整いました。