如何创建 Automated Installer 清单

使用 Oracle Solaris 11.2 中的新交互式向导

作者:Glynn Foster

如何使用新的基于 Web 的交互式向导为数据中心中的各客户端系统快速创建自定义安装。


2014 年 6 月发布


简介

Oracle Solaris 11 Automated Installer 为管理员提供了一种安全、自动化、基于网络、无需人工干预地在数据中心安装客户端系统的方法。要想通过安全的端到端应用供应实现系统可靠、可重复上线,拥有一个快速部署框架至关重要。

想对本文发表评论吗?请将链接发布在 Facebook 的 OTN Garage 页面上。有类似文章要分享?请将其发布在 Facebook 或 Twitter 上,我们来进行讨论。

使用 Automated Installer,客户端系统可安全地通过网络引导,找到 Automated Installer 服务的位置,并与一组特定的名为 Automated Installer 清单 的安装指令匹配。Automated Installer 清单详细指示系统(包括目标磁盘及其布局、软件和虚拟化环境)应如何安装。一旦匹配,客户端系统随即联络 Oracle Solaris 映像包管理系统软件包信息库,并根据 Automated Installer 清单中提供的配置相应地安装其自身,如图 1 所示。

图 1. Automated Installer 如何安装客户端系统的示意图

图 1.Automated Installer 如何安装客户端系统的示意图

本文介绍 Oracle Solaris 11.2 中的一个新增功能,它让管理员能够使用一个名为 AI Manifest Wizard 的交互式向导为其数据中心中的客户端系统创建通用的 Automated Installer 清单并将该清单与 Automated Installer 安装服务关联。

在本文中,我们将基于 Oracle Solaris 11.2 映像创建一个 Automated Installer 服务。然后将使用交互式向导创建一个新的 Automated Installer 清单并将其与我们创建的 Automated Installer 服务相关联。

:本指南假设读者了解 Automated Installer。如果您尚无此方面经验,请阅读“如何在 Oracle Solaris 11.1 中使用 Automated Installer 定制和配置系统”。

创建 Automated Installer 服务

首先,使用 installadm create-service 命令创建一个 Automated Installer 服务,如清单 1 所示。

:如果您已经创建了一个 Automated Installer 服务,则无需执行此步骤。

root@solaris:~# installadm create-service
OK to use subdir of /export/auto_install to store image? [y|N]: y
  0% : Service svc:/network/dns/multicast:default is not online.  Installation services will not be advertised via multicast DNS.
  0% : Creating service from: pkg:/install-image/solaris-auto-install
  0% : Using publisher(s):
  0% :     solaris: http://pkg.oracle.com/solaris/release
  5% : Refreshing Publisher(s)  
  7% : Startup Phase  
 15% : Planning Phase  
 61% : Download Phase  
 90% : Actions Phase  
 91% : Finalize Phase 
 91% : Creating i386 service: solaris11_2-i386
 91% : Image path: /export/auto_install/solaris11_2-i386
 91% : Setting "solaris" publisher URL in default manifest to:
 91% :  http://pkg.oracle.com/solaris/release
 91% : DHCP is not being managed by install server.
 91% : SMF Service 'svc:/system/install/server:default' will be enabled
 91% : SMF Service 'svc:/network/tftp/udp6:default' will be enabled
 91% : Creating default-i386 alias
 91% : Setting "solaris" publisher URL in default manifest to:
 91% :  http://pkg.oracle.com/solaris/release
 91% : DHCP is not being managed by install server.
 91% :  No local DHCP configuration found. This service is the default
 91% :  alias for all PXE clients. If not already in place, the following should
 91% :  be added to the DHCP configuration:
 91% : Boot server IP: 10.0.0.5
 91% : Boot file(s):
 91% :     bios clients (arch 00:00):  default-i386/boot/grub/pxegrub2
 91% :     uefi clients (arch 00:07):  default-i386/boot/grub/grub2netx64.efi
 91% : 
 91% : Note: There is more than one IP address configured for use with AI. Please ensure the above 'Boot server IP' is correct.
 91% : SMF Service 'svc:/system/install/server:default' will be enabled
 91% : SMF Service 'svc:/network/tftp/udp6:default' will be enabled
100% : Created Service: 'solaris11_2-i386'
100% : Refreshing SMF service svc:/network/tftp/udp6:default
100% : Refreshing SMF service svc:/system/install/server:default
100% : Enabling SMF service svc:/system/install/server:default
100% : Enabling SMF service svc:/network/tftp/udp6:default
100% : Warning: mDNS registry of service 'solaris11_2-i386' could not be verified.
100% : Warning: mDNS registry of service 'default-i386' could not be verified.

清单 1

在清单 1 所示过程中,发生了几件事。我们创建了一个 /export/auto_install 目录,用于存储引导映像和 Automated Installer 服务的其他配置信息,从映像包管理系统软件包信息库下载了引导映像以用于该服务,并启用了一些服务。该 Automated Installer 服务当前使用默认 Automated Installer 清单,该清单使用默认设置选项安装 solaris-large-server 软件包组。

验证服务管理工具服务正在运行

AI Manifest Wizard 是一种基于浏览器的交互式编辑器,可以让管理员轻松地创建 Automated Installer 清单,而不必编辑 XML 代码。该向导可通过 svc:/system/install/server:default 服务管理工具服务访问,只要有 Automated Installer 服务运行,即可从 Web 服务器上的 5555 端口获取服务。

我们来使用 svcs 命令验证是否启用了服务管理工具服务,如清单 2 所示:

root@solaris:~# svcs install/server
STATE          STIME    FMRI
online         11:19:42 svc:/system/install/server:default

清单 2

现在,在浏览器中转到 http://192.168.0.113:5555(Automated Installer 服务器的 IP 地址),确认该服务是否在运行。

如果您直接登录到 AI 服务器或者通过 SSH 会话连接,可以使用 /usr/bin/ai-wizard 命令直接启动 AI Manifest Wizard。

现在可以创建 Automated Installer 清单了。

创建 Automated Installer 清单

AI Manifest Wizard 本身由 8 个屏幕组成,管理员可以通过这些屏幕浏览最常修改的 Automated Installer 清单参数,如磁盘安装、ZFS 数据集、映像包管理系统信息库配置和软件选择。

在第一个屏幕上(如图 2 所示),可以选择要为哪些服务创建清单。现在,我们选择 default-i386 服务,可以看到,它有一个别名,对应于为我们创建的名为 solaris11_2-i386 的服务。

图 2. AI Manifest Wizard 的 Welcome 屏幕

图 2.AI Manifest Wizard 的 Welcome 屏幕

接下来,可以在 Introduction 屏幕上为 Automated Installer 清单命名,并决定是用于裸机安装(全局区域)还是用于虚拟化环境(本例中为非全局区域)。如果我们要安装 Oracle Solaris 内核区域,就会选择用于全局区域的清单。我们选择保留 default 作为清单名称,为裸机安装创建一个清单,如图 3 所示。

图 3. 命名清单并选择区域类型的屏幕

图 3.命名清单并选择区域类型的屏幕

在图 4 所示的 Root Pool 屏幕中,可以确定使用哪个主 ZFS 存储池引导系统。默认情况下,根池名为 rpool,我们将创建一个名为 solaris 的引导环境。Automated Installer 清单向导将根据我们选择的安装服务选取配置。因为我们选择了 default-i386 服务,可以看到一个简单的 Oracle Solaris 11 安装有很多默认配置。我们还可以为安装配置交换和转储设备的大小,但暂时保留默认配置。

图 4. Root Pool 屏幕

图 4.Root Pool 屏幕

在 Data Pools 屏幕中可以指定创建其他 ZFS zpool。例如,创建一个名为 mypool 的 zpool,并将其挂载到 /mypool,如图 5 所示。还可以选择镜像此 zpool,或通过适用于 ZFS 的软件级 RAID 提供更高级别的冗余。

图 5. Data Pools 屏幕

图 5.Data Pools 屏幕

在图 6 所示的 Disks 屏幕中,可以确定将安装 Oracle Solaris 11 的目标设备。在此,我们可以明确确定 rpool 的目标引导设备(如在引导系统时在引导参数中所指定),并根据需要定义与目标设备匹配的其他特性。例如,我们可能希望确保仅在特定大小、来自特定供应商或位于特定设备路径(例如,在使用某个共享存储时)的磁盘上创建 mypool

图 6. Disks 屏幕

图 6.Disks 屏幕

在 Repositories 屏幕上,可以配置将安装软件所来自的映像包管理系统软件包信息库和发布者。在此,我们有 Oracle Solaris 11 版本信息库或支持信息库这两个选择,但也可以选择定义自己的信息库。如图 7 所示,在此示例中,我们改用我们创建的在 http://192.168.0.113(Automated Installer 服务器的地址)上托管的映像包管理系统软件包信息库 — 这是访问 Oracle 公开托管的信息库可能受限的典型数据中心环境。

图 7. Repositories 屏幕

图 7.Repositories 屏幕

如果信息库托管在 HTTPS 之后,为了安全地访问信息库,我们需要提供 SSL 证书和密钥。这可通过单击 Add Details 并提供这些文件的位置来完成。参见图 8。可以从 pkg-register.oracle.com 下载 Oracle 托管的映像包管理系统信息库的 SSL 证书和密钥,也可以为本地信息库生成 SSL 证书和密钥,详情参见“配置 HTTPS 信息库访问”。

图 8. IPS Repository Details 屏幕

图 8.IPS Repository Details 屏幕

在图 9 所示的 Software 屏幕中,可以定义应在系统上安装哪种软件。通常,使用定义应安装哪些软件包集合的软件包组提供软件配置。这些软件包组对应于以下映像包管理系统组软件包:solaris-large-server(Interactive Text Installer 和 Automated Installer 安装的默认值)、solaris-small-server(非全局区域安装的默认值)和 solaris-desktop(Live Media 安装的默认值)。然而,还可以选择安装这些软件包组中可能未包括的其他软件包。

我们来安装 pkg:/system/management/puppet 软件包,这样就可以从集中的 Puppet 主服务器控制客户端系统配置

图 9. Software 屏幕

图 9.Software 屏幕

Zones 屏幕让我们可以在安装过程中自动创建虚拟化环境,这是 Automated Installer 独特的优势。如图 10 所示,我们可以提供区域名称和区域配置文件的位置。该区域配置文件可以手动创建,也可以使用 zonecfg export 命令从现有区域配置导出。

图 10. Zones 屏幕

图 10.Zones 屏幕

在图 11 所示的最后一个屏幕上,可以检查提供给向导的信息,仔细核对确保信息完全正确。如果在任何阶段发现错误,只需单击 Back 按钮返回需要修正的屏幕。

图 11. Review 屏幕

图 11.Review 屏幕

如果需要,还可以单击 Preview XML 按钮,预览将用于 Automated Installer 清单的 XML 代码(参见图 12)。如果您尝试调试可能先前手动编辑过的现有清单,会发现此特性特别有用。您将注意到 XML 代码还包含图形界面不提供的其他一些参数。如果您是一位经验丰富的管理员,可能希望在稍后需要微调清单时手动修改 XML 代码。在 ai_manifest(4) 中可找到有关其他参数的信息。

图 12. 预览 XML 代码

图 12.预览 XML 代码

如果对清单满意,即可单击 Save 按钮。默认情况下,Automated Installer 清单将保存到浏览器的下载文件夹。保存文件之后,需要将其复制到 Automated Installer 服务器并将清单与安装服务相关联。参见图 13。

图 13. 保存清单文件

图 13.保存清单文件

为方便起见,AI Manifest Wizard 还允许您将文件直接保存到 Automated Installer 服务器上的 /var/ai/wizard-manifest 文件夹,但默认情况下此功能禁用。您可以使用带 -sv 选项的 installadm list 命令查看“Wizard Saves to Server?”属性,然后可以使用带 -z 选项的 installadm set-server 命令启用该属性,如清单 3 所示。

root@solaris:~# installadm list -sv
AI Server Parameter      Value
-------------------      -----
Hostname ............... solaris
Architecture ........... i386
Active Networks ........ 10.0.0.5
                         192.168.0.113
Http Port .............. 5555
Secure Port ............ 5556
Image Path Base Dir .... /export/auto_install
Multi-Homed? ........... yes
Managing DHCP? ......... yes (unconfigured)
DHCP IP Range .......... none
Boot Server ............ none
Web UI Enabled? ........ yes
Wizard Saves to Server?  no
Security Enabled? ...... no
Security Key? .......... no
Security Cert .......... none
CA Certificates ........ none
FW Encr Key (AES) ...... none
FW HMAC Key (SHA1) ..... none
Def Client Sec Key? .... no
Def Client Sec Cert .... none
Def Client CA Certs .... none
Def Client FW Encr Key . none
Def Client FW HMAC Key . none
Number of Services ..... 2
Number of Clients ...... 0
Number of Manifests .... 2
Number of Profiles ..... 0
root@solaris:~# installadm set-server -z
Changed Server
Refreshing SMF service svc:/system/install/server:default
root@solaris:~# installadm list -sv
AI Server Parameter      Value
-------------------      -----
Hostname ............... solaris
Architecture ........... i386
Active Networks ........ 10.0.0.5
                         192.168.0.113
Http Port .............. 5555
Secure Port ............ 5556
Image Path Base Dir .... /export/auto_install
Multi-Homed? ........... yes
Managing DHCP? ......... yes (unconfigured)
DHCP IP Range .......... none
Boot Server ............ none
Web UI Enabled? ........ yes
Wizard Saves to Server?  yes
Security Enabled? ...... no
Security Key? .......... no
Security Cert .......... none
CA Certificates ........ none
FW Encr Key (AES) ...... none
FW HMAC Key (SHA1) ..... none
Def Client Sec Key? .... no
Def Client Sec Cert .... none
Def Client CA Certs .... none
Def Client FW Encr Key . none
Def Client FW HMAC Key . none
Number of Services ..... 2
Number of Clients ...... 0
Number of Manifests .... 2
Number of Profiles ..... 0

清单 3

根据您的 Automated Installer 服务的设置方式,后面的步骤可能有所不同。在本例中,我们使用 installadm list 命令查看哪些清单与我们的安装服务关联,如清单 4 所示:

root@solaris:~# installadm list -m
Service Name     Manifest Name Type    Status  Criteria
------------     ------------- ----    ------  --------
default-i386     orig_default  derived default none    
solaris11_2-i386 orig_default  derived default none    

清单 4

在清单 4 中可以见到,有一个名为 orig_default 的默认清单与我们创建的 Automated Installer 服务关联。我们可以使用 installadm create-manifest 命令为此服务关联一个新的清单(我们生成的清单),然后使用 -d 选项将其设置为默认值,从而更改此设置,如清单 5 所示:

root@solaris:~# installadm create-manifest -d -f /tmp/manifest.xml -m default -n default-i386
Created Manifest: 'default'

清单 5

使用 installadm list 命令查看安装服务和清单的状态,如清单 6 所示:

root@solaris:~# installadm list
Service Name          Status Arch Type Secure Alias Aliases Clients Profiles Manifests
------------          ------ ---- ---- ------ ----- ------- ------- -------- ---------
default-i386          on     i386 pkg  no     yes   0       0       0        2        
solaris11_2-i386      on     i386 pkg  no     no    1       0       0        1        
root@solaris:~# installadm list -m
Service Name          Manifest Name Type    Status   Criteria
------------          ------------- ----    ------   --------
default-i386          default       xml     default  none    
                      orig_default  derived inactive none    
solaris11_2-i386      orig_default  derived default  none   

清单 6

最后,我们还导出清单,看看它是否与我们创建的清单相符,如清单 7 所示。

root@solaris:~# installadm export -n default-i386 -m default
---------------------------- manifest: default ----------------------------
<!DOCTYPE auto_install PUBLIC "SYSTEM" "/usr/share/install/ai.dtd.1">
<auto_install>
  <ai_instance name="default" auto_reboot="false">
    <target>
      <disk in_zpool="rpool" in_vdev="vdev1" whole_disk="true">
        <disk_keyword key="auto"/>
      </disk>
      <disk in_zpool="mypool" in_vdev="vdev1" whole_disk="true">
        <disk_keyword key="auto"/>
      </disk>
      <logical noswap="false" nodump="false">
        <zpool name="rpool" action="create" is_root="true">
          <vdev name="vdev1" redundancy="none"/>
          <filesystem name="export" action="create" mountpoint="/export" in_be="false"/>
          <filesystem name="export/home" action="create" in_be="false"/>
          <be name="solaris"/>
        </zpool>
        <zpool name="mypool" action="create" is_root="false" mountpoint="/mypool">
          <vdev name="vdev1" redundancy="none"/>
        </zpool>
      </logical>
    </target>
    <software type="IPS">
      <destination>
        <image action="create" index="false">
          <facet set="false">facet.locale.*</facet>
          <facet set="true">facet.locale.de</facet>
          <facet set="true">facet.locale.de_DE</facet>
          <facet set="true">facet.locale.en</facet>
          <facet set="true">facet.locale.en_US</facet>
          <facet set="true">facet.locale.es</facet>
          <facet set="true">facet.locale.es_ES</facet>
          <facet set="true">facet.locale.fr</facet>
          <facet set="true">facet.locale.fr_FR</facet>
          <facet set="true">facet.locale.it</facet>
          <facet set="true">facet.locale.it_IT</facet>
          <facet set="true">facet.locale.ja</facet>
          <facet set="true">facet.locale.ja_*</facet>
          <facet set="true">facet.locale.ko</facet>
          <facet set="true">facet.locale.ko_*</facet>
          <facet set="true">facet.locale.pt</facet>
          <facet set="true">facet.locale.pt_BR</facet>
          <facet set="true">facet.locale.zh</facet>
          <facet set="true">facet.locale.zh_CN</facet>
          <facet set="true">facet.locale.zh_TW</facet>
        </image>
      </destination>
      <source>
        <publisher name="solaris">
          <origin name="http://192.168.0.113"/>
        </publisher>
      </source>
      <software_data action="install">
        <name>pkg:/entire@0.5.11-0.175.2</name>
        <name>pkg:/group/system/solaris-large-server</name>
        <name>pkg:/system/management/puppet</name>
      </software_data>
    </software>
    <configuration type="zone" name="myzone" source="http://192.168.0.113/myzone.cfg"/>
  </ai_instance>
</auto_install>

清单 7

Automated Installer 清单涵盖磁盘目标及其布局、软件选择和虚拟化环境的配置。其他系统配置(针对用户、网络配置、时区等)可使用系统配置文件完成。这些不由 AI Manifest Wizard 管理,而是可以使用 sysconfig 工具创建,然后将其与指定安装服务关联。有关系统配置文件的更多信息,请参见“提供配置文件”。

总结

Oracle Solaris 11 Automated Installer 为跨数据中心的敏捷系统供应提供了一个坚实的基础。对于管理这些系统的管理员而言,AI Manifest Wizard 提供了一个易于使用的界面来编写可用于自定义需要安装的客户端的 Automated Installer 清单。

另请参见

下面是有关 Oracle Solaris 11 的一些其他资源:

关于作者

Glynn Foster 是 Oracle Solaris 首席产品经理。他负责多个技术领域,包括 OpenStack、Oracle Solaris 映像包管理系统、安装和配置管理。

修订版 1.1,2014 年 6 月 12 日

关注我们:
博客 | Facebook | Twitter | YouTube