上一主题: Linux 组件安装

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


RedHat 和 CentOS Linux 分发的组件工具包安装
文件
兼容性

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

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

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

准备映像

重要信息! APK 的 Linux 版本支持 VMWare 和 XEN Hypervisor 的 HVM 启动。 CA AppLogic 提供的 PVM 内核是可选的。

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

准备映像

  1. 确认磁盘映像是 ext3 文件系统。

    如果操作系统安装为 ext2,请执行以下命令将映像转换为 ext3。

    tune2fs -j
    

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

  2. 执行以下命令删除网络配置文件:
    rm /etc/sysconfig/network-scripts/ifcfg-eth* 
    
  3. 编辑 etc/fstab 文件,并将根设备的名称更改为 /dev/hda1。

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

  4. 执行以下命令删除内核程序包(如果您构建的是要在硬件模拟模式下运行的映像,请跳过此步骤)。
    rpm --root path/to/image -e --nodeps kernel
    

    或者,如果在 vol manage shell 中执行这一操作:

    chroot  path/to/image rpm -e --nodeps kernel 
    
  5. 卸载不再使用的任何操作系统服务。

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

安装 APK

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

也可以进行实际安装(在运行的操作系统上),并且可以与 CA AppLogic Service Pack 2.4.5 及更高版本中提供的 iso2class 实用工具一起使用。 不过请注意:iso2class 将为您创建 HVM 组件,且 APK 不会以 HVM 模式工作;必须在安装 APK 后将组件更改为并行虚拟化模式。 要安装在实际系统上,请遵循以下步骤,但是使用 / 作为所有操作的当前目录。 最好是在 XEN 虚拟机中完成这一操作(例如:使用 iso2class),在裸机系统上进行这一操作将导致计算机不可启动。

安装 APK

  1. 将操作系统映像挂接到您的文件系统中。

    如果映像已在 CA AppLogic 网格上安装为卷,就可以使用 vol manage 命令访问此映像。

  2. 将 APK 文件复制到映像本身的 /tmp 目录或挂接映像的主机上的临时目录。 如果映像已位于网格上,使用 Web 界面将文件复制到映像本身。 (如果不在网格上执行这一操作:请注意必须以根用户身份完成下列操作。)

重要信息:APK 的操作需要 dhclient 程序包。 默认情况下它不会安装到 CentOS5 上。 安装 APK 前在您的映像上安装 dhclient 程序包。

使用 chroot,dhclient RPM 可以安装到非实际的操作系统映像上(例如:挂接到 vol manage shell 中)。 RPM 应该可用于任何 CentOS 镜像站点(例如: http://mirror.stanford.edu/yum/pub/centos/5.1/os/i386/CentOS/dhclient-3.0.5-7.el5.i386.rpm)

安装 dhclient 程序包

  1. 将 DomU 内核和 APK 二进制存档拆包到映像的根目录中。 以下是要执行的命令的一个示例:
    cd /mnt/vol 
    tar -zxf tmp/domu-linux-2.6.18.8.386.tar.gz # ** 请看下面的备注! 
    tar -zxf tmp/apk-2.0.14-rh.tar.gz 
    

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

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

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

    现在可通过执行以下命令删除设置脚本和 tar 文件(如果它们已复制到映像本身):

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

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

  3. 取消映像挂接并将其导入您的 CA 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_EXTIFC

启用外部接口的自动 IP 配置(如果应用中已提供)。 将该值设置为 no 可禁用外部接口的 IP 配置。 该值还会导致某种 APK 行为,例如不支持先前版本的外部接口配置。

默认值:

重要信息! 如果安装新 CA AppLogic 3.5 APK 的组件具有在 3.5 之前版本网格上运行的外部接口,请设置 APK_CONFIG_EXTIFC=no。 这些组件使用多个属性配置外部网络。 该设置对没有外部接口的组件不起作用。

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 AppLogic 以外工作。