Citrix Hypervisor

ネットワークブートによるインストール

Citrix Hypervisorでは、UEFIモードを使用したホストの起動がサポートされています。UEFIモードでは、ブートローダーとオペレーティングシステム向けの標準化された機能が豊富に用意されています。これにより、UEFIがデフォルトの起動モードであるホストに、Citrix Hypervisorをより簡単にインストールできます。

注:

従来のDOSパーティションレイアウトは、UEFIブートではサポートされていません。

以下のセクションでは、TFTPサーバーとNFS、FTP、またはHTTPサーバーをセットアップして、Citrix HypervisorサーバーをインストールするためのPXEおよびUEFIブートを有効にする方法について説明します。また、無人インストールを実行するためのXML回答ファイルの作成方法についても説明します。

Citrix HypervisorのインストールのためにPXEおよびUEFI環境を構成する

Citrix Hypervisorインストールメディアをセットアップする前に、TFTPサーバーおよびDHCPサーバーをセットアップする必要があります。以下のセクションでは、TFTPサーバーをPXEおよびUEFIブート用に構成する方法について説明します。一般的なセットアップ手順については、ベンダーのドキュメントを参照してください。

注:

Citrix Hypervisor 6.0以降、MBRによるディスクパーティションからGUIDパーティションテーブル(GPT)に変更されています。一部のPXEシステムでは、ホストにイメージを展開する前に、そのホストのハードディスク上にあるパーティションテーブルの読み込みが試行されます。

PXEシステムにGPTパーティションスキームとの互換性がなく、さらにそのホストのハードディスクでGPTを使用するCitrix Hypervisorのバージョンが以前使用されていた場合、PXEシステムは失敗することがあります。この問題を回避するには、ディスク上のパーティションテーブルを削除してください。

TFTPサーバーとDHCPサーバーに加えて、Citrix HypervisorのインストールファイルをホストするためのNFS、FTP、またはHTTPサーバーが必要です。これらのサーバーは、同一マシン上に設定したり、ネットワーク上の複数のマシンに分散させたりできます。

注:

PXEブートは、タグ付きVLANネットワークではサポートされていません。PXEブートに使用するVLANネットワークがタグ付きでないことを確認します。

また、PXEブートでCitrix Hypervisorサーバーをインストールする各ホストで、PXEブート対応のイーサネットカードが必要です。

次の手順は、使用するLinuxサーバーがRPMをサポートしていることを前提としています。

PXEブート用にTFTPサーバーを構成する

  1. TFTPルートディレクトリ(/tftpbootなど)に、次のディレクトリを作成します:xenserver

  2. mboot.c32ファイルとpxelinux.0ファイルをインストールメディアからTFTPルートディレクトリにコピーします。

    注:

    同じソース(同じCitrix Hypervisor ISOなど)のmboot.c32pxelinux.0を使用することを強くお勧めします。

  3. Citrix Hypervisorインストールメディアのルートディレクトリにあるinstall.imgと、/bootディレクトリにあるvmlinuzおよびxen.gzを、TFTPサーバーに作成したxenserverディレクトリにコピーします。

  4. TFTPルートディレクトリ(/tftpbootなど)に、pxelinux.cfgというディレクトリを作成します。

  5. pxelinux.cfgディレクトリに、設定ファイルdefaultを作成します。

    このファイルの内容は、PXEブート環境の構成方法によって異なります。ここでは、設定ファイルの例を2つ挙げます。1つ目の例では、TFTPサーバーから起動するマシンでインストールを開始します。このインストールでは、手動の応答が必要です。2つ目の例は、管理者の介在が不要な無人インストールです。

    注:

    以下の2つの例では、物理コンソールtty0上でインストールが実行されます。ほかのコンソールを使用する場合は、そのコンソールを右端で指定してください。

        default xenserver
        label xenserver
            kernel mboot.c32
            append xenserver/xen.gz dom0_max_vcpus=2 \
                dom0_mem=1024M,max:1024M com1=115200,8n1 \
            console=com1,vga ---  xenserver/vmlinuz \
            xencons=hvc console=hvc0 console=tty0 \
            ---  xenserver/install.img
    <!--NeedCopy-->
    

    指定されたURLの回答ファイルを使用して無人インストールを実行するサンプル構成:

    注:

    回答ファイルを取得するネットワークアダプタを指定するには、answerfile_device=ethXまたはanswerfile_device=MACパラメーターを追加して、イーサネットデバイス番号またはMACアドレスを指定します。

        default xenserver-auto
        label xenserver-auto
            kernel mboot.c32
            append xenserver/xen.gz dom0_max_vcpus=2 \
                dom0_mem=1024M,max:1024M com1=115200,8n1 \
                console=com1,vga ---  xenserver/vmlinuz \
                xencons=hvc console=hvc0 console=tty0 \
                answerfile=http://pxehost.example.com/answerfile \
                install ---  xenserver/install.img
    <!--NeedCopy-->
    

    PXE構成ファイルの内容について詳しくは、SYSLINUXのWebサイトを参照してください。

UEFIブート用にTFTPサーバーを構成する

UEFIブート用にTFTPサーバーを構成するには:

  1. TFPTルートディレクトリ(/tftpbootなど)に、EFI/xenserverというディレクトリを作成します。

  2. DHCPサーバーを構成し、起動ファイルとして/EFI/xenserver/grubx64.efiを指定します。

  3. grub.cfgファイルを作成します。たとえば、次のようになります:

    • インストール時のプロンプトに手動の応答が必要な場合:

       menuentry "Citrix Hypervisor Install (serial)" {
           multiboot2 /EFI/xenserver/xen.gz dom0_mem=1024M,max:1024M watchdog \
           dom0_max_vcpus=4 com1=115200,8n1 console=com1,vga
           module2 /EFI/xenserver/vmlinuz console=hvc0
           module2 /EFI/xenserver/install.img
       }
       <!--NeedCopy-->
      
    • 回答ファイルを使用した無人インストールの場合:

       menuentry "Citrix Hypervisor Install (serial)" {
           multiboot2 /EFI/xenserver/xen.gz dom0_mem=1024M,max:1024M watchdog \
           dom0_max_vcpus=4 com1=115200,8n1 console=com1,vga
           module2 /EFI/xenserver/vmlinuz console=hvc0 console=tty0 answerfile_device=eth0 answerfile=ftp://ip_address/path_to_answerfile install
           module2 /EFI/xenserver/install.img
       }
       <!--NeedCopy-->
      

    回答ファイルの使用について詳しくは、「無人PXEおよびUEFIインストールのための回答ファイルの作成」を参照してください。

2. grub.cfgファイルをTFTPサーバーのEFI/xenserverディレクトリにコピーします。

3. Citrix Hypervisorインストールメディアのルートディレクトリにあるgrubx64.efiおよびinstall.imgと、/bootディレクトリにあるvmlinuzおよびxen.gzを、TFTPサーバーに作成したEFI/xenserverディレクトリにコピーします。

特定のオペレーティングシステムについては、使用するオペレーティングシステムのマニュアルを参照してください。ここでは、Red Hat、Fedora、およびほかのRPMベースのディストリビューションでの設定手順について説明します。

HTTP、FTP、またはNFSサーバー上にCitrix Hypervisorインストールメディアをセットアップするには:

  1. HTTP、FTP、またはNFSサーバー上に、Citrix Hypervisorインストールメディアをホストするためのディレクトリを作成します。

  2. Citrix Hypervisorインストールメディアのすべての内容を、上記の手順で作成したディレクトリにコピーします。このディレクトリがインストールリポジトリになります。

    注:

    Citrix Hypervisorインストールメディアをコピーする場合は、新しく作成したディレクトリに.treeinfoファイルをコピーしたことを確認する必要があります。

インストール先のシステムを準備するには:

  1. システムを起動し、ブートメニューを表示します(多くのBIOSプログラムでは起動処理中にF12キーを押します)。

  2. 起動順序を設定するメニューで、イーサネットカードから起動するように設定します。

  3. これまでの手順で設定したインストールソースからシステムがPXEブートし、インストールスクリプトが実行されます。回答ファイルを設定した場合は、そのまま無人インストールが実行されます。

Citrix Hypervisorのインストール中にサプリメンタルパックをインストールする

サプリメンタルパックは、コントロールドメイン(Dom0)内にソフトウェアをインストールすることによってCitrix Hypervisorの機能を修正および拡張するために使用されます。たとえば、OEMパートナーがCitrix HypervisorをSNMPエージェントのインストールが必要な管理ツールセットと共に出荷しようとする場合があります。ユーザーはサプリメンタルパックを最初のCitrix Hypervisorインストール時に、またはインストール後いつでも追加できます。

Citrix Hypervisorのインストール中にサプリメンタルパックをインストールする場合、各サプリメンタルパックも個別のディレクトリに解凍する必要があります。

また、サプリメンタルパックをCitrix Hypervisorのインストールリポジトリに追加して自動工場インストールを可能にするOEMパートナー用のファシリティも存在します。

無人PXEおよびUEFIインストールのために回答ファイルを作成する

無人インストールを実行するには、XML形式の回答ファイルを作成する必要があります。次に回答ファイルの例を示します。

<?xml version="1.0"?>
    <installation srtype="ext">
        <primary-disk>sda</primary-disk>
        <guest-disk>sdb</guest-disk>
        <guest-disk>sdc</guest-disk>
        <keymap>us</keymap>
        <root-password>mypassword</root-password>
        <source type="url">http://pxehost.example.com/citrix-hypervisor/</source>
        <post-install-script type="url">
          http://pxehost.example.com/myscripts/post-install-script
        </post-install-script>
        <admin-interface name="eth0" proto="dhcp" />
        <timezone>Europe/London</timezone>
    </installation>
<!--NeedCopy-->

回答ファイルでは、installationという名前のルートノード内に、すべてのノードを記述します。

注:

シンプロビジョニングを有効にするには、srtype属性をextとして指定します。この属性を指定しない場合、デフォルトのローカルストレージの種類はLVMです。シンプロビジョニングでは、ローカルストレージの種類がEXT4になり、Citrix Virtual Desktopsのローカルキャッシュが正しく機能するようになります。詳しくは、「ストレージ」を参照してください。

次の表は、各エレメントの説明です。特に明記しない限りノード内の値はすべてテキストであり、いくつかの必須エレメントがあります。

<primary-disk>

必須か? はい

説明: コントロールドメインのインストール先ストレージデバイスの名前。手動のインストールでは、[Select Primary Disk] 画面の設定に相当します。

属性: guest-storage属性には、値としてyesまたはnoを指定できます。 たとえば、次のようになります: <primary-disk guest-storage="no">sda</primary-disk>

デフォルト値はyesです。ストレージリポジトリを作成しない無人インストールを行う場合は、ここでnoを指定し、guest-diskキーは指定しないでおきます。

<guest-disk>

必須か? いいえ

説明: ゲストを格納するストレージデバイスの名前。追加する各ディスクについて、このエレメントを記述します。

属性: なし

<keymap>

必須か? はい

説明: インストール中に使用するキーマップの名前。<keymap>us</keymap>値を指定しない場合、デフォルトでusが適用されます。

属性: なし

回答ファイルを適切に変更することで、自動アップグレードを実行することもできます。この場合、<installation>エレメントのmode属性でupgradeを指定し、existing-installation エレメントで既存のインストール先ディスクを指定します。primary-disk エレメントと guest-disk エレメントは指定しません。たとえば、次のようになります:

<?xml version="1.0"?>
<installation mode="upgrade">
    <existing-installation>sda</existing-installation>
    <source type="url">http://pxehost.example.com/citrix-hypervisor/</source>
    <post-install-script type="url">
        http://pxehost.example.com/myscripts/post-install-script
    </post-install-script>
</installation>
<!--NeedCopy-->

<root-password>

必須: いいえ

説明: Citrix Hypervisorサーバーに必要なrootパスワード。指定しない場合はサーバーの初回起動時にメッセージが表示されます。

属性: typehashまたはplaintextに指定できます

たとえば、次のようになります:

<root-password type="hash">hashedpassword</root-password>
<!--NeedCopy-->

ハッシュ値は、glibccrypt(3)でサポートされている任意のハッシュタイプを使用できます。デフォルトのハッシュタイプはSHA-512です。

次のPythonコードを使用して、ハッシュ化されたパスワード文字列を生成し、応答ファイルに含めることができます:

python -c 'import crypt; print(crypt.crypt("mypasswordhere", crypt.mksalt(crypt.METHOD_SHA512)))'
<!--NeedCopy-->

<source>

必須: はい

説明: アップロードされたCitrix Hypervisorインストールメディアまたはサプリメンタルパックの場所。このエレメントは複数記述できます。

属性: 属性typeには次の値のいずれかを指定できます: urlnfs、またはlocal

値が localの場合、このエレメントには何も指定しないでください。例:

<source type="url">http://server/packages</source>
<source type="local" />
<source type="nfs">server:/packages</source>
<!--NeedCopy-->

<script>

必須: いいえ

説明: post-install-scriptが配置されている場所。

属性:

属性stageには、次の値のいずれかを指定できます:filesystem-populatedinstallation-start、またはinstallation-complete

  • filesystem-populatedを指定すると、ルートファイルシステムがアンマウントされる直前にスクリプトが実行されます(インストールまたはアップグレード後、initrdsのビルド後など)。スクリプトの引数は、ルートファイルシステムのマウントポイントになります。

  • installation-completeを指定すると、インストーラーがすべての処理を完了した後(つまりルートファイルシステムがアンマウントされた後)にスクリプトが実行されます。スクリプトの引数は、インストールが正しく完了した場合に0、何らかの理由で失敗した場合にそれ以外の値になります。

属性typeには、次の値のいずれかを指定できます:urlnfs、またはlocal

値がurlまたはnfsの場合は、URLまたはNFSパスをPCDATAに入力します。値がlocalの場合、PCDATAは空のままにします。例:

<script stage="filesystem-populated" type="url">
    http://prehost.example.com/post-install-script
</script>
<script stage="installation-start" type="local">
    file:///scripts/run.sh
</script>
<script stage="installation-complete" type="nfs">
    server:/scripts/installation-pass-fail-script
</script>
<!--NeedCopy-->

注:

ローカルのスクリプトファイルを使用する場合は、絶対パスを指定してください。絶対パスは、通常file://の後にさらにスラッシュ(/)を付加し、その後スクリプトのパスを続けます。

<admin-interface>

必須: いいえ

説明: ホスト管理インターフェイスとして使用する単一のネットワークインターフェイス。

属性:

次のいずれかの属性を指定します:

  • name - ネットワークインターフェイスの名前(例:eth0) 。
  • hwaddr - ネットワークインターフェイスのMACアドレス。(例: 00:00:11:aa:bb:cc)。

属性protoには、次の値のいずれかを指定できます:dhcpまたはstatic

proto="static"を指定する場合は、次のすべての子エレメントも指定する必要があります:

子エレメント

  • <ipaddr>:IPアドレス
  • <subnet>:サブネットマスク
  • <gateway>:ゲートウェイ

<timezone>

必須: はい

説明: TZ変数の書式で指定するタイムゾーン。たとえば、Europe/London、Asia/Tokyoなど。

<name-server>

必須: いいえ

説明: ネームサーバーのIPアドレス使用する各ネームサーバーについて、このエレメントを記述します。

<hostname>

必須: いいえ

説明: ホスト名を手動で設定する場合は、このエレメントを指定します。

<ntp-server>

必須: いいえ

説明: NTPサーバー名(複数指定可)。

回答ファイルによる自動アップグレード

回答ファイルを適切に変更することで、自動アップグレードを実行することもできます。

  1. installationエレメントのmode属性をupgradeに設定します。
  2. existing-installationエレメントを使用して、既存のインストールが存在するディスクを指定します。
  3. primary-diskエレメントとguest-diskエレメントは指定しません。

たとえば、次のようになります:

<?xml version="1.0"?>
<installation mode="upgrade">
    <existing-installation>sda</existing-installation>
    <source type="url">http://pxehost.example.com/xenserver/</source>
    <post-install-script type="url">
        http://pxehost.example.com/myscripts/post-install-script
    </post-install-script>
</installation>
<!--NeedCopy-->
ネットワークブートによるインストール