使用 OpenStack 预配置 Citrix ADC VPX 实例

您可以使用新星启动命令(OpenStack CLI)或地平线(OpenStack 控制板)在打开堆栈环境中置备 Citrix ADC VPX 实例。

配置 VPX 实例(可选)涉及使用配置驱动器中的数据。配置驱动器是一个在启动时作为 CD-ROM 设备附加到实例的特殊配置驱动器。可以使用此配置驱动器来传递网络连接配置(例如管理 IP 地址、网络掩码、默认网关),以及注入客户脚本。

在 Citrix ADC 设备中,默认身份验证机制是基于密码的。现在,OpenStack 环境中的 Citrix ADC VPX 实例支持 SSH 密钥对身份验证机制。

需要先生成密钥对(公钥和私钥),才能使用公钥加密机制。可以使用不同的机制(例如 Horizon、适用于 Windows 的 Puttygen.exe 以及适用于 Linux 的 ssh-keygen)生成密钥对。有关生成密钥对的详细信息,请参阅各个机制的联机文档。

有了密钥对后,将私钥复制到已获得授权的人员有权访问的安全位置。在 OpenStack 中,可以使用 Horizon 或 Nova boot 命令将公钥部署在 VPX 实例上。使用 OpenStack 配置 VPX 实例时,它首先会通过读取特定 BIOS 字符串来检测实例是否在 OpenStack 环境中启动。这个字符串是“OpenStack 基金会”,对于红帽 Linux 发行版,它存储在 /etc/nov/版本中。这是基于 KVM Hypervisor 平台的所有 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”
: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>外壳 </Type>
<Parameter>X Y </Parameter>
<Parameter>Z </Parameter>
<BootScript>之前 </BootScript>
<Text>
#! /bin /bash
回声“嗨,你怎么样”$1 $2 >> /var/样本.txt
</Text>
</Script>
<Script>
<Type>蟒蛇 </Type>
<BootScript>之后 </BootScript>
<Text>
#! /bin /python
印刷品 (“您好”);
</Text>
</Script>
<Script>
<Type>Perl </Type>
<BootScript>之前 </BootScript>
<Text>
! /us/bin /perl
我的美元名称 =“VPX”;
打印“您好,世界 $名称! n”;
</Text>
</Script>
<Script>
<Type>nscli</Type>
<BootScript>之后 </BootScript>
<Text>
添加 VLAN 33
绑定 VLAN 33-ifnum 1/2
</Text>
</Script>
</Scripts>
</ScriptSettingSection>
</cs:ScriptSection>
</Environment>
```

在上面的 OVF 文件中,“属性部分”用于 NetScaler 网络配置,而 <cs:ScriptSection> 用于包含所有脚本。<Scripts></Scripts> 标签用于将所有脚本捆绑在一起。每个脚本在 <Script> </Script> 标签之间定义。每个脚本标记都有以下字段/标记:

a) <Type>:指定脚本类型的值。可能的值:Shell/Perl/Python/NSLCI(用于 NetScaler CLI 脚本)

b) <Parameter>:为脚本提供参数。每个脚本都有多个 <Parameter> 标记。

c) <BootScript>:指定脚本执行点。此标签的可能值:之前/之后。“之前”指定脚本将在 PE 出现之前执行。“之后”指定脚本将在 PE 出现后执行。

d) <Text>:粘贴脚本的内容。

注意

目前 VPX 实例不负责脚本的清理。作为管理员,您应该检查脚本的有效性。

并非所有部分都需要存在。使用空的“PropertySection”只定义要在第一次启动时执行的脚本,或使用空 仅定义网络配置。

填充 OVF 文件(用户数据文件)的必需部分后,使用该文件来置备 VPX 实例。

网络配置

作为网络配置的一部分,VPX 实例将读取:

  • Management IP address(管理 IP 地址)
  • 网络掩码
  • 默认网关

参数成功读取后,将填入 NetScaler 配置中,从而允许远程管理实例。如果参数未成功读取,或者配置驱动器不可用,实例将转换为默认行为,即:

  • 实例尝试从 DHCP 中检索 IP 地址信息。
  • 如果 DHCP 失败或超时,实例将提供默认网络配置 (192.168.100.1/16)。

客户脚本

VPX 实例允许在初始 Provisioning 期间执行自定义脚本。设备支持命令行管理程序、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:下图提供了概览图像创建命令的示例输出。

    本地化后的图片

配置 VPX 实例

您可以使用以下选项之一以两种方式预配置 VPX 实例:

  • Horizon(OpenStack 控制板)
  • Nova boot 命令 (OpenStack CLI)

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

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

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

    本地化后的图片

  4. 在 Launch Instance wizard(启动实例向导)中,填写详细信息,例如:

    1. Instance Name(实例名称)
    2. Instance Flavor(实例风格)
    3. Instance Count(实例计数)
    4. Instance Boot Source(实例启动源)
    5. 映像名称

    本地化后的图片

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

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

    b) 复制公钥的内容。

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

    d) 点击 访问和安全

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

    f)将公钥内容粘贴到 公钥 框中,为密钥指定名称,然后单击 导入密钥对

    本地化后的图片

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

  7. 选择或导入密钥对后,检查配置驱动器选项,然后单击 启动

    本地化后的图片

使用 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. 要将网卡附加到特定网络,请键入以下命令以从网络列表中选择网络 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 预配置 Citrix ADC VPX 实例