上一主题: RedHat 和 CentOS Linux 分发的组件工具包安装

下一主题: IIS03W/IIS03S/IIS03E/IIS03DC:安装参考

Windows 的组件工具包安装

对于 Windows 2003 Server(32/64 位)和 Windows 2008 Server(32 位和 64 位)。

文件
兼容性

apk-*-windows 版本与下列操作系统 distro 兼容:

要安装 APK,您需要下面两项之一:

准备映像

下列步骤可能有所不同,具体取决于操作系统最初是如何安装的。 它们不会由 APK 设置脚本执行,而是留待操作员处理。 这些步骤中,有一些需要访问 GUI,而且可能无法使用自动化脚本来完成,其他步骤则可能具有攻击性,甚至可能具有破坏性-因此在自动化脚本中运行它们是不可取的。

跳过任何不适当的步骤。

  1. 为了实现 VNC 或远程桌面上的最佳操作,禁用所有桌面体验视觉效果(动画菜单、阴影、全窗口拖动等)。
  2. 禁用屏幕保护程序和屏幕锁定。
  3. 为管理员帐户设置强密码。
  4. 卸载/禁用不再使用的任何操作系统服务(例如“浏览器”服务和“服务器”服务)。
  5. 安装所有 Windows Update 即时修正(将需要多次重新启动!)。 注意:未能在 Windows 2008 上安装更新可能导致 APK 失败。
  6. 在将操作系统放在网络上供访问之前,需要采取任何其他措施来保护操作系统的安全性。
  7. 启用远程管理(使用终端服务)-注意:这不同于将操作系统配置为终端服务器(后者需要客户端上拥有付费许可,并且只有当这是预期的安装用途时才这么做)。
  8. 使用可公开访问的 IP 地址配置网络;其余步骤现在可使用远程桌面来执行。
  9. 安装 CygWin (www.cygwin.com)。 以管理员身份执行安装,然后单击“为所有用户安装”。 至少将以下内容添加到一组基本的程序包中:ssh 服务器。 切勿自己配置 sshd 服务器,请允许 APK 配置 sshd 服务器。
  10. 确认安装了下列 GNU 实用工具(应该是在基础程序包中,请重新检查,如有遗漏,请添加):bash、wget、gzip 和 tar。
  11. 如有需要,安装 XEN 感知(并行虚拟)设备驱动程序。 如果使用 PV 驱动程序,建议在安装 PV 驱动程序之后、安装 APK 之前重新启动 Windows,确认 PV 驱动程序运行正常。

注意:最小的 Windows 2003 安装需要 1GB 以上的磁盘空间。 Windows 2008 的完全安装需要将近 8GB 的磁盘空间(服务器核心需要的较少)。 留出足够空间安装 CygWin 和 Windows Update 即时修正(请注意 Windows 将保留由即时修正代替的二进制文件的所有先前版本)。 请确认留出至少 5-10MB 的可用空间,以便有空间安装 APK,并为日志文件、临时文件等留出一些净空。

安装 APK

安装必须在实际系统上执行。 用于 Windows 的 APK 无法安装到并非由操作系统实际运行的已挂接操作系统磁盘映像中。 为获得最佳效果,使用配置了外部网络访问的操作系统映像,再使用您最喜爱的操作系统中的远程桌面客户端(例如:rdesktop)登录到此映像。 比起使用 VNC 来查看 HVM 模拟视频屏幕,这种方法能提供更好的交互式操作。

  1. 以管理员身份登录,再打开 CygWin shell。
  2. 将 APK 文件复制到 /tmp 目录。
  3. 更改为 CygWin 根目录 (/),再将 APK 二进制存档拆包到根目录中,例如:
    cd / gtar -zxf tmp/apk-2.0.10-windows.tar.gz 
    
  4. 运行安装脚本:
    bash tmp/apk-install 
    

完成过程中必须未出现任何错误消息。 如果显示任何错误消息,请检查上述准备步骤并重试此过程。

注意:多次重复运行安装脚本是安全的,不会对安装造成任何破坏。

可通过执行以下操作删除设置脚本和 APK tar 文件:

  1. 执行以下命令
    rm tmp/apk-install  tmp/apk-*.tar.gz 
    
  2. 关闭操作系统。

如果映像准备是在 CA 3Tera AppLogic 网格之外完成的,则映像可立即复制到网格中并用于创建组件。

如果映像在网格上创建为新的操作系统安装:通过取消选中“现场工程代码”复选框禁用未受管理的组件选项。

确认设备架构设置为 hda/hdb/hdc/hdd(在编辑器中:修改边界、常规、虚拟模式、高级)。

重要的 Windows 特定信息

文件名

除非另有说明,否则本文档中的名称位于 CygWin 文件命名空间中,这是效仿 Posix 系统。

注意:这些名称无法与任何非 Cygwin 实用工具一起使用。 这包括 APK 二进制本身(vme 和 udlparse),以及所有固有的 Windows 命令行工具。 大多数 Cygwin 实用工具将接受 CygWin 名称(posix 样式)或 Windows 名称(例如:C:\path\),但有些工具例外,这些工具考虑那些为了表示 computername:filename 之意而包含 ":" 的字符串,例如:scp、rsync,特别是 tar。 可以使用 --force-local 选项强制后者接受 Windows 名称。

要在 Windows 和 Cygwin 命名空间之间转换文件名,请使用 cygpath。

windowspath=`cygpath -w /var/applogic/appliance.desc`

磁盘挂接

指定磁盘的挂接点时,如有需要,请使用下列名称:

X-单独一个字母(A、B、D-Z)将使磁盘可访问,其作用就像 X:\ 一样。

X:\-与 X 一样

C:\dir1\[dir2\...]-允许在启动文件系统的给定子目录中访问磁盘。 如果此目录不存在,将创建它。

注意:不建议允许 APK 创建该目录,因为默认目录权限可能和您希望的不同。

如果磁盘没有类描述符中指定的挂接点,将导致 APK 忽略该磁盘并将其挂接分配按照原样保留在 Windows 中。 在这种情况下,从 Windows 本身手动为此磁盘完成的任何挂接点分配是持久的,而且优先于通过类描述符实现的该挂接点向其他磁盘的分配(后一种分配将没有任何作用,并且会将磁盘保留为取消挂接状态)。 例如:如果您已经在类编辑器中指定了以下内容:

disk 0 ->(启动)
disk 1 ->(未分配挂接)
disk 2 -> Z:\ 

然后您再登录到组件,从 disk2 中删除 Z 再将其分配给 disk1,那么重新启动后 Z 将保持分配给 disk1,而类描述符中的 disk2 -> Z 分配将不会生效。 Disk2 不会被挂接到任何位置,直到 Z 从 disk1 中删除,或为 disk2 设置了除 Z 以外的其他内容。

C:\ 会保留并且无法指定为任何磁盘的挂接点。 启动磁盘的任何分配都会被忽略,并且它将被报告为挂接在组件实例描述符中的 C:\ 上。

不要将挂接路径与任何除 C: 以外的驱动器上的子目录一起使用。 否则可能导致您的挂接无法使用,因为它依赖于磁盘的挂接顺序。

切记,Windows 不会拒绝挂接未格式化的磁盘(或使用 Windows 不理解的文件系统格式化的磁盘)。 APK 分配挂接时完全不会有任何错误或警告,但尝试访问该挂接点和它的任何子路径时将会失败。

用户名

APK 安装脚本将使管理员的 CygWin 别名变为 root。 因此,root 将是任何 CygWin 二进制看到的用户名,并将在 CygWin shell 以及目录列表中显示为当前用户名。 该设置允许使用远程 shell 命令 (3t ssh component-name) 访问组件。

请注意,CygWin 用户名和 Windows 用户名之间的映射不是自动的,此映射在 /etc/passwd 和 /etc/group 文件中描述,这两个文件在添加/删除 Windows 用户时不会自动更新。 CygWin 包括维护 /etc/passwd 和 /etc/group 文件的实用工具。 使用这些实用工具时,请务必为 APK 创建的 root 保留特殊的映射,否则从网格进行的 ssh 登录将停止运行。

自定义组件行为-快速参考

组件 Init 配置

如果文件 /etc/sysconfig/applogic_init 存在,APK init 脚本会将其读取为 shell include 脚本(使用 "." 命令)。 下列参数可在 /etc/sysconfig/applogic_init 中定义:

APK_AUTH_KEY_PATH

存储组件 SSH 访问公钥的位置。 3t comp ssh 命令使用匹配的私钥连接到组件。 默认值是 /home/Administrator/.ssh。 设置为空字符串的密钥不会存储在任何位置。
如果指定的位置是现有的文件,将保留其所有者和权限。 否则将使用所有者 root 创建此文件。

APK_CONFIG_FILES

要应用组件属性的文件的列表(以空格分隔)。 这将替换在 GUI 的“修改边界”对话框中指定的配置文件列表(对于不使用 APK 的组件)。 配有 APK 的组件将使用在此组件上找到的 APK_CONFIG_FILES 列表,而不是在 GUI 中指定的列表。
重要信息:如果在现有组件中安装 APK-请使用编辑器 GUI 检查类描述符中是否存在“查看类/修改边界”对话框“配置文件”选项卡中找到的配置文件。 将文件列表传输到组件中的 APK_CONFIG_FILES 设置。

APK_HOSTNAME_UPDATE

将该参数设置为 No 会禁用将主机名(在 Windows 中也称为计算机名)更改为从组件实例名称衍生出的字符串这一默认行为。
禁用自动的主机名更改对于“虚拟私有/专用服务器”组件可能是合乎需要的,在这种情况下,由组件所有者维护其配置的各个方面,包括主机名。
注意:如果 APK_HOSTNAME_UPDATE 被设置为 Yes(或根本没有设置),主机名更改将触发操作系统的重新启动。 这将在首次启动时发生,或每当组件的实例名更改时它都会重新启动。 因为此重新启动在 APK 报告成功启动之前完成,所以观察到的效果就是组件似乎花了两倍的时间来启动。 如果 APK 触发了重新启动,操作员将在启动进度详细信息中看到进入维护模式的消息。

APK_AUTOMOUNT

将该参数设置为 No 将禁用驱动器盘符或挂接点的自动分配,如组件类中所指定的那样。 这也会禁用 APK 中的所有卷状态检查。 重要提示:如果组件配备了 CD-ROM 设备(通过将 ISO 格式化映像分配为自己的虚拟磁盘之一),就必须使用该选项。 APK 自动挂接无法在此特殊组合下工作,并将导致组件启动失败。

重要信息:/etc/sysconfig/applogic_init 文件是在检索或应用任何配置数据之前执行的,因此脚本不能依赖于组件的任何配置文件的存在。 不要使用此文件来执行初始化代码,而只能将其用于以上定义的配置变量。

示例 /etc/sysconfig/applogic_init:

APK_CONFIG_FILES=/etc/httpd/conf.d/myconfig.conf
APK_AUTH_KEY_PATH=/root/.ssh/alternate_keys 

组件启动后检查

如果文件 /etc/sysconfig/applogic_appliance 存在,APK late init 脚本会在组件上的其他所有服务都启动后将该文件读取为 shell include 脚本(使用 "." 命令)。 脚本的返回状态表示该组件将被视为启动成功还是失败。 如果脚本将消息输出至 stderr 并返回错误,则此消息的最后一行将被用作发送至控制器的错误消息。

Web 服务器组件的启动后检查文件示例-确认服务器已启动并响应主页的 HTTP GET:

if ! wget -q -O /dev/null http://localhost/ ; then
echo "start failed - Web server is not responding" >&2
return 1
fi
return 0 

避免将 /etc/sysconfig/applogic_appliance 用作启动脚本来启动组件服务。 这么做将防止您的设置在安装有 APK 的组件之外使用或测试。

重要信息:Windows 特定提示:和 APK 所支持的其他平台不同,applogic_appliance 启动后检查是在 Windows SCM(service control manager,服务控制管理器)加载所有服务之后启动的-而不是在它们完成初始化时启动的。 在 Windows 2003/2008 中,一些服务是由其他服务使用 API 调用启动的,而不是作为显式相关性启动的(因此无法简单地以等待自动服务加载完成事件来解释),所以使情况愈加复杂。 因此,任何添加到 /etc/sysconfig/applogic_appliance 文件的“启动检查”代码都必须考虑这一点,并等待自己需要监控的任何服务(如果它们还未初始化的话)。