Citrix ADC

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

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

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

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

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

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

すべてのセクションを表示する必要はありません。空の「PropertySection」を使用して最初のブート時に実行するスクリプトのみを定義するか、ネットワーク構成のみを定義するには空の「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. [Launch Instance]ウィザードで、以下の情報を指定します。

    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インスタンスをプロビジョニングする