如何设置 Oracle Solaris 11 的自动安装服务

如题所述

如何设置 Oracle Solaris 11 的自动安装服务
各服务在安装过程中主要执行下列三个步骤:
为要安装的系统分配网络标识
联系自动安装服务,通过网络下载一个小的启动映像和如何供应系统的说明
通过网络供应系统,包括软件和系统配置
每个步骤可由位于同一物理或虚拟系统上的各服务来执行,或者服务也可以在单独的系统上运行。在本文中,下列服务位于同一系统上:
DHCP 服务
Automated Installer 服务
映像包管理系统 (IPS) 信息库服务
注:在不允许使用 DHCP 的环境中,可以用其他方法手动给系统提供网络标识,如在 SPARC 系统上通过在 OpenBoot PROM (OBP) 提示符下使用网络配置参数。也就是说可以不用 DHCP 服务器而通过其他方式为客户端系统提供网络标识也可以完成安装。如果软件分散在多个 IPS 信息库中,则还可以用分散在多个 IPS 信息库上的软件来安装系统。
在本文中,我们将安装两个 Oracle Solaris 11 系统:
一个系统用来托管用于自动安装其他系统的 Automated Installer 环境
另一个系统用于托管要安装的客户端系统
第一个系统的安装将以交互式方式执行,而第二个系统的安装将自动进行。

图 1. 由自动安装服务器安装的客户端系统
我们的第一个系统(图 1 左侧所示)将用于安装我们的安装环境,即运行 Automated Installer、IPS 和 DHCP 服务的环境。接着将创建并安装第二个系统(如图 1 右侧所示)来演示自动安装。
按照本文中的步骤操作后,您就配置好了两个系统,如图 1 所示。其中,客户端系统的供应将基于一个指定的安装配置文件,包括指定的软件和系统配置。
开始使用 Oracle Solaris 11
当您开始试用 Oracle Solaris 11 时,您很可能先以交互方式安装少量系统以便熟悉新特性,然后开始在操作系统上测试应用程序和管理过程。
Oracle Solaris 11 提供了两种交互式安装选项:
面向桌面的“LiveMedia”安装
面向服务器的基于文本的安装
注:初始安装之后,可以通过使用 Package Manager GUI 或 pkg 命令从网络软件包信息库添加其他软件组件。
在本文中,将使用基于文本的安装程序安装服务器系统。基于文本的安装程序已经包含有 Automated Installer 软件包,因此无需下载和安装 Automated Installer 软件包。
前提条件
完成下列前期准备工作:
选择两个系统(物理的或虚拟的),服务器至少要有 20 GB 存储空间。如果您使用虚拟机管理程序技术(如 Oracle VM VirtualBox)创建虚拟机,则假定您可以顺利地创建好虚拟机。
为两个系统选择好对应的架构(SPARC 或 x86),然后下载 Oracle Solaris 11 11/11 版的下列组件:
适用于所选架构(本示例中使用 x86)的基于文本的安装程序 ISO 映像
IPS 信息库(在下载页面上称为“Oracle Solaris 11 11/11 Repository Image”)
步骤
在本文的后续部分,我们将完成下列任务:
使用基于文本的安装程序以交互方式手动安装 Oracle Solaris 11 系统(包括必要的服务)并将其配置为自动安装服务器
为要自动安装的客户端系统创建安装服务
使用默认值实际安装客户端系统
在根据需要自定义某些默认参数后实际安装客户端
注:本文重点介绍快速设置好安装服务并使之运行所需的操作。有关创建 Oracle Solaris 自动安装服务器所涉及的所有步骤以及如何配置所有属性的完整讨论,请参见 Oracle Solaris 文档库中《安装 Oracle Solaris 11 系统》中的第 3 部分“使用安装服务器进行安装”。
搭建自动安装服务器环境
了解了我们要完成的目标之后,本节将介绍实现该目标的步骤(如图 2 所示),包括命令行示例。在这个步骤中,要时刻参考图 2,记住我们要实现的“宏观”目标。中间所示的客户端使用了图示的所有服务。
IPS 信息库和 DHCP 服务器可以位于安装服务器上,而在本例中正是如此。这就变得简单了,我们只需对基础架构进行很好的配置就可以了。

图 2. 自动安装服务
使用基于文本的安装程序创建自动安装服务器
我们先使用基于文本的安装方法安装服务器。
在安装过程中,您要设置语言首选项、时区和磁盘分区(本例中我们将选择使用整个磁盘)。然后将指定 root 口令、您的姓名、用户名、用户口令,并选择使用自动网络发现。
执行以下步骤开始安装过程:
首先,将下载的基于文本的安装程序的 ISO 映像烧录到介质上(DVD 或 USB 闪存驱动器),或者通过如 Oracle VM VirtualBox 这样的虚拟机管理程序软件挂载该映像(本例中将使用这种方式)。
从基于文本的安装程序映像启动,按 Esc 键显示菜单。高亮显示第一项,按 Enter 继续。

注:如果只是想直接从菜单默认项(第一项)启动,则无需按 Esc。

图 3. 选择从哪个操作系统映像启动
选择安装过程中要使用的键盘布局和语言,然后等待系统启动。

图 4. 选择键盘布局
选择 Install Oracle Solaris。

图 5. 选择安装 Oracle Solaris
在 Welcome 屏幕中,按 F2 继续。

图 6. Welcome 屏幕
选择磁盘,然后按 F2 继续。通常,使用默认值即可。
在下一屏幕上,选择 use whole disk,然后按 F2 继续。

图 7. 选择磁盘
使用系统配置工具以交互方式配置系统
因为在使用基于文本的安装程序时,没有预供应的系统配置文件,因此系统配置工具启动,提示输入信息。
执行下列步骤:
输入 aiserver 作为计算机名称,高亮显示 Manually 以手动配置网络。然后按 F2 继续。

注:在本示例中,我们未选择 Automatically,但如果您选择了这种方式,就不必输入任何网络信息了。系统会替您完成配置。

Figure 8.选择手动配置网络
输入与您的网络对应的网络设置,然后按 F2。

图 9. 指定网络设置
此时我们不准备配置 DNS,因此选择 Do not configure DNS,按 F2。

图 10. 选择不配置 DNS
此时我们不打算设置名称服务,因此按 F2。

图 11. 选择不设置名称服务
选择与您的位置相对应的时区区域,然后按 F2。

图 12. 选择时区区域
选择相应的日期和时间,然后按 F2。

图 13. 指定日期和时间
输入 root 口令、您的姓名、用户名和用户口令完成配置。然后按 F2。

图 14. 完成配置
确认所选配置正确后按 F2 应用设置。

在下一屏幕上,您将看到一个进度条,显示安装正在进行。安装完成时,屏幕上将显示安装过程摘要,并提示您重新启动系统。
重新启动系统。
系统重新启动之后,使用在配置过程中创建的用户凭证登录。
核实网络有静态 IP 地址
在继续之前,要核实网络有静态 IP 地址,如清单 1 所示。
root@aiserver:~# dladm show-link
LINK CLASS MTU STATE OVER
net0 phys 1500 up --

root@aiserver:~# ipadm show-addr
ADDROBJ TYPE STATE ADDR
lo0/v4 static ok 127.0.0.1/8
net0/v4 static ok 192.168.1.222/24
lo0/v6 static ok ::1/128
net0/v6 addrconf ok fe80::a00:27ff:fec0:3399/10

清单 1. 核实网络有静态 IP 地址
注:dladm 和 ipadm 是 Oracle Solaris 11 中的新命令,用于管理网络配置。
创建本地 IPS 信息库
默认情况下,所有 Oracle Solaris 11 安装都使用托管在 pkg.oracle.com 上的软件包信息库。但管理员经常因数据中心的网络限制、为了提高客户端安装的速度或只是为了更好地控制客户端系统能访问哪些软件而将该信息库复制到本地。在本文中,我们将使用您下载的 IPS 信息库映像构造一个本地 IPS 信息库。
首先,从 ISO 文件提取 IPS 信息库内容,并将这些内容放在服务器文件系统上的某个位置。为此,创建一个名为 IPS 的 ZFS 文件系统来托管信息库。

注意挂载 ISO 映像的路径,如下面的 rsync 命令中所示。由于 IPS 信息库映像有 6GB 多数据,因此 rsync 命令将会运行一段时间。
root@aiserver:~# zfs create rpool/IPS
root@aiserver:~# zfs set mountpoint=/IPS rpool/IPS
root@aiserver:~# mkdir /IPS/Solaris11
root@aiserver:~# rsync -a /media/SOL11REPO_175b_FULL /IPS/Solaris11/

现在已经创建好了 IPS 信息库,下面将其实例化为正确配置的服务。Service Management Facility 是 Oracle Solaris 用于执行此操作的工具,您可以使用下列命令实现此目的:

root@aiserver:~# svccfg -s application/pkg/server setprop \ pkg/inst_root=/IPS/Solaris11/SOL11REP_175b_FULL/repo

root@aiserver:~# svccfg -s application/pkg/server setprop pkg/readonly=true
root@aiserver:~# svcadm refresh application/pkg/server
root@aiserver:~# svcadm enable application/pkg/server

下一步,通过使用 pkg 命令将 IPS 客户端的 solaris 发布者指向同一主机(在本例中即其本身),将系统配置为使用本地配置的 IPS 信息库:

root@aiserver:~# pkg set-publisher -O http://192.168.1.222 solaris

使用 Automated Installer 创建安装服务
现在,您已拥有了一个具有 IPS 软件包信息库的系统,下面我们来创建一个 Automated Installer 服务的实例。
由于我们已经在本地创建了 Oracle Solaris 11 信息库映像并将其设置为 Automated Install 服务器本身的发布者,因此可以从pkg://install-image/solaris-auto-install 软件包创建安装服务,而不必再下载 .iso 文件。为此,执行下列步骤。
运行以下命令:

root@aiserver:~# installadm create-service -n s11x86service -i 192.168.1.210 -c 1

注:如果要创建 SPARC 服务,则要在上一命令中添加 -a sparc 参数。此外,-n 参数是可选的,这是因为 Automated Installer 足够智能,可判断出所要创建服务的架构并为其命名(如果未指定的话)。
此命令将创建一个名为 s11x86service 的服务,它为从 192.168.1.210 开始的 DHCP 客户端提供服务。-c 参数规定只应分配一个 IP 地址,对于本例这是可以的,因为在本示例中我们要做的就是只供应一个客户端系统。
当提示使用默认映像路径时,请回答 y 表示是。

创建安装服务将导致发生下列事情:
注:在本例中,我们要使用的是服务的第一个实例,因此在稍后引用对服务的修改时必须使用默认 服务名称。记住这一点,因为总是会有架构特定的默认安装服务。对首先创建的服务执行命令时,这些命令必须使用名称 default-i386 而不是 s11x86service。
在自动安装服务器上创建一个本地 DHCP 服务器实例。
创建一个默认安装服务(名为 default-i386)。
通过运行以下命令检查安装服务的状态:

root@aiserver:~# installadm list

使用默认清单和默认配置安装客户端
下一步是通过网络启动客户端系统,然后使用刚设置的 Automated Install 服务供应该系统。
首先,启动客户端系统。图 15 显示网络启动尝试(在 x86 系统上执行时):

图 15. 网络启动
然后您将看到一个 GRUB 菜单,上面有一个计时器,如图 16 所示。默认选择(“Text Installer and command line”选项)会高亮显示。
按向下箭头高亮显示第二个选项(执行自动安装),然后按 Enter。

我们之所以这样选择,是因为我们想防止系统在从网络意外启动时被自动重新安装。

图 16. GRUB 菜单
接下来是从自动安装服务器继续网络启动,如图 17 所示。客户端下载一个迷你启动(里面是成功运行安装程序所需的一些文件),识别自动安装清单在网络上的位置,获得该清单,然后对其进行处理,找到 IPS 信息库的地址,以便从那里下载映像。

图 17. 继续网络启动
从屏幕上可以看到,pkg.oracle.com 是 IPS 信息库的默认地址。但在本例中,我们已创建了本地 IPS 信息库 (default-i386),因此应使用本地 IPS 信息库来安装客户端系统,如图 18 所示。

图 18. 使用本地信息库而非默认信息库
屏幕上显示了一些重要信息,如用于安装的日志文件和 XML 清单的位置,如图 18 所示。
默认自动安装清单中硬配置的默认 IPS 信息库由 Oracle 托管,而 XML 代码 <origin name=> 指向 pkg.oracle.com。如果您的系统能够访问 Internet,则您的屏幕将显示安装成功。
但如果您的系统无法访问 Internet,则迷你启动中执行的 DNS 解析将失败,系统将无法访问位于 pkg.oracle.com 的默认 IPS 信息库,从而导致产生失败消息,如图 19 所示。

图 19. 失败消息
实际上,这不是什么大问题,因为会为大多数企业安装构建内部 IPS 信息库(正如我们前面所做的),大多数安装客户端会使用这些信息库而不是 安装每个 系统都要到 Internet 上从 pkg.oracle.com 下载软件包。我们在下一节将讲述如何修改默认清单来指向内部 IPS 信息库。
定制默认清单
为了修改安装客户端所使用的默认清单,我们将利用 installadm 命令。由于我们已经有了一个名为 s11x86service 的服务,所以只需要执行以下三个任务:
检查安装服务使用的清单。
修改清单。
将新修改的清单添加到安装服务。
通过以下过程完成这些任务:
首先,获取安装服务及与其关联的清单:

root@aiserver:~# installadm list -m

Service Name Manifest Status
------------ -------- ------
default-i386 orig_default Default
s11x86service orig_default Default

然后使用以下命令探测 s11x86service 及与其关联的默认清单。-m 参数显示与服务关联的清单的名称。由于我们希望将输出捕获到一个文件中,因此我们将命令的输出重定向。

root@aiserver:~# installadm export -n s11x86service -m orig_default > /var/tmp/orig_default.xml

由于我们要修改 IPS 信息库的位置,因此可以编辑文件并输入更改。
用不同的名称(例如 orig-default2.xml)创建文件的备份副本,然后编辑该副本。
找到如下所示的行:

<origin name="http://pkg.oracle.com/solaris/release"/>

用一行能反映本地 IPS 信息库的代码替换该行,例如:

<origin name="http://192.168.1.222/solaris"/>

现在已经修改了 XML 文件,下面需要使其生效。

通常(但本例不是 如此),当开始同时处理多个服务时,所用命令将如下所示:
root@aiserver:~# installadm update-manifest -n s11x86service -m orig_default \ -f
/var/tmp/orig_default2.xml

但在本例中,我们要使用的是服务的第一个实例,因此提到对服务的修改时必须使用默认 服务名称。因此,只需更改在以上命令中的服务名称,即将该名称更改为 default-i386,而非 s11x86service。
因此要执行的是以下命令:
root@aiserver:~# installadm update-manifest -n default-i386 -m orig_default \ -f /var/tmp/orig_default2.xml

使用定制的清单启动客户端
在重新启动之前,可能需要登录和浏览一下系统,查看日志文件,如安装日志文件 (/system/volatile/install_log) 或用于安装系统的自动安装清单 (/system/volatile/ai.xml)。
如果计划在重新启动系统之前登录,则默认的自动安装映像用户名为 root,口令为 solaris。
准备好时,启动客户端。客户端启动时,您将看到与先前所见类似的过程,但现在不会因 DNS 错误而停止。它会继续与本地 IPS 信息库联系以下载清单所列的软件包。当安装过程进行到如图 20 所示进度时,注意 origin 行中的地址:

图 20. 使用定制的清单启动客户端
还可以对自动安装清单进行许多其他类型的定制。实施这些更改的指导原则是遵循定制默认清单一节中所概述的过程并记住改成相应的安装服务名称。
随着安装的完成,它将显示如图 21 所示的输出。

图 21. 最终输出
使用配置文件增强安装
重新启动系统时,它将查找预供应的配置文件。如果找不到,它将调用系统配置工具。我们在本文前面已经介绍过系统配置工具是如何工作的了。
为了使安装过程完全自动化,可以供应一个配置文件,使之作为安装服务的一部分。为此,首先需要创建一个系统配置文件,其包括所有最基本的配置数据。然后将此配置文件添加到安装服务,供服务的客户端使用。
使用以下方法之一创建系统配置文件:
使用 sysconfig(1M) 工具。语法可能下面这样:

root@aiserver:~# sysconfig create-profile -o sc.xml

该命令将运行系统配置工具,以问答的方式引导您完成相关项目的填充。完成之后,您可以通过针对安装服务运行输出的配置文件并指定配置文件名来验证该配置文件,例如:
root@aiserver:~# installadm validate -n default-i386 -P sc.xml

注:要查看更多示例,请参见“如何使用 sysconfig 命令配置 Oracle Solaris 11”。
此外,还可以使用随安装服务提供的示例配置文件。在/export/auto_install/s11x86service/auto_install/sc_profiles 目录中,有一个名为 sc_sample.xml 的文件。查看此文本文件,可以看到它定义了一些参数,如用户名和口令、root 角色的口令、键盘映射、时区、DNS 配置和网络配置。如果要更改此文件,可以将其复制到不同位置,然后将其与安装服务关联。在本例中,我们不需要做任何更改,因此您可以接受系统默认的配置参数并跳到下一步。
第 2 步是将系统配置文件添加到安装服务。我们需要为配置文件命名,并且需要记住该文件名。由于我们要将原始文件复制到如/var/tmp,然后编辑该副本,为此执行下列命令:

root@aiserver:~# cp /export/auto_install/s11x86service/auto_install/sc_profiles/sc_sample.xml \ /var/tmp/sc_client.xml

下一步,使用安装服务实例化配置文件。在本例中,使用以下语法执行此操作:

root@aiserver:~# installadm create-profile -n default-i386 -f /var/tmp/sc_client.xml \ -p sc_client

现在通过运行以下命令确认安装服务包含一个与其关联的定制系统配置文件:

root@aiserver:~# installadm list -p

从网络重新启动客户端时,您将见证完整的无需人工参与的系统安装和配置过程。然后可以使用系统配置文件中配置的凭证(如用户名jack(口令 jack))登录;如有必要,还可以采用 root 角色(口令 solaris)提升权限。
总结
在本文中,您了解了如何使用 Automated Installer 创建、安装、启动和配置系统。并了解了可以如何修改自动安装清单以及可以如何让清单自动为您生效。还了解了如何添加本地 IPS 信息库和为环境中的所有内置系统托管它,从而避免使用需要保护的与外部系统的可路由连接。
Automated Installer 的最大优点之一是其与 Oracle Solaris 基础架构的其余部分(如映像包管理系统、系统配置工具和 ZFS 文件系统)的集成度。这种集成提供了自动进行大部分供应的能力,以便安装服务最终能够在使系统更接近于“应用程序就绪 (application-ready)”状态方面做得更多。这是通过使用一个特定的系统配置文件和一套定义良好的软件包和服务安装系统完成的。它可以提供非常快速、一致、可伸缩的供应体验。
此外,开始部署带 Oracle Solaris 区域的系统时,Automated Installer 能够创建多个区域,这些区域可以使用安装 Oracle Solaris 的机制自动安装。(有关通过 Automated Installer 供应区域这一主题的更多信息,请参见 Oracle Solaris 11 技术聚焦 Web 页面。)
我已计划再写一篇文章来介绍如何通过自动安装过程将这一功能扩展到供应 Oracle Solaris 区域。
温馨提示:答案为网友推荐,仅供参考