NetScaler VPX

Provision the NetScaler VPX instance by using OpenStack

You can provision a NetScaler VPX instance in an OpenStack environment either by using the Nova boot command (OpenStack CLI) or Horizon (OpenStack dashboard) .

部署 VPX 实例可选地涉及使用配置驱动器中的数据。配置驱动器是一种特殊的配置驱动器,在实例启动时作为 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 实例:

  • Horizon (OpenStack 的图形化用户界面管理控制面板)
  • Nova 启动命令 (OpenStack 命令行界面)

使用 OpenStack 控制面板预置 VPX 实例

请按照以下步骤使用 Horizon 预置 VPX 实例:

  1. 登录到 OpenStack 控制面板。
  2. 在控制面板左侧的“项目”面板中,选择 实例
  3. 在“实例”面板中,单击 启动实例 以打开实例启动向导。

    实例启动向导(/zh-cn/vpx/media/instance-launching-wizard.png)

  4. 在“启动实例”向导中,填写详细信息,例如:

    1. 实例名称
    2. 实例类型
    3. 实例数量
    4. 实例启动源
    5. 镜像名称

    启动向导详细信息(/zh-cn/vpx/media/launch-wizard-details.png)

  5. 通过完成以下步骤,通过 Horizon 部署新的密钥对或现有密钥对:

    a) 如果您没有现有密钥对,请使用任何现有机制创建密钥。如果您有现有密钥,请跳过此步骤。

    b) 复制公钥内容。

    c) 转到 Horizon > 实例 > 创建新实例

    d) 单击访问与安全

    e) 单击密钥对下拉菜单旁边的 + 号,并为显示的参数提供值。

    f) 将公钥内容粘贴到“公钥”框中,为密钥命名,然后单击导入密钥对

    导入 OpenStack 平台的密钥对

  6. 在向导中单击创建后选项卡。在“自定义脚本”中,添加用户数据文件的内容。用户数据文件包含 VPX 实例的 IP 地址、子网掩码和网关详细信息以及客户脚本。

  7. 选择或导入密钥对后,选中 config-drive 选项,然后单击启动

    启动实例

通过使用 OpenStack 命令行界面预配 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 提供命令行界面

Provision the NetScaler VPX instance by using OpenStack