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 イメージ。 以下の手順を実行します:
-
次のコマンドを入力して、
.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
-
次のコマンドを入力して、手順 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 コマンドの出力例を示します。
VPXインスタンスのプロビジョニング
VPXインスタンスをプロビジョニングするには、次のいずれかの方法を使用します。
- Horizon(OpenStackダッシュボード)
- Nova bootコマンド(OpenStack CLI)
OpenStackダッシュボードを使用してVPXインスタンスをプロビジョニングする
Horizon を使用してVPXインスタンスをプロビジョニングするには、次の手順に従います。
- OpenStackダッシュボードにログオンします。
- ダッシュボードの左側にある [プロジェクト] パネルで、[インスタンス] を選択します。
-
[インスタンス] パネルで、[インスタンスの起動] をクリックして、[インスタンスの起動] ウィザードを開きます。
-
インスタンスの起動ウィザードで、次のような詳細を入力します。
- Instance Name - インスタンス名
- Flavor - インスタンスのフレーバー(種類)
- Instance Count - インスタンスの数
- Instance Boot Source - インスタンスの起動ソース
- イメージ名
-
次の手順を実行して、Horizonを介して新しいキーペアか既存のキーペアを展開します。
a) 既存のキーペアがない場合は、既存の方式を使用してキーを作成します。 既存のキーがある場合は、この手順はスキップします。
b) 公開キーの内容をコピーします。
c) [Horizon] > [インスタンス] > [新しいインスタンスの作成] の順に選択します。
d) [アクセスとセキュリティ] をクリックします。
e) [Key Pair] ドロップダウンメニューの隣にある [+] 記号をクリックし、表示されるパラメータの値を入力します。
f)公開鍵の内容を 公開鍵 ボックスに貼り付け、鍵に名前を付け、[鍵 ペアのインポート] をクリックします。
-
ウィザードの [ポスト作成] タブをクリックします。 [カスタマイズスクリプト] で、ユーザーデータファイルのコンテンツを追加します。 ユーザーデータファイルには、VPX インスタンスの IP アドレス、ネットマスクとゲートウェイの詳細、およびカスタマースクリプトが含まれます。
-
キーペアを選択またはインポートした後、config-drive オプションをチェックし、 Launchをクリックします。
OpenStack CLIを使用してVPXインスタンスをプロビジョニングする
OpenStack CLIを使用してVPXインスタンスをプロビジョニングするには、次の手順に従います。
-
qcow2からイメージを作成するには、次のコマンドを入力します。
openstack image create --container-format bare --property hw_disk_bus=ide --diskformat qcow2 --file NSVPX-OpenStack.qcow2 --public VPX-ToT-Image
-
インスタンスを作成するイメージを選択するには、次のコマンドを入力します。
openstack image list | more
-
特定のフレーバーのインスタンスを作成するには、次のコマンドを入力して、リストからフレーバー ID/名前を選択します。
openstack flavor list
-
NIC を特定のネットワークに接続するには、次のコマンドを入力して、ネットワークリストからネットワーク ID を選択します。
openstack network list
-
インスタンスを作成するには、次のコマンドを入力します。
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: 次の図は、出力例を示しています。