NetScaler VPX

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

NetScaler VPX インスタンスは、OpenStack 環境で、Nova boot コマンド (OpenStack CLI) または Horizon (OpenStack ダッシュボード) のいずれかを使用してプロビジョニングできます。

VPX インスタンスのプロビジョニングには、オプションで設定ドライブ (config drive) のデータを使用できます。設定ドライブは、インスタンスの起動時に CD-ROM デバイスとしてインスタンスに接続される特別な設定ドライブです。この設定ドライブは、管理 IP アドレス、ネットワークマスク、デフォルトゲートウェイなどのネットワーク設定を渡し、顧客スクリプトを挿入するために使用できます。

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

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

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

設定ドライブが検出されると、インスタンスは、提供されていればネットワーク設定、カスタムスクリプト、および SSH キーペアの読み取りを試みます。

ユーザーデータファイル

NetScaler 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></Scripts> タグは、すべてのスクリプトをまとめてバンドルするために使用されます。各スクリプトは <Script> </Script> タグの間に定義されます。各スクリプトタグには、次のフィールド/タグがあります。

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

b) <Parameter>: スクリプトにパラメーターを提供します。各スクリプトには複数の <Parameter> タグを含めることができます。

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

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

注:

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

すべてのセクションが存在する必要はありません。最初の起動時に実行するスクリプトのみを定義するには、空の「PropertySection」を使用するか、ネットワーク構成のみを定義するには、空の<cs:ScriptSection>を使用します。

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

ネットワーク構成

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

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

パラメータが正常に読み取られると、インスタンスをリモートで管理できるように、NetScaler®構成にそれらが入力されます。パラメータが正常に読み取られない場合、または構成ドライブが利用できない場合、インスタンスはデフォルトの動作に移行します。それは次のとおりです。

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

カスタマースクリプト

VPXインスタンスは、初期プロビジョニング中にカスタムスクリプトを実行できます。アプライアンスは、Shell、Perl、Python、およびNetScaler 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インスタンスを2つの方法でプロビジョニングできます。

  • ホライズン (オープンスタック ダッシュボード)
  • ノヴァ ブートコマンド (オープンスタック シーエルアイ)

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

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

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

    インスタンス起動ウィザード(/ja-jp/vpx/media/instance-launching-wizard.png)

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

    1. インスタンス名
    2. インスタンスフレーバー
    3. インスタンス数
    4. インスタンスのブートソース
    5. イメージ名

    起動ウィザードの詳細(/ja-jp/vpx/media/launch-wizard-details.png)

  5. 以下の手順を完了して、Horizon を介して新しいキーペアまたは既存のキーペアを展開します。

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

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

    c) Horizon > インスタンス > 新しいインスタンスの作成に移動します。

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

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

    f) Public key ボックスに公開鍵の内容を貼り付け、鍵に名前を付け、Import Key Pair をクリックします。

    キーペアのインポート (OpenStack)(/ja-jp/vpx/media/import-keypair-openstack.png)

  6. ウィザードで Post Creation タブをクリックします。カスタマイズスクリプトで、ユーザーデータファイルの内容を追加します。ユーザーデータファイルには、VPXインスタンスのIPアドレス、ネットマスク、ゲートウェイの詳細、および顧客スクリプトが含まれています。

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

    インスタンスの起動(/ja-jp/vpx/media/launch-instance.png)

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: 次の図は出力例を示しています。

オープンスタックCLIの提供

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