上一主题: Ubuntu Linux 分发的组件安装

下一主题: 组件工具包

Solaris 组件安装

文件
兼容性

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

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

准备映像

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

跳过任何不适当的步骤。

注意:清除之后,卷可能收缩,从而为组件生成更小的启动卷映像,但是,请确保至少留下 5-10MB 可用空间用于安装  APK,也为日志文件、临时文件等留出一些净空。

安装 APK

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

将 APK 二进制存档解压到映像的根目录中,例如:

cd /mnt/vol
gtar -zxf tmp/apk-2.0.1-solaris.tar.gz 

安装在准备作为 并行虚拟化组件运行的 OpenSolaris 映像上 (`uname -i` == i86xpv)

bash tmp/apk-install pvm 

如果安装在将作为硬件辅助虚拟机 (HVM) 运行的 Solaris 10 或 OpenSolaris 映像上:

bash tmp/apk-install 

如果使用“pvm”选项运行,并且目标映像有并行虚拟化内核,脚本将替换启动配置文件。 旧文件将保存为 boot/grub/menu.lst.apksave。 如果实际上不需要该文件(并将该组件作为 HVM 运行),则手动还原该文件。 如果没有并行虚拟化内核,但是指定了“pvm”,安装脚本将显示警告;安装将不会中止,并且映像仍然可用作 HVM 组件。

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

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

取消挂接映像,并将其导入 AppLogic 网格(如果映像已经在网格上,并使用 vol manage 进行过编辑,则只需关闭 vol manage shell)。

如果映像是现有组件的映像:编辑类(使用 GUI 编辑器),并删除内核和 initrd 文件名。 将配置模式设置为 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 以外工作。