作者:Isaac Rozenfeld
2012 年 5 月发布
过程概述
|
本文介绍如何创建一个原始系统来托管 Oracle Solaris 11 安装服务(称为 Automated Installer 服务器)、如何配置这些安装服务以及如何向客户端系统供应这些服务。
Automated Installer 是 Oracle Solaris 11 中引入的新软件部署架构的一部分。它简化了安装,提供了更大的供应灵活性,并自动确保软件包的依赖关系。要深入了解此软件部署架构的特性和优点,请参见 Oracle Solaris 11 的简化安装和云供应。
使用 Oracle Solaris Automated Installer (AI),可以创建和管理服务以便通过网络自动安装 Oracle Solaris 11 操作系统。
各服务在安装过程中主要执行下列三个步骤:
每个步骤可由位于同一物理或虚拟系统上的各服务来执行,或者服务也可以在单独的系统上运行。在本文中,下列服务位于同一系统上:
注:在不允许使用 DHCP 的环境中,可以用其他方法手动给系统提供网络标识,如在 SPARC 系统上通过在 OpenBoot PROM (OBP) 提示符下使用网络配置参数。也就是说可以不用 DHCP 服务器而通过其他方式为客户端系统提供网络标识也可以完成安装。如果软件分散在多个 IPS 信息库中,则还可以用分散在多个 IPS 信息库上的软件来安装系统。
在本文中,我们将安装两个 Oracle Solaris 11 系统:
第一个系统的安装将以交互式方式执行,而第二个系统的安装将自动进行。
图 1. 由自动安装服务器安装的客户端系统
我们的第一个系统(图 1 左侧所示)将用于安装我们的安装环境,即运行 Automated Installer、IPS 和 DHCP 服务的环境。接着将创建并安装第二个系统(如图 1 右侧所示)来演示自动安装。
按照本文中的步骤操作后,您就配置好了两个系统,如图 1 所示。其中,客户端系统的供应将基于一个指定的安装配置文件,包括指定的软件和系统配置。
当您开始试用 Oracle Solaris 11 时,您很可能先以交互方式安装少量系统以便熟悉新特性,然后开始在操作系统上测试应用程序和管理过程。
Oracle Solaris 11 提供了两种交互式安装选项:
注:初始安装之后,可以通过使用 Package Manager GUI 或 pkg
命令从网络软件包信息库添加其他软件组件。
在本文中,将使用基于文本的安装程序安装服务器系统。基于文本的安装程序已经包含有 Automated Installer 软件包,因此无需下载和安装 Automated Installer 软件包。
完成下列前期准备工作:
在本文的后续部分,我们将完成下列任务:
注:本文重点介绍快速设置好安装服务并使之运行所需的操作。有关创建 Oracle Solaris 自动安装服务器所涉及的所有步骤以及如何配置所有属性的完整讨论,请参见 Oracle Solaris 文档库中《安装 Oracle Solaris 11 系统》中的第 3 部分“使用安装服务器进行安装”。
了解了我们要完成的目标之后,本节将介绍实现该目标的步骤(如图 2 所示),包括命令行示例。在这个步骤中,要时刻参考图 2,记住我们要实现的“宏观”目标。中间所示的客户端使用了图示的所有服务。
IPS 信息库和 DHCP 服务器可以位于安装服务器上,而在本例中正是如此。这就变得简单了,我们只需对基础架构进行很好的配置就可以了。图 2. 自动安装服务
我们先使用基于文本的安装方法安装服务器。
在安装过程中,您要设置语言首选项、时区和磁盘分区(本例中我们将选择使用整个磁盘)。然后将指定 root 口令、您的姓名、用户名、用户口令,并选择使用自动网络发现。
执行以下步骤开始安装过程:
注:如果只是想直接从菜单默认项(第一项)启动,则无需按 Esc。
图 3. 选择从哪个操作系统映像启动
图 4. 选择键盘布局
图 5. 选择安装 Oracle Solaris
图 6. Welcome 屏幕
图 7. 选择磁盘
因为在使用基于文本的安装程序时,没有预供应的系统配置文件,因此系统配置工具启动,提示输入信息。
执行下列步骤:
aiserver
作为计算机名称,高亮显示 Manually 以手动配置网络。然后按 F2 继续。注:在本示例中,我们未选择 Automatically,但如果您选择了这种方式,就不必输入任何网络信息了。系统会替您完成配置。
Figure 8.选择手动配置网络
图 9. 指定网络设置
图 10. 选择不配置 DNS
图 11. 选择不设置名称服务
图 12. 选择时区区域
图 13. 指定日期和时间
图 14. 完成配置
在下一屏幕上,您将看到一个进度条,显示安装正在进行。安装完成时,屏幕上将显示安装过程摘要,并提示您重新启动系统。
在继续之前,要核实网络有静态 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 中的新命令,用于管理网络配置。
默认情况下,所有 Oracle Solaris 11 安装都使用托管在 pkg.oracle.com 上的软件包信息库。但管理员经常因数据中心的网络限制、为了提高客户端安装的速度或只是为了更好地控制客户端系统能访问哪些软件而将该信息库复制到本地。在本文中,我们将使用您下载的 IPS 信息库映像构造一个本地 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/
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
现在,您已拥有了一个具有 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 地址,对于本例这是可以的,因为在本示例中我们要做的就是只供应一个客户端系统。
创建安装服务将导致发生下列事情:
default-i386
)。注:在本例中,我们要使用的是服务的第一个实例,因此在稍后引用对服务的修改时必须使用默认 服务名称。记住这一点,因为总是会有架构特定的默认安装服务。对首先创建的服务执行命令时,这些命令必须使用名称 default-i386
而不是 s11x86service
。
root@aiserver:~# installadm list
下一步是通过网络启动客户端系统,然后使用刚设置的 Automated Install 服务供应该系统。
图 15. 网络启动
然后您将看到一个 GRUB 菜单,上面有一个计时器,如图 16 所示。默认选择(“Text Installer and command line”选项)会高亮显示。
我们之所以这样选择,是因为我们想防止系统在从网络意外启动时被自动重新安装。
图 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"/>
<origin name="http://192.168.1.222/solaris"/>
通常(但本例不是 如此),当开始同时处理多个服务时,所用命令将如下所示:
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 配置和网络配置。如果要更改此文件,可以将其复制到不同位置,然后将其与安装服务关联。在本例中,我们不需要做任何更改,因此您可以接受系统默认的配置参数并跳到下一步。/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 区域。
有关更多信息及后续步骤,请查阅以下资源:
sysconfig
命令配置 Oracle Solaris 11”下面是其他一些资源:
Isaac Rozenfeld 是 Oracle Solaris 的首席产品经理,专注于采用、安装和生命周期管理技术。Isaac 于 2010 年随着 Oracle 收购 Sun Microsystems 而加入 Oracle。
修订版 1.0,2012 年 5 月 9 日 |
要了解 Oracle 所有技术中与 sysadmin 有关的内容,请关注 Facebook 和 Twitter 上的 OTN Systems。