NetScaler VPX

OpenStackを使用してCitrix ADC VPXインスタンスをプロビジョニングする

OpenStack環境でCitrix ADC VPXインスタンスをプロビジョニングするには、 Novaブートコマンド (OpenStack CLI)またはHorizon(OpenStack ダッシュボード)を使用します。

VPXインスタンスをプロビジョニングします。 オプションで、コンフィグドライブのデータを使用します。 「構成ドライブ」とは、インスタンスの起動時にCD-ROMデバイスとしてアタッチされる特殊な構成ドライブを指します。 この構成ドライブは、管理IPアドレス、ネットワークマスク、デフォルトゲートウェイなど、ネットワーク構成を渡すためや、顧客スクリプトを注入するために使用できます。

Citrix ADCアプライアンスでは、デフォルトの認証メカニズムはパスワードベースです。 現在、OpenStack環境上のCitrix ADC VPXインスタンスでは、SSHキーペア認証メカニズムがサポートされています。

キーペア (公開鍵と秘密キー) は、公開鍵暗号化メカニズムを使用する前に生成されます。 Horizon、Windows 用 Puttygen.exe、Linux環境用ssh-keygen など、 さまざまなメカニズムを使用して、キーペアを生成できます。 キーペアの生成について詳しくは、それぞれの方式のオンラインドキュメントを参照してください。

キーペアが利用可能になったら、権限のあるユーザーがアクセスできる安全な場所に秘密鍵をコピーします。 OpenStack では、Horizon または Nova ブートコマンドを使用して、VPX インスタンスにパブリックキーをデプロイできます。 OpenStackを使用してVPXインスタンスをプロビジョニングすると、まず特定のBIOS文字列を読み取って、インスタンスがOpenStack環境で起動していることを検出します。 この文字列は「OpenStack Foundation」であり、Red Hat Linuxディストリビューションの場合は、/etc/nova/releaseに保存されます。 これは、KVM ハイパーバイザープラットフォームに基づくすべての OpenStack 実装で利用できる標準的なメカニズムです。 ドライブには特定の OpenStack ラベルが必要です。

ネットワ―ク構成、カスタムスクリプト、およびSSHキーペアが提供されている場合は、構成ドライブが検出されると、インスタンスがそれらを読み取ろうとします。

ユーザーデータファイル

Citrix ADC VPXインスタンスは、ユーザーデータファイルとも呼ばれるカスタマイズされたOVFファイルを使用して、ネットワーク構成、カスタムスクリプトを注入します。 このファイルは、構成ドライブの一部として提供されます。 次に、カスタマイズされたOVFファイルの例を示します。

```
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <Environment xmlns:oe="http://schemas.dmtf.org/ovf/environment/1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  oe:id=""
  xmlns="http://schemas.dmtf.org/ovf/environment/1"
  xmlns:cs="http://schemas.citrix.com/openstack">
  <PlatformSection>
  <Kind></Kind>
  <Version>2016.1</Version>
  <Vendor>VPX</Vendor>
  <Locale>en</Locale>
  </PlatformSection>
  <PropertySection>
  <Property oe:key="com.citrix.netscaler.ovf.version" oe:value="1.0"/>
  <Property oe:key="com.citrix.netscaler.platform" oe:value="NSVPX"/>
  <Property oe:key="com.citrix.netscaler.orch_env" oe:value="openstack-orch-env"/>
  <Property oe:key="com.citrix.netscaler.mgmt.ip" oe:value="10.1.2.22"/>
  <Property oe:key="com.citrix.netscaler.mgmt.netmask" oe:value="255.255.255.0"/>
  <Property oe:key="com.citrix.netscaler.mgmt.gateway" oe:value="10.1.2.1"/>
  </PropertySection>
   <cs:ScriptSection>
     <cs:Version>1.0</cs:Version>
       <ScriptSettingSection xmlns="http://schemas.citrix.com/openstack" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
           <Scripts>
             <Script>
                   <Type>shell</Type>
                   <Parameter>X Y</Parameter>
                  <Parameter>Z</Parameter>
                  <BootScript>before</BootScript>
                    <Text>
                          #!/bin/bash
                          echo "Hi, how are you" $1 $2 >> /var/sample.txt
                    </Text>
             </Script>
             <Script>
                   <Type>python</Type>
                   <BootScript>after</BootScript>
                    <Text>
                         #!/bin/python
   print("Hello");
                    </Text>
             </Script>
     <Script>
                   <Type>perl</Type>
                   <BootScript>before</BootScript>
                    <Text>
                         !/usr/bin/perl
   my $name = "VPX";
   print "Hello, World $name !\n" ;
                    </Text>
             </Script>
             <Script>
                  <Type>nscli</Type>
                  <BootScript>after</BootScript>
                  <Text>
                   add vlan 33
   bind vlan 33 -ifnum 1/2
                  </Text>
             </Script>
           </Scripts>
       </ScriptSettingSection>
   </cs:ScriptSection>
  </Environment>
<!--NeedCopy--> ``` 前のOVFファイルでは、「PropertySection」はNetScalerネットワーク構成に使用され、\<cs:ScriptSection> はすべてのスクリプトを囲むために使用されます。 \ \</Scripts> タグは、すべてのスクリプトをまとめるのに使われます。 各スクリプトは\<Script> \</Script>タグの間に定義されています。 各スクリプトタグには、従属するフィールドやタグがあります。

a) <Type>:スクリプトタイプの値を指定します。 指定可能な値:Shell/Perl/Python/NSLCI(NetScaler CLIスクリプトの場合)

b) <Parameter>:スクリプトにパラメーターを指定します。 各スクリプトでは、複数の<Parameter>タグを使用できます。

c) <BootScript>:スクリプト実行ポイントを指定します。 このタグに指定できる値:前/後。 「before」は、PE がアップする前にスクリプトを実行することを指定します。 「after」は、PE が起動した後にスクリプトが実行されることを指定します。

d) <Text>:スクリプトの内容を貼り付けます。

現在、VPXインスタンスはスクリプトのサニタイズを処理しません。 管理者は、スクリプトの有効性を確認する必要があります。

すべてのセクションを表示する必要はありません。 空の「PropertySection」を使用して最初のブート時に実行するスクリプトのみを定義するか、

OVF ファイル(ユーザーデータファイル)の必要なセクションが入力されたら、そのファイルを使用して VPX インスタンスをプロビジョニングします。

ネットワーク構成

ネットワーク構成の一部として、VPX インスタンスは以下を読み込みます。

  • 管理IPアドレス
  • ネットワークマスク
  • デフォルトゲートウェイ

パラメーターは、正常に読み取られると、インスタンスをリモートで管理できるようにNetScaler構成に移入されます。 パラメーターが読み取られない場合、または構成ドライブが存在しない場合は、インスタンスが以下のデフォルトの処理を実行します。

  • DHCPからIPアドレス情報を取得する。
  • DHCP で障害が発生するか、タイムアウトした場合、インスタンスはデフォルトのネットワーク設定(192.168.100.1/16)で起動します。

カスタマースクリプト

VPX インスタンスでは、初期プロビジョニング中にカスタムスクリプトを実行できます。 アプライアンスは、シェル、Perl、Python、およびCitrix ADC CLIコマンドタイプのスクリプトをサポートしています。

SSH キーペア認証

VPXインスタンスは、インスタンスメタデータの一部として構成ドライブ内で利用可能なパブリックキーをその「authorized_keys」ファイルにコピーします。 これにより、ユーザーが秘密キーを使用してインスタンスにアクセスできるようになります。

SSH キーが提供されると、デフォルトの認証情報(nsroot/nsroot)は機能しなくなります。 パスワードベースのアクセスが必要な場合は、それぞれの SSH プライベートキーでログオンし、手動でパスワードを設定します。

はじめに

OpenStack 環境で VPX インスタンスをプロビジョニングする前に、.tgz ファイルから.qcow2ファイルを抽出してビルドします。

qcow2 イメージからの OpenStack イメージ。 以下の手順を実行します:

  1. 次のコマンドを入力して、 .tqzファイルから.qcow2ファイルを抽出します。

      tar xvzf <TAR file>
      tar xvzf <NSVPX-KVM-12.0-26.2_nc.tgz>
      NSVPX-KVM.xml
      NSVPX-KVM-12.0-26.2_nc.qcow2
    
  2. 次のコマンドを入力して、手順 1で抽出した.qcoz2ファイルを使用して OpenStack イメージをビルドします。

      openstack image create --container-format bare --property hw_disk_bus=ide --disk-format qcow2 --file <path to qcow2 file> --public <name of the OpenStack image>
       
      glance image-create --name="NS-VPX-12-0-26-2" --property hw_disk_bus=ide --ispublic=
      true --container-format=bare --disk-format=qcow2< NSVPX-KVM-12.0-26.2_nc.qcow2
    

    図 1: 次の図に、glance image-create コマンドの出力例を示します。

    イメージ作成コマンド OpenStack

VPXインスタンスのプロビジョニング

VPXインスタンスをプロビジョニングするには、次のいずれかの方法を使用します。

  • Horizon(OpenStackダッシュボード)
  • Nova bootコマンド(OpenStack CLI)

OpenStackダッシュボードを使用してVPXインスタンスをプロビジョニングする

Horizon を使用してVPXインスタンスをプロビジョニングするには、次の手順に従います。

  1. OpenStackダッシュボードにログオンします。
  2. ダッシュボードの左側にある [プロジェクト] パネルで、[インスタンス] を選択します。
  3. [インスタンス] パネルで、[インスタンスの起動] をクリックして、[インスタンスの起動] ウィザードを開きます。

    インスタンス起動ウィザード

  4. インスタンスの起動ウィザードで、次のような詳細を入力します。

    1. Instance Name - インスタンス名
    2. Flavor - インスタンスのフレーバー(種類)
    3. Instance Count - インスタンスの数
    4. Instance Boot Source - インスタンスの起動ソース
    5. イメージ名

    起動ウィザードの詳細

  5. 次の手順を実行して、Horizonを介して新しいキーペアか既存のキーペアを展開します。

    a) 既存のキーペアがない場合は、既存の方式を使用してキーを作成します。 既存のキーがある場合は、この手順はスキップします。

    b) 公開キーの内容をコピーします。

    c) [Horizon] > [インスタンス] > [新しいインスタンスの作成] の順に選択します

    d) [アクセスとセキュリティ] をクリックします。

    e) [Key Pair] ドロップダウンメニューの隣にある [+] 記号をクリックし、表示されるパラメータの値を入力します。

    f)公開鍵の内容を 公開鍵 ボックスに貼り付け、鍵に名前を付け、[鍵 ペアのインポート] をクリックします。

    キーペアをインポートする OpenStack

  6. ウィザードの [ポスト作成] タブをクリックします。 [カスタマイズスクリプト] で、ユーザーデータファイルのコンテンツを追加します。 ユーザーデータファイルには、VPX インスタンスの IP アドレス、ネットマスクとゲートウェイの詳細、およびカスタマースクリプトが含まれます。

  7. キーペアを選択またはインポートした後、config-drive オプションをチェックし、 Launchをクリックします。

    インスタンスを起動する

OpenStack CLIを使用してVPXインスタンスをプロビジョニングする

OpenStack CLIを使用してVPXインスタンスをプロビジョニングするには、次の手順に従います。

  1. qcow2からイメージを作成するには、次のコマンドを入力します。

    openstack image create --container-format bare --property hw_disk_bus=ide --diskformat qcow2 --file NSVPX-OpenStack.qcow2 --public VPX-ToT-Image

  2. インスタンスを作成するイメージを選択するには、次のコマンドを入力します。

    openstack image list | more

  3. 特定のフレーバーのインスタンスを作成するには、次のコマンドを入力して、リストからフレーバー ID/名前を選択します。

    openstack flavor list

  4. NIC を特定のネットワークに接続するには、次のコマンドを入力して、ネットワークリストからネットワーク ID を選択します。

    openstack network list

  5. インスタンスを作成するには、次のコマンドを入力します。

      openstack server create --flavor FLAVOR_ID --image IMAGE_ID --key-name KEY_NAME
      --user-data USER_DATA_FILE_PATH --config-drive True --nic net-id=net-uuid
      INSTANCE_NAME
      openstack server create --image VPX-ToT-Image --flavor m1.medium --user-data
      ovf.xml --config-drive True --nic net-id=2734911b-ee2b-48d0-a1b6-3efd44b761b9
      VPX-ToT
    

図 2: 次の図は、出力例を示しています。

OpenStack CLIを提供

OpenStackを使用してCitrix ADC VPXインスタンスをプロビジョニングする