Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第4章 仮想マシンのクローン作成

ゲストコピーの作成に使用されるゲスト仮想マシンインスタンスには、以下の 2 つのタイプがあります。
  • クローン は、1 台の仮想マシンのインスタンスです。クローンを使用すると、同じ仮想マシンのネットワークを設定したり、別の宛先に配布したりできます。
  • テンプレート は、クローン作成のソースとして使用するように設計された仮想マシンのインスタンスです。テンプレートから複数のクローンを作成し、各クローンにマイナーな変更を加えることができます。これは、この変更がシステムに与える影響を確認する際に役立ちます。
クローンとテンプレートはどちらも仮想マシンインスタンスです。これらの違いは、使用方法にあります。
作成されたクローンが正しく機能するには、通常、クローンを作成する前に、クローンを作成する仮想マシンに固有の情報と設定を削除する必要があります。削除する情報は、クローンの使用方法によって異なります。
削除する情報および設定は、次のいずれかのレベルになります。
  • プラットフォームレベルの情報および設定には、仮想化ソリューションが仮想マシンに割り当てたものが含まれます。例には、ネットワークインターフェイスカード (NIC) の数と、その MAC アドレスが含まれます。
  • ゲストオペレーティングシステムレベル情報および設定には、仮想マシン内で設定されたものが含まれます。例には SSH 鍵が含まれます。
  • アプリケーションレベル の情報および設定には、仮想マシンにインストールされているアプリケーションで設定したものが含まれます。例には、アクティベーションコードおよび登録情報が含まれます。
    注記
    情報およびアプローチは各アプリケーションに固有のものであるため、本章には、アプリケーションレベルの削除に関する情報は記載されていません。
その結果、仮想マシン内の情報および設定の一部を削除する必要がありますが、その他の情報および設定は、仮想化環境 (Virtual Machine Manager や VMware など) を使用して仮想マシンから削除する必要があります。
注記
ストレージボリュームのクローン作成の詳細は、「virsh を使用したストレージボリュームの作成」 を参照してください。

4.1. クローンを作成する仮想マシンの準備

仮想マシンのクローンを作成する前に、ディスクイメージで virt-sysprep ユーティリティーを実行するか、次の手順に従って仮想マシンを準備する必要があります。

手順4.1 クローンを作成する仮想マシンの準備

  1. 仮想マシンのセットアップ

    1. クローンまたはテンプレートに使用する仮想マシンを構築します。
      • クローンに必要なソフトウェアをインストールします。
      • オペレーティングシステムに一意でない設定を設定します。
      • 固有でないアプリケーション設定を設定します。
  2. ネットワーク設定を削除します。

    1. 以下のコマンドを使用して、永続的な udev ルールを削除します。
      # rm -f /etc/udev/rules.d/70-persistent-net.rules
      注記
      udev ルールを削除しない場合は、最初の NIC の名前が eth0 ではなく eth1 になります。
    2. /etc/sysconfig/network-scripts/ifcfg-eth[x] で以下の編集を行い、ifcfg スクリプトから一意のネットワークの詳細を削除します。
      1. HWADDR 行および Static 行を削除します。
        注記
        HWADDR が新しいゲストの MAC アドレスと一致しない場合、ifcfg は無視されます。したがって、ファイルから HWADDR を削除することが重要です。
        DEVICE=eth[x]
        BOOTPROTO=none
        ONBOOT=yes
        #NETWORK=10.0.1.0       <- REMOVE
        #NETMASK=255.255.255.0  <- REMOVE
        #IPADDR=10.0.1.20       <- REMOVE
        #HWADDR=xx:xx:xx:xx:xx  <- REMOVE
        #USERCTL=no             <- REMOVE
        # Remove any other *unique* or non-desired settings, such as UUID.
        
      2. HWADDR または一意の情報が含まれていない DHCP 設定が残っていることを確認します。
        DEVICE=eth[x]
        BOOTPROTO=dhcp
        ONBOOT=yes
        
      3. ファイルに以下の行が含まれていることを確認します。
        DEVICE=eth[x]
        ONBOOT=yes
        
    3. 以下のファイルが存在する場合は、そのファイルに同じ内容が含まれていることを確認してください。
      • /etc/sysconfig/networking/devices/ifcfg-eth[x]
      • /etc/sysconfig/networking/profiles/default/ifcfg-eth[x]
      注記
      NetworkManager または特殊な設定を仮想マシンで使用した場合は、追加の固有情報が ifcfg スクリプトから削除されていることを確認してください。
  3. 登録の詳細を削除します。

    1. 以下のいずれかを使用して、登録の詳細を削除します。
      • Red Hat Network (RHN) の登録済みゲスト仮想マシンの場合は、次のコマンドを使用します。
        # rm /etc/sysconfig/rhn/systemid
      • Red Hat Subscription Manager (RHSM) の登録済みゲスト仮想マシンの場合は、次のコマンドを使用します。
        • 元の仮想マシンを使用しない場合は、次のコマンドを使用します。
          # subscription-manager unsubscribe --all
          # subscription-manager unregister
          # subscription-manager clean
        • 元の仮想マシンを使用する場合は、次のコマンドのみを実行します。
          # subscription-manager clean
          元の RHSM プロファイルはポータルに残ります。クローン作成後に仮想マシンで RHSM 登録を再アクティベートするには、次の手順を行います。
          1. カスタマー ID コードを取得します。
            # subscription-manager identity
            subscription-manager identity: 71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
            
          2. 取得した ID コードを使用して仮想マシンを登録します。
            # subscription-manager register --consumerid=71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
  4. その他の固有の詳細の削除

    1. 次のコマンドを使用して、sshd の公開鍵と秘密鍵のペアを削除します。
      # rm -rf /etc/ssh/ssh_host_*
      注記
      ssh キーを削除すると、このホストを信頼しない ssh クライアントの問題が回避されます。
    2. 複数のマシンで実行している場合に、競合する可能性があるその他のアプリケーション固有の識別子や設定を削除します。
  5. 次回のシステムの起動時に設定ウィザードを実行するように仮想マシンを設定します。

    1. 以下のいずれかの方法で、仮想マシンを次回起動したときに、関連する設定ウィザードが実行されるように設定します。
      • Red Hat Enterprise Linux 6 以前の場合は、以下のコマンドを使用して、root ファイルシステムに .unconfigured という名前の空のファイルを作成します。
        # touch /.unconfigured
      • Red Hat Enterprise Linux 7 の場合は、次のコマンドを実行して、最初の起動ウィザードおよび初期設定ウィザードを有効にします。
        # sed -ie 's/RUN_FIRSTBOOT=NO/RUN_FIRSTBOOT=YES/' /etc/sysconfig/firstboot
        # systemctl enable firstboot-graphical
        # systemctl enable initial-setup-graphical
      注記
      次回の起動時に実行するウィザードは、仮想マシンから削除された設定によって異なります。また、クローンの初回起動時には、ホスト名を変更することが推奨されます。