在 SC2S 中创建 VPX Amazon Machine Image (AMI)
贡献者
作者: Jill Fetscher,架构师
SC2S 是一个空隙的 AWS 实例化,无法访问 AWS Marketplace。所有 Amazon Machine Images (AMI) 必须使用 vmimport
工具手动上载到环境中。由于 Citrix ADC VPX 装置的性质,映像文件太大,无法使用 vmimport
工具。必须创建 VPX AMI,以便它可以引导以备将来使用。我们专门为 SC2S 创建了以下方法,但它可用于未来这种性质的使用案例,其中不存在商城或商城中没有 VPX AMI 产品。
在 SC2S 中创建 VPX:低端步骤(商用 AWS)
-
使用与 Citrix ADC 驻留在 SC2S 中的 VPC 相同的 CIDR 块在 UC2S(商业)中创建 VPC 和子网。(例如,使用 VPC 向导创建大小为 10.0.0.0/16 的 VPC,单个公有子网大小为 10.0.0.0/24。)
这可以通过以下两种方式之一来完成:
- 使用基本 CIDR 和子网划分在 SC2S 中创建测试 VPC
- 复制 SC2S 中使用的 CIDR 和子网划分
注意:
对于 C2S,VPC 的创建是通过服务完成的,并自动从超网分配 IP 空间。在这种情况下,第二种方法是必要的。对于GovCloud,请等待进一步的说明,或从市场下载最新版本的VPX。
-
在 AWS Marketplace 中从 Citrix ADC AMI 部署 EC2 实例。实例需要获得客户许可。使用非硝基实例(例如,
m4.xlarge
)。选择您在前面的步骤中创建的 VPC。禁用 自动分配公有 IP。
使用易于识别的名称命名实例。我们在以下步骤中创建了许多实例,并且需要标识每个实例以进行进一步配置。
安全组将自动填充。单击下一步,完成实例启动的其余步骤。
-
创建一个 Windows Server 2019 或 2016 基础堡垒主机以访问您的 VPX 实例。
此实例可以是
m4.xlarge
,并且必须在与 Citrix ADC 相同的 VPC 和可用区中构建,并具有自动分配的公有 IP。根卷至少需要 45 GiB 的通用固态硬盘 (gp2)。注意:
如果环境允许创建弹性 IP (EIP),您可以跳过创建堡垒主机,并且可以直接从网络或Internet连接 VPX 实例。出于安全考虑,我们建议使用堡垒主机,并且在空隙环境中缺乏 EIP 可用性。
将实例命名为可识别的名称(例如,SC2S:WS2016 Bastion Low)。
为简单起见,请创建一个安全组以允许所有流量。您可以稍后锁定此安全组。
实例准备就绪后,使用公有 IP RDP 进入计算机。然后下载 PuTTY 和 WinSCP,然后复制用于创建 VPX 实例的密钥对。这需要使用 PuTTYgen 将 .pem 转换为 .ppk。在服务器管理器中,禁用 Windows 防火墙和Internet资源管理器增强安全性。使用 PuTTY 验证您是否能够通过 SSH 连接到新部署的 Citrix ADC 设备。记下实例的
nsroot
密码。默认情况下,这是 AWS 实例 ID。记下实例的私有 IP,因为在后面的步骤中需要它。在此阶段,您有一台工作正常的 Citrix ADC 设备。注意:
请勿配置此 VPX!只需以
nsroot
身份登录即可验证功能。 -
从 AWS 控制台关闭 Citrix ADC 实例的电源。将根 EBS 卷与 Citrix ADC 实例分离。
要分离根卷,请单击根设备
/dev/sda1
,然后单击卷 ID。在“卷”选项卡中,选择卷,将其命名为可识别的内容(例如,SC2S: Commercial Root Vol),然后记下卷 ID。单击操作 > 分离卷 > 确定。卷状态现在应为“可用”。 -
部署新的 Amazon Linux EC2 实例(Amazon Linux 2 AMI (HVM)、SSD 卷类型、64 位、EBS 支持、启用了 ENA)。此实例应与之前部署的 VPX 实例相同(例如
m4.xlarge
),并且应位于同一 VPC 和子网中,禁用“自动分配公有 IP”设置。将实例命名为可识别的内容(例如 SC2S: Linux Low)。将安全组设置为暂时允许所有流量。实例启动后,关闭其电源。 -
将分离的根 EBS 卷从 VPX 连接到 Linux EC2 实例。
通过单击实例 > 附加来选择您创建的 Linux 实例。
-
创建容量高于根 VPX 卷的卷。VPX 卷的根卷容量为 30 GiB。创建容量为 35 GiB 的卷。将卷类型设置为通用 SSD (gp2),并将其命名为可识别的内容(例如,SC2S: Copy Low Vol)。将新卷连接到 Linux 实例。
-
打开 Linux 实例的电源,并使用私有密钥文件从堡垒主机通过 SSH 连接到该实例。以
ec2-user*
身份登录。 -
在新的 EBS 卷上创建分区。
注意:
在此示例中,VPX 根卷 SC2S: Commercial Root Vol 为
/dev/sdf
,新创建的 35 GiB 卷 SC2S: Copy Low Vol 为/dev/sdg
。分区将仅在 SC2S: Copy Low Vol 上创建。在 AWS 控制台中,这些块储存设备用符号链接表示。在 Linux 实例中,/dev/sdf
和/dev/sdg
分别称为/dev/xvdf
和/dev/xvdg
。在 Linux CLI 中,验证是否没有文件系统。响应应仅为 数据 。
sudo file –s /dev/xvdg <!--NeedCopy-->
创建文件系统。
sudo mkfs -t xfs /dev/xvdg <!--NeedCopy-->
创建挂载点并装载设备。
sudo mkdir /copy <!--NeedCopy-->
sudo mount /dev/svdg /copy <!--NeedCopy-->
验证设备是否已安装,以及是否有三个设备(例如
xvda
、xvdf
和xvdg
)。lsblk <!--NeedCopy-->
使用
fdisk
创建分区,选择n
表示新建、p
表示主分区、1
表示分区编号和第一个和最后一个扇区的默认值(ENTER、ENTER)。按 CRTL+C 退出。sudo fdisk /dev/xvdg >n >p >1 >enter >enter >CTRL+C <!--NeedCopy-->
-
将 VPX 根卷复制到块级别的新 EBS 卷(例如,将 SC2S:商业根卷 复制到 SC2S:复制低容量)。在此处创建的文件
citrixADC.img
即可移动到 SC2S 环境中。sudo dd if=/dev/xvdf of=/copy/citrixADC.img status=progress <!--NeedCopy-->
此副本可能需要几个小时。
文件复制完成后,请验证文件是否位于 /copy 目录中,然后更改文件的权限以允许读取、写入和执行。
ls /copy sudo chmod 777 /copy/citrixADC.img <!--NeedCopy-->
-
WinSCP 将
citrixADC.img
文件放到一个可以将其分解到高边的位置。如果需要,堡垒足够大,可以将图像文件复制到。
在 SC2S 中创建 VPX-高边的步骤
-
创建具有与步骤 1 中“低端”相同 CIDR 块和子网的 VPC,或使用现有 VPC。在本示例中, VPC 的 CIDR 为 10.0.0.0/16, 子网 IP 空间为 10.0.0.0/16。这一点非常重要,因为最终创建的 VPX 必须与商业市场的原始 VPX 相同。
-
在新的 VPC 和子网中,启动与部署在低端的 Citrix ADC 实例相同的实例类型(例如
m4.xlarge
)的 Amazon Linux 实例(Amazon Linux 2 AMI (HVM)、SSD 卷类型、EBS 支持、启用了 ENA、64 位)。将实例命名为可识别的名称(例如 SC2S:Linux 高级)。当实例准备就绪时,请关闭其电源。 - 添加两个容量大于传输文件大小的 EBS 卷(例如 35 GiB)。这些卷必须与低端创建的卷具有相同的 SSD 类型 (gp2)。
- 第一卷用于低端的副本。将卷命名为可识别的内容(例如“SC2S:复制高卷”)。将此卷作为
/dev/sdf
附加到 SC2S 中的新 Linux 实例。这是实例上/dev/xvdf
的符号链接。
- 第二个卷将成为新 VPX 的根卷。将卷命名为可识别的内容(例如“SC2S:最终 VPX 卷”)。将此卷作为
/dev/sdg
附加到 SC2S 中的新 Linux 实例。这是实例上/dev/xvdg
的符号链接。
该实例现在连接了三个块储存设备,包括根设备。打开实例的电源。
- 第一卷用于低端的副本。将卷命名为可识别的内容(例如“SC2S:复制高卷”)。将此卷作为
-
以与低端堡垒相同的方式创建高端 Windows Server 2019 或 2016 基础堡垒主机。此实例应位于新创建的 VPC 和子网中,并且文件传输应至少为 45 GiB。将“自动分配公共 IP”设置为已启用。为实例命名可识别的内容(例如“SC2S: WS2016 Bastion_High”),并将安全组设置为现在允许“所有流量”。
-
堡垒主机准备就绪后,使用公有 IP RDP 进入计算机,下载 PuTTY 和 WinSCP,然后复制用于创建 VPX 实例的密钥对。这需要使用 PuTTYgen 将 .pem 转换为 .ppk。在服务器管理器中,暂时禁用 Windows 防火墙和 Internet Explorer 增强安全性。
-
将 citrixADC.img 文件复制到新的堡垒主机。
-
使用带有用户名
ec2-user
的 AWS 私钥,从堡垒主机启动到新 Linux 实例的 PuTTY 会话(例如“SC2S: Linux High”)。 -
使用
lsblk
验证实例上是否存在所有设备。 -
验证
/dev/xvdf
设备没有文件系统,然后创建一个文件系统。注意:
请勿在
/dev/xvdg
设备上创建文件系统。sudo file –s /dev/xvdf sudo mkfs –t xfs /dev/xvdf <!--NeedCopy-->
-
为设备创建一个装入点,装入设备,然后验证卷装入点是否为
/copy
。sudo mkdir /copy sudo mount /dev/xvdf /copy lsblk <!--NeedCopy-->
-
使用
fdisk
创建分区。sudo fdisk /dev/xvdf >n >p >1 >enter >enter >CTRL+C <!--NeedCopy-->
-
更改 /copy 目录的权限。
sudo chmod 777 /copy <!--NeedCopy-->
-
在堡垒主机上使用 WinSCP 连接到 Linux 实例。将 citrixADC.img 文件复制到 /copy 目录中。复制文件后,更改权限以允许从 WinSCP 控制台读取、写入和执行所有文件。
-
在 Linux CLI 中,使用以下命令将映像文件复制到 /dev/xvdg 设备:
sudo dd if=/copy/citrixADC.img of=/dev/xvdg status=progress <!--NeedCopy-->
-
复制完成后,运行
lsblk
命令以验证 Citrix ADC 的分区是否显示在 /dev/xvdg 设备上。lsblk <!--NeedCopy-->
-
关闭 Linux 实例的电源并分离 /dev/xvdg(/dev/sdg)卷(例如“SC2S:最终 VPX 卷”)。
-
在高端创建的 VPC 和子网(Amazon Linux 2 AMI (HVM)、SSD 卷类型、EBS 支持、启用 ENA-64 位
m4.xlarge
、安全组设置为允许“所有流量”)。在设置过程中,将 IP 设置为与低端的 VPX 相同,这在本文档的上一部分中已有说明。实例准备就绪后,关闭该实例的电源。 -
分离新部署的 Linux 实例的根卷并附加分离的实例(例如“SC2S:最终 VPX 卷”)。在连接过程中,将设备指定为根卷(即
/dev/xvda
)。 -
打开实例的电源。使用高端堡垒主机向实例输入 PuTTY/SSH 以验证 VPX 的功能。使用本文档前一部分中记录的实例 ID 密码以
nsroot
身份登录,然后执行一个简单的命令。sh version <!--NeedCopy-->
从已启动的 VPX 实例创建 AMI
-
登录 Citrix ADC 实例。以 root 身份进入 shell 执行必要的修改。
shell <!--NeedCopy-->
-
强制递归地手动从 ADC 软件中删除以下目录和文件。要手动删除文件和目录,请在每个文件和目录前面添加 rm —rf。 ‘/nsconfig/ns.conf’
‘/nsconfig/ssh/’
‘/nsconfig/ssl/’
‘/nsconfig/aws_bootstrap’
‘/nsconfig/rainman.conf’
‘/var/nslog’
‘/var/log/messages’
‘/var/log/.log’
‘/var/core/’
‘/nsconfig/.AWS/’
‘/var/db’
‘/etc/resolv.conf’
‘/flash/BUILD’
‘/mpsconfig/pgxl/.ssh/id_rsa.pub’
‘/var/pubkey/nsroot/.ssh/authorized_keys’
‘/var/pubkey/root/.ssh/authorized_keys’或者运行这个脚本:
#!/bin/sh -x rm -rf /nsconfig/ns.conf* rm -rf /nsconfig/ssh/* rm -rf /nsconfig/ssl/* rm -rf /nsconfig/aws_bootstrap rm -rf /nsconfig/rainman.conf rm -rf /var/nslog rm -rf /var/log/messages* rm -rf /var/log/\*.log rm -rf /var/core/\* rm -rf /nsconfig/.AWS/ rm -rf /var/db rm -rf /etc/resolv.conf rm -rf /flash/BUILD rm -rf /mpsconfig/pgxl/.ssh/id_rsa.pub rm -rf /var/pubkey/nsroot/.ssh/authorized_keys rm -rf /var/pubkey/root/.ssh/authorized_keys <!--NeedCopy-->
-
将 /flash/nsconfig 目录上的权限更改为 755。
chmod 755 /flash/nsconfig <!--NeedCopy-->
-
验证是否没有剩余密钥。如果有,则强制和递归地删除它们。
find / -type f -name “authorized*” rm -rf <filename> <!--NeedCopy-->
-
验证 /nsconfig/license 中是否不存在剩余许可证。如果有,则强制和递归地删除它们。
注意:
此文件夹中还会有其他目录和文件(例如 SSL 和 XML),仅删除许可证文件(如果存在)。
ls /nsconfig/license ls /nsconfig/license/ssl ls /nsconfig/license/xml <!--NeedCopy-->
-
从 AWS 控制台关闭计算机电源。实例停止后,从该实例创建 AMI。
将实例命名为所有可识别的内容,因为这是公开共享给 SC2S 的所有管理员(例如“Citrix ADC VPX 13.0—47.24”)
-
AMI 准备就绪后,从中部署实例以验证其功能。
-
将 AMI 的权限设置为
Public
,以便 SC2S 的所有管理员都可以使用它。
升级到新版本
-
对于 SC2S 中的现有 Citrix ADC VPX:使用位于 https://citrix.com/downloads的升级软件升级 VPX,然后将文件放到高处。按照 升级 Citrix ADC 独立设备 中的指导进行安装。推荐的升级方法是使用命令行。
-
对于 SC2S 中的新 Citrix ADC VPX:创建要公开共享的 AMI。从现有 AMI 启动实例,如前一节所述升级计算机,然后执行本文档中“从已启动的 VPX 实例创建 AMI”一节中的步骤。