内容


为 Windows 创建 IBM SmartCloud Orchestrator 兼容的镜像

Comments

简介

云计算可以帮助大幅提高新的业务服务的交付速度。IBM SmartCloud Orchestrator 是一个集成的云自动化平台,旨在帮助协调强大的企业云服务的开发、部署和管理。利用 SmartCloud Orchestrator,您可以:

  • 使用协调引擎加速云服务的交付。
  • 自动化整个多节点应用程序拓扑的部署。
  • 监控云环境的健康情况、性能和规划能力。
  • 跟踪和分析各种云资源的成本。

云计算中的一个重要任务就是创建镜像。这要求您掌握有关底层操作系统、用于部署镜像的虚拟机管理程序,以及控制虚拟机管理程序的管理器的知识。在这篇文章中,我们将使用 Windows 作为来宾操作系统,引导您完成这项任务。

首先,让我们建立一些常用术语,并总结创建 SmartCloud Orchestrator 兼容的镜像的一般流程。您可以很容易地根据要通过 SmartCloud Orchestrator 部署的现有镜像来调整流程。我们将解释在创建镜像时遇到的一些常见问题,以及如何调试和解决这些问题。

因为我们在这篇文章中使用了基于 VMware 的系统,所以我们使用 VMware 术语。但是,您可以轻松地将程序扩展到 KVM 区域。

我们使用 “镜像” 或 “虚拟镜像” 来标识镜像模板,而且用 “实例” 或 “虚拟实例” 来标识通过 SmartCloud Orchestrator 部署的虚拟机(VM)。

创建 SmartCloud Orchestrator 兼容的镜像的步骤相当简单:

  1. 在虚拟机管理程序中创建一个镜像模板。
  2. 安装基础操作系统。
  3. 设置和检查 SmartCloud Orchestrator 先决条件。
  4. 将镜像导入 SmartCloud Orchestrator 的 Image Construction and Composition Tool (ICCT) 组件。
  5. 在 ICCT 中扩展镜像。
  6. 在 ICCT 中同步镜像。
  7. 在 ICCT 中捕获镜像。

我们将在下面的章节更详细探讨每一个步骤的涵义。

为简便起见,我们假设由同一个用户来完成这些步骤,但由于程序中的不同步骤可以由担任不同角色的不同人员来完成,我们将指定每一个步骤所需的权限和角色。

要创建 SmartCloud Orchestrator 兼容的镜像,必须能够以 admin 角色访问 VMware vCenter,还必须能够访问 ICCT UI(ICCT 是单用户,所以没有指定角色)和 SmartCloud Orchestrator UI 的 Virtual Image Library(VIL)组件。

您必须能够访问对应于您要安装的操作系统的 ISO 文件:请参阅在 SmartCloud Orchestrator 环境中 支持的操作系统 清单。

为简便起见,我们假设已在 VMware 虚拟机管理程序中创建了镜像(步骤 1),并且经安装了操作系统(步骤 2)。那么,我们将执行步骤 3,设置和检查 SmartCloud Orchestrator 先决条件。

设置和检查 SmartCloud Orchestrator 先决条件

为了确保通过 SmartCloud Orchestrator 成功部署镜像,需要进行特定的配置更改。通常情况下,如果一个或多个先决条件缺失,则会启动实例;在 SmartCloud Orchestrator UI 中,它会保持处于 “Checking to see if virtual system <system's name> is started” 状态。

下面是如何将 Windows 2008 R2 配置为 SmartCloud Orchestrator 兼容的示例。

IBM Workload Deployer 和 Image Construction and Composition Tool 组件使用了 RXA 协议来连接到已部署的镜像(分别在部署时和同步时),并复制所需的文件 — 例如,激活引擎包。

为了确保 RXA 协议工作正常,您必须在镜像中应用一组配置步骤。

您必须配置 Windows 防火墙,以便允许传入的 ICMP 和 RDP 连接。要启用远程桌面防火墙例外,请转到 Start > Computer,单击鼠标右键,然后选择 Properties,进入到 Remote 选项卡,并确保已选中 Allow connections from computers running any version of Remote Desktop,然后单击 Apply。您会看到一个 “Remote Desktop Firewall exception will be enabled” 消息;单击 OK 两次。

图 1.
屏幕截图显示了 Windows 防火墙屏幕
屏幕截图显示了 Windows 防火墙屏幕

对于 ICMP,在 Windows 防火墙中预定义的规则是 "File and Printer Sharing (Echo Request – ICMPv4-In)"。要编辑此配置,请转到 Start > Control Panel > System and Security > Windows Firewall,点击 Advanced Settings,然后选择 Inbound Rules。寻找名称为 “File and Printer Sharing (Echo Request – ICMPv4-In)” 的规则。双击它打开规则,并确保:

  • 在 Advanced 选项卡下,已选中要应用规则的所有配置文件(Domain、Private 和 Public)。
  • 在 Scope 选项卡下,选中 Any IP address。
图 2.
屏幕截图显示了 Windows Inbound Rules
屏幕截图显示了 Windows Inbound Rules
图 3.
屏幕截图显示了 File and Printer Sharing 下面的 Advanced 选项卡
屏幕截图显示了 File and Printer Sharing 下面的 Advanced 选项卡
图 4.
屏幕截图显示了 File and Printer Sharing 下面的 Scope 选项卡
屏幕截图显示了 File and Printer Sharing 下面的 Scope 选项卡

防火墙不得阻止端口 445。在 Windows防火墙中针对此端口预定义的规则是 Netlogon Service (NP-In)。

图 5.
在 Windows 防火墙中针对 NP-in 的预定义规则的屏幕截图
在 Windows 防火墙中针对 NP-in 的预定义规则的屏幕截图

对于 OpenStack,为了允许使用传入的 RDP 连接,请确保防火墙没有阻止端口 3389。

图 6.
在 Windows 防火墙中端口 3389 的预定义规则的屏幕截图。
在 Windows 防火墙中端口 3389 的预定义规则的屏幕截图。

如果您的帐户不是域用户帐户,那么您可能必须禁用 User Account Control。如果您有一个域用户帐户,请确保本地和目标机器都是 Windows 域的成员。

如果您是本地管理员组的成员,而且使用的是本地用户帐户,那么您必须在目标机器上执行管理任务。

当您使用 Security Account Manager 本地用户帐户管理工作站时,需要禁用 User Account Control。如果没有禁用该选项,则无法作为一个完整的系统管理员进行连接,不能执行管理任务。禁用 User Account Control:

  • 单击 Start > Run,输入 regedit,单击 OK 或按下 Enter
  • 找到并单击注册表子项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Policies\System。
  • 如果 LocalAccountTokenFilterPolicy 注册表项不存在,那么请在 Edit 菜单上选择 New 并单击 DWORD Value。输入 LocalAccountTokenFilterPolicy,按下 Enter,右键单击 LocalAccountTokenFilterPolicy,并单击 Modify。在 Value 数据字段中,输入 1 并单击 OK
  • 重新启动计算机。
图 7.
Registry Editor 的屏幕截图
Registry Editor 的屏幕截图

检查是否默认设置了 User Account Control,转到 Start,然后在 Search programs and files 中输入 uac

图 8.
User Account Control Settings 的屏幕截图
User Account Control Settings 的屏幕截图

确保在计算机的网络连接属性中已选中 Enable NetBIOS over TCP/IP。在 Control Panel 中,转到 Network and Dial-Up Connections > Properties > Internet Protocol (TCP/IP) > Advanced > WINS > Enable NetBIOS over TCP/IP

图 9.
启用 NetBIOS over TCP/IP 的网络连接路径的屏幕截图
启用 NetBIOS over TCP/IP 的网络连接路径的屏幕截图

备注:在创建模板之前,记住要断开您可能已添加到镜像的任何 ISO 文件(通常这样做是为了安装操作系统),因为它会干扰镜像激活逻辑(激活引擎通过 ISO 文件传递配置指令)。

图 10.
启用 NetBIOS over TCP/IP 的网络连接路径的屏幕截图
启用 NetBIOS over TCP/IP 的网络连接路径的屏幕截图

当您创建一个镜像模板时,确保它只有一个网卡;您可以在部署时使用 NIC 加载项添加更多的网卡。

等待 VIL 发现镜像

准备好模板后,您可以在 VIL UI 中看到镜像。因为 VIL 每两分钟在 VMWare 中发现一次新镜像,捕获完成后,您可能要稍等一会儿才能在 VIL 中看到镜像。VIL 为同一个 VMWare 区域提供了两个运算库:一个用于 OpenStack,一个用于 VMWare。后者用小链图标(small chain icon)进行标识。

OpenStack 存储库中填充了从 Glance 收集的信息。VMWare 存储库通过直接与 VMWare 通信进行填充。最后,它们的内容应该是完全相同的。如果存在差异(例如,镜像在一个存储库中有显示,但在另一个存储库中没有显示),那么您可以强制同步,方法是在 VIL UI 中选中一个运算库,然后选择 Actions > Synchronize repositories。等待同步任务完成,然后在第二个存储库上发出同步命令。

必须在 VIL 中看到镜像后,才能将该镜像导入 ICCT。

图 11.
屏幕截图显示了 VIL 中的 Images 选项卡
屏幕截图显示了 VIL 中的 Images 选项卡

备注:如果您计划管理大型环境,以便帮助提升 VIL 性能,那么我们建议您配置 VIL 不查看部署的镜像。

在 ICCT 中导入镜像

SmartCloud Orchestrator 不会立即使用 VMware 模板,因为它们缺乏激活引擎。激活引擎是一组负责镜像的个性化和去个性化的二进制文件。它负责在部署时将正确的网络配置分配给实例(例如,主机名、IP 地址、DNS 和网关),将新的密码分配给管理员用户,建立产品密钥,并触发您可能通过 ICCT 软件包添加到镜像中的特定软件自定义脚本的安装。该软件由 ICCT 在镜像模板中进行安装和配置。

为简便起见,我们假设没有向镜像添加任何软件包和个性。如需更多的信息,请参阅 使用 IBM Image Construction and Composition Tool

镜像必须被列​​在 VIL OpenStack 运算库中,并成功完成基础索引,然后才能将镜像导入 ICCT。

尽管名称是导入流程,但它并不是复制和检索镜像的磁盘。相反,它要创建一个指向镜像的指针,并生成适当的镜像元数据。元数据 的意思是,在模式设计时和镜像部署时描述镜像的工件的集合 — 镜像中包含多少部件(个性),指出了哪些参数可由最终用户在部署时配置(例如,root 密码),以及哪些参数由配置引擎在部署时配置(例如,DNS)。

要导入镜像,请先登录 ICCT UI。我们在这里没有指定任何角色,因为 ICCT 是单用户。单击 Build and manage images

图 12.
ICCT 欢迎页面的屏幕截图,突出显示了 build and manage  images 链接
ICCT 欢迎页面的屏幕截图,突出显示了 build and manage images 链接

如果有多个系统,请确保已指向正确的云服务提供商(从右上角的下拉列表中选择),然后单击 Import from Cloud Provider 图标。

图 13.
ICCT Images 页面的屏幕截图,突出显示了 Import  from CloudProvider 图标
ICCT Images 页面的屏幕截图,突出显示了 Import from CloudProvider 图标

选中新创建的镜像,然后单击 Add

图 14.
Import from CloudProvider 窗口的屏幕截图,突出显示了要添加的镜像
Import from CloudProvider 窗口的屏幕截图,突出显示了要添加的镜像

单击 Import

在 ICCT 中扩展镜像。

扩展过程是创建 SmartCloud Orchestrator 兼容的新虚拟镜像的第一步。这一步不涉及 OpenStack 或虚拟机管理程序;它自包含在 ICCT 中。它在 ICCT 内部创建了另一个镜像对象,并从基础镜像复制元数据。

为了从 ICCT 扩展图像,请单击镜像窗口中的 Extend 图标进入 GUI。

图 15.
ICCT 中已打开镜像的详细信息窗口屏幕截图,突出显示了扩展图标
ICCT 中已打开镜像的详细信息窗口屏幕截图,突出显示了扩展图标

在 ICCT 中,镜像的状态是 “Out of sync(不同步)”,反映了虚拟机管理程序中没有镜像对应于所扩展的镜像。

图 16.
屏幕截图显示,镜像的详细信息现在已被扩展,而且是不同步的
屏幕截图显示,镜像的详细信息现在已被扩展,而且是不同步的

另外值得注意的是,扩展后的镜像有一个额外的软件包。

图 17.
屏幕截图显示了镜像的详细信息和额外的软件包
屏幕截图显示了镜像的详细信息和额外的软件包

在扩展阶段,ICCT 承诺会安装软件包,但到目前为止,还没有任何东西被​​添加到镜像。请记住,镜像尚未存在于虚拟机管理程序中。

Enablement Bundle 负责安装正确版本的激活引擎(如果尚未安装)和配置它。

在 ICCT 中同步镜像

如果在 ICCT 中同步图像,则会根据基础镜像创建一个虚拟实例,并增加了启用软件包以及您在上一步骤中可能已经添加到该实例中的软件包。在执行此操作时,ICCT 只与 OpenStack 进行交互(通过 iaasgateway);没有其他组件直接参与此过程。(Workload Deployer 不会参加同步游戏。)

要开始同步,请单击 Synchronize 按钮。

图 18.
屏幕截图显示了镜像的详细信息并突出显示了同步按钮
屏幕截图显示了镜像的详细信息并突出显示了同步按钮

系统会要求您选择一个风格、网络、云服务供应商,并指定 root 密码。这个密码是在安装操作系统时被设置到镜像中的密码。单击 Next

图 19.
屏幕截图显示了在同步镜像前要在密码字段选择的参数选项
屏幕截图显示了在同步镜像前要在密码字段选择的参数选项

在同步镜像面板中输入信息时要谨慎。大多数同步失败的原因都是没有正确输入数据。例如:使用的密码不是实际的管理员密码,或指定了错误的网络,这会使得 ICCT 无法(通过 RXA)连接镜像,无法移动支持软件包和扩展镜像时添加的其他软件包的二进制文件。指定过小的空间还会使得 OpenStack 无法创建镜像。

请务必输入产品密钥,然后单击 Done

图 20.
屏幕截图显示了要输入的软件包参数选项的值,突出显示了 Product Key 字段。
屏幕截图显示了要输入的软件包参数选项的值,突出显示了 Product Key 字段。

同步完成后,镜像的状态被设置为 “Synchronized(已同步)”。

图 21.
屏幕截图显示了镜像详细信息窗口,现在的状态显示为已同步
屏幕截图显示了镜像详细信息窗口,现在的状态显示为已同步

备注:正确配置主机名解析(这很重要),否则 ICCT 和已部署镜像之间的 RXA 连接会超时,并且同步失败。

故障排除:

如果同步失败,您可以:

  • 查看 ICCT 跟踪 (/drouter/ramdisk2/mnt/raid-volume/raid0/logs/trace/trace.log)。
  • 检查在 OpenStack 中是否已实际创建了实例。运行 nova list,确保镜像(名称为 ICCT <a number>)在输出中出现,并且其状态为 ACTIVE。
  • 检查是否可以通过远程桌面连接到该实例。
  • 如果镜像在 OpenStack 中的状态是 ERROR,则使用 nova show <image UUID> 来获取关于失败的更多详细信息。如果没有什么有意义的内容,那么可以认为 ICCT 的工作类似此命令: nova boot –flavor<flavor id> --image <image id> --net-id net-if=<net uuid> <a name of your choice>,其中 <flavor id> 是对应于您在同步时所选择的风格的风格 ID;<image id> 是在 Glance 中的基础镜像的 UUID(您可以使用 glance image-list 来检查它),<net uuid> 是对应于在同步时所选择的网络的网络 UUIS。(您可以使用 nova-manage network list 检查它。)如果此命令失败,则调查 var/log/nova/smartcloud.log 和/或 /root/.SCE31/logs/skc-0.log 找出根本原因。
  • 如果您使用的 SmartCloud Orchestrator 2.3 没有 fixpack 1,那么请注意网络连接的名称,该名称必须是 Local Area Connection,否则镜像将分配不到相关的 IP 地址。
    图 22.
    Network and Sharing Center 窗口的屏幕截图,突出显示了 Local Area 表示
    Network and Sharing Center 窗口的屏幕截图,突出显示了 Local Area 表示

    Fixpack 1 消除了这个限制。

在 ICCT 中捕获镜像

这是最后一个步骤,它实际上会生成一个新的镜像,以后您可以将它导入 SmartCloud Orchestrator,将它部署为模式的一部分。

通过 ICCT 捕获镜像会触发以下操作:

  • 将实例去个性化 — 也就是说,在实例中运行 /opt/ibm/ae/AE.sh –reset
  • 关闭实例。
  • 在模板中转换 VM
  • 在 OpenStack 中创建一个镜像。
  • 在 OpenStack 中将它的元数据关联到镜像。

所有这些操作都是自动完成的,不需要人工交互。对于捕获步骤,ICCT 只通过 iaasgateway 与 OpenStack 进行通信;不涉及其他组件。OpenStack 与 VMWare 进行通信(通过 SmartCloud 驱动程序和 SmartCloud Entry)。

要捕获镜像,只需单击 Capture

图 23.
屏幕截图显示了镜像详细信息窗口,突出显示了 Capture 按钮
屏幕截图显示了镜像详细信息窗口,突出显示了 Capture 按钮

捕获过程完成后,状态将显示为 completed(已完成)。

图 24.
屏幕截图显示了镜像详细信息窗口,突出显示了 Completed 状态
屏幕截图显示了镜像详细信息窗口,突出显示了 Completed 状态

在 SmartCloud Orchestrator 中的镜像随时可用:

  • 等待 VIL 发现和索引新创建的镜像。
  • 在 Workload Deployer 中注册镜像。
  • 创建一个虚拟系统模式。
  • 将新注册的镜像添加到模式。
  • 部署模式。

备注:在配置时,一定要指定符合 Windows 策略的有效产品密钥和管理员密码,避免 sysprep 失败。

结束语

现在您已知道如何为 Windows 环境创建一个 SmartCloud Orchestrator 兼容的镜像。我们为完成该过程所需的机制提供了指导,让您可以满足操作系统、虚拟机管理程序,以及虚拟机管理程序管理器的要求,在 Windows 环境中实现对各种镜像的部署。

您现在应该能够轻松、顺利地为 Windows 准备 SmartCloud Orchestrator 兼容镜像。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Java technology
ArticleID=979885
ArticleTitle=为 Windows 创建 IBM SmartCloud Orchestrator 兼容的镜像
publish-date=08052014