上一主题: 分发安装

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

Ubuntu Linux 分发的组件安装

文件
兼容性

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

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

如果将使用 APK 提供的内核和 initrd 文件,则映像必须与 ext3 文件系统在一起。

准备映像

APK 的 Linux 版本支持 VMWare 和 XEN 管理程序的 HVM 启动。 CA AppLogic 提供的 PVM 内核是可选的。

与 Red Hat 兼容的操作系统

如果 CA 3Tera AppLogic 提供的内核在运行 APK 安装之前拆包,它将被自动配置为在组件以 PVM 模式启动时启动的内核-为此将创建新的 boot/grub/menu.lst 文件。 安装的操作系统提供的内核将用于 HVM 启动(与 Red Hat 兼容的操作系统的默认操作系统 grub 配置文件是 boot/grub/grub.conf)。

其他基于 Linux 的操作系统

如果 CA 3Tera AppLogic 提供的内核在安装 APK 之前拆包,它将设置为 boot/grub/menu.lst 中的启动内核。 原始的 GRUB 配置文件将备份为 boot/grub/menu.lst.apkbk。 组件创建者可重命名保存的备份,并重新配置 GRUB 引导加载程序,使其将备选文件名用作配置文件,以便在组件以 HVM 模式启动时选取该配置文件。 在以 PV 模式启动时,始终会使用 boot/grub/menu.lst。

如果不拆包 CA 3Tera AppLogic 提供的内核就执行 APK 安装,GRUB 配置将保持不变。 假设组件将以 HVM 模式运行,或操作系统提供的内核能够以 XEN PV 模式启动(许多较新的操作系统 distro 提供可以默认安装和配置的 XEN-PV 内核内部版本)。

下列步骤可能有所不同,具体取决于操作系统最初是如何安装的。 它们不会由 APK 设置脚本执行,而是会留待管理员处理,因为如果在实际系统上(而不是在正在准备的映像上)被意外完成的话,其中一些操作可能具有攻击性,甚至可能具有破坏性-因此在自动化脚本中运行它们可能是不可取的。 跳过任何不适当的步骤。

准备映像

  1. 确认磁盘映像是 ext3 文件系统。 如果操作系统安装为 ext2,请执行以下命令将映像转换为 ext3。
    运行 tune2fs -j
    

    要使用 ext2(或 ext3 之外的任何文件系统),必须重新构建 APK 附带的 initrd 文件。

  2. 编辑网络配置文件 (/etc/network/interfaces) 并删除 lo 以外的所有接口。
  3. 编辑 etc/fstab 文件,并将根设备的名称更改为:
    /dev/hda1
    

    如果安装程序发现根设备是由标签或 UUID 指定的,还将进行验证并显示警告。

  4. (可选)删除内核程序包,并忽略依赖项(以节省启动卷上的磁盘空间)。
  5. 确认 iproute 程序包安装在旧版的 Debian 和 Ubuntu distro 中。
  6. 卸载不再使用的任何操作系统服务。
  7. (64 位分发)安装 libc6-i386 程序包及其依赖项 (apt-get install libc6-i386)。 APK 二进制文件是 32 位,它们不会在没有 32 位库的情况下运行。

    注意:如果您需要运行除了 APK 中那些 32 位可执行文件之外的其他 32 位可执行文件,请考虑安装 ia32-libs 元程序包。 该元程序包将安装所有包含 32 位库的程序包。

重要信息! 卸载或禁用 NetworkManager。 此程序会干扰 CA 3Tera AppLogic 网络配置。 例外:如果使用图形用户界面设置 VPS 服务器,可以使用 Network Manager 小程序执行手动 IP 配置(但必须先在 CA 3Tera AppLogic 中启动新的操作系统安装,再以手动模式设置它)。

注意:在清理之后,卷可能会缩小,从而为组件生成一个较小的启动卷映像,但是请确认至少剩余 10-15MB 的可用空间,从而有空间安装 XEN DomU 内核和 APK,并为日志文件、临时文件等留出一些净空。

Initrd 文件提示

APK 使用以 Red Hat nash 引导程序创建的简单初始 ramdisk 映像 (initrd)。 它不会加载任何核心模块,其唯一目的是为 udev 程序设置基于 ramdisk 的 /dev/ 目录并填充它。

它在启动基于 Ubuntu 的虚拟组件时运行良好,并且不需要为组件创建 ubuntu 样式的 initrd 映像。 Ubuntu 6/7 initrd 映像更庞大并且具有在大多数组件中并不必要的更高级功能。 如有需要,可以创建和使用特定于 Ubuntu 的 initrd 文件。 只需编辑 /boot/grub/menu.lst 文件,使它指向备用的 initrd 映像。 请注意,如果您将来重新安装 APK,必须重新应用此更改。

安装 APK

此处提供的安装说明假定:正在通过安装干净的操作系统、将其关闭再创建启动磁盘映像,或者使用新版本的 APK 升级现有 CA 3Tera AppLogic 组件,在一个并未实际运行、但已提前准备好的操作系统映像上执行 APK 安装。

也可以进行实际安装(在运行的操作系统上),并且可以与 CA 3Tera AppLogic Service Pack 2.4.5 及更高版本中提供的 iso2class 实用工具一起使用。 要安装在实际系统上,请遵循以下步骤,但是使用 / 作为所有操作的当前目录。 最好是在 XEN 虚拟机中完成这一操作(例如:使用 iso2class)。 如果 APK 仅安装有 CA 3Tera AppLogic XEN PV 内核,将导致计算机不可启动。

将操作系统映像挂接到您的文件 system.gm 中。 如果映像已在 CA 3Tera AppLogic 网格上安装为卷,就可以使用 vol manage 命令访问此映像。 将 APK 文件复制到映像本身的 /tmp 目录或挂接映像的主机上的临时目录。 如果映像已位于网格上,使用 Web 界面将文件复制到映像本身。 (如果不在网格上执行这一操作:请注意必须以根用户身份完成下列操作。)

安装 wget

  1. 将 DomU 内核和 APK 二进制存档拆包到映像的根目录中。 以下是要执行的命令的一个示例:
    cd /mnt/vol 
    tar -zxf tmp/domu-linux-2.6.18.8.i386.tar.gz 
    tar -zxf tmp/apk-2.0.14-ub.tar.gz 
    

    设置脚本将拆包到 ./tmp 目录中。

    重要信息! 请使用与您的 distro 体系结构相对应的 domu-linux 存档。 无法在 64 位 distro 上安装 32 位内核。

  2. 运行设置脚本:
    tmp/apk-install 
    

    注意:APK 提供的 init 脚本不再支持安装在 /appliance 内的组件特定脚本。 如果有这样的脚本存在,则安装脚本将停止并提示用户输入信息。 如果没有在此目录中进行组件特定的自定义(即,其内容与在 LUX 上找到的相同或相似),则可以放心地将其删除。 现在由 APK 提供所有用于在那里安装的标准功能。 否则,单击“保存到 /tmp”,并继续安装。

    现在可删除设置脚本和 tar 文件(如果它们已复制到映像本身):

    rm tmp/apk-install =  =tmp/domu-linux-*.tar.gz = tmp/apk-*.tar.gz=

  3. 取消挂接映像并将其导入您的 CA 3Tera AppLogic 网格(或只需关闭 vol manage shell,如果此映像已经位于您的网格上并且是使用 vol manage 编辑的)。
  4. 如果映像属于现有的组件,请执行以下操作:
    1. 编辑类(使用 GUI 编辑器)并删除内核和 initrd 文件名。
    2. 将配置模式设置为 dhcp。
自定义组件行为-快速参考

有关完整的详细信息,请参阅《用户指南》。

组件 Init 配置

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

APK_AUTH_KEY_PATH

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

APK_CONFIG_FILES

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

重要信息! /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

重要信息! 系统目录中的一些组件使用位于 /appliance 中的自定义脚本来初始化服务。 这不再受支持。 安装 APK 时此目录会被删除,以保持根 目录结构简洁且符合文件系统层次结构标准。 可以将这些脚本中的代码移动到 /etc/sysconfig/applogic_appliance,以模仿旧的行为,但这不是启动后检查文件的意图,所以不建议这么做。 相反,已安装的服务应当有自己的 init 脚本,并且通常应当完全能在 CA 3Tera AppLogic 以外工作。