Previous     Contents     Index     Next     
Setup Util Programmer's Guide



Chapter 7   Silent Installation


This chapter gives an overview of silent installation and explains how to set it up using the Setup Util. It contains the following sections:



Understanding Silent Installation

Silent installation allows a user to install one or more servers of the same type using a predefined answer script. The Common Install Shell and pre-installation program both read this script and then perform setup operations based on its contents.

A silent installation answer script is in the same format as an installation cache. A user installs a server once and then modifies the installation cache to install identically configured servers in different locations.


Requirements for Silent Installation

When performing a silent installation, keep the following in mind:

  • You must write installation results to a log file

  • A silent installation cannot be interactive. If an error occurs, display an alert, log the problem, and abort the installation

  • You must display a progress indicator.



Using Installation Scripts

An installation script is a modified version of an installation cache. Since every product stores different information in the cache, these scripts are not uniform. Nonetheless, there are some directives that appear in many caches. These are listed in Table 7-1.


Table 7-1 A list of common installation cache directives.

Directive

Description

Components  

Comma-separated list of servers and components to install.  

ServerRoot  

Location in which to install the selected components.  

FullMachineName  

Fully qualified domain name of the workstation on which you are performing the silent installation. If this directive is not present, the Common Install Shell will query the machine for its name.  

SuiteSpotUserID  

UNIX only. Specify the name of the user to run all associated servers as.  

SuiteSpotGroup  

UNIX only. Specify the name of a group to which the SuiteSpotUser belongs.  

ConfigDirectoryLdapURL  

The LDAP URL of the Configuration Directory Server used to manage server information and data. Specify the URL in the following format:

ldap://<machine name>:<port>/<base DN>

Do not specify a secure ldaps URL.  

AdminDomain  

The name of the Administration Domain that the installed servers will belong to.  

ConfigDirectoryAdminID  

The User ID of the administrator who has permission to access the Configuration Directory and the specified Administration Domain.  

ConfigDirectoryAdminPwd  

The password for the administrator who has permission to access the Configuration Directory and the specified Administration Domain.  

UserDirectoryLdapURL  

If at least one server in this installation requires write access to the User Directory, specify the Directory Server's LDAP URL here.  

UserDirectoryAdminID  

The User ID of the administrator who has permission to access the User Directory.  

UserDirectoryAdminPwd  

The password for the administrator who has permission to access the User Directory.  

Any product-specific directives will appear in a different section of the cache file. If your product supports silent installation, make sure you write instructions for the customer describing how to modify both common and specialized directives.


Sample Installation Script

When you install the Setup Util, a sample installation script called silent.inf is copied into the bin directory. Even though a real world product would probably use an installation cache rather than a predefined installation script, silent.inf provides a good way to explore the different directives used during silent installation.


# Setup Util Sample Silent Installation Script for UNIX/NT
#
# The suggested way to perform a silent installation is to first
# conduct a standard installation and then, when prompted at the
# end of installation, save the "install.inf" cache file.
#
# After slightly modifying the "install.inf" cache file, you can
# use it for silent installation since it contains the basic
# information needed for installation on hosts in your domain.
#
# The purpose of this file, "silent.inf," is to provide a brief
# explanation of the directives and data required for silent
# installation. You can compare its contents to your
# "install.inf" cache file if you do not understand how to use a
# specific directive.
#
# This file is not intended for use during silent installation.
# It is only provided as an example. All servers
# have different installation modes and data requirements.
# Before performing a silent installation, it is strongly
# recommended that you conduct a trial run, saving, modifying,
# and then using the "install.inf" cache file.
# To perform a silent installation:
#
# run: setup.exe -s -f install.inf
#
# -s = silent install
# -f = cache file
#

###############################################################
# Common portion variables
###############################################################

[General]

#
# List of servers to install.
# Specify one or more of the following, separated by commas.
# Each component will most likely require its own section in the
# script. For examples of these sections, see "base" and "admin"
# below. If you add a server to the Components list, make sure to
# add a corresponding section.
#
# - base              Base package
# - admin             Administration Server
# - slapd             Directory Server
# - msg               Messaging Server
# - httpd             Enterprise Server
# - Calendar          Calendar Server
# - Certificate       Certificate Management System

Components = svrcore,base,admin

#
# Installation location
#
ServerRoot = /opt/serverrootname/servers

#
# Fully qualified domain name of the host on which you are
# installing the components. If you want the Common
# Install Shell to query the machine for its hostname during
# silent installation, delete the line containing the
# "FullMachineName" directive.
#
FullMachineName = yourmachine.yourdomain.com

#
# Specify the user ID and group of the UNIX user to run all
# associated Servers as. This directive is applicable to UNIX
# systems only.
#
SuiteSpotUserID = nobody
SuiteSpotGroup = nobody

# Specify the non-secure LDAP URL of the Configuration Directory
# Server. This can be an existing server or a new one that you
# want to install. Use the following format:
#
# ldap://<machine name>:<port>/<base dinstinguished name>
#
ConfigDirectoryLdapURL = ldap://host.domain.com:389/o=domain.com

# Specify the name of the Administration Domain that the
# installed servers will belong to. If you are not installing a
# Configuration Directory Server, the entry for this domain must
# already exist in the Configuration Directory specified above.
#
AdminDomain = yourdomain.com

# Specify the User ID and password of the administrator
# who has permission to access the Configuration Directory and
# Administration Domain.
#
ConfigDirectoryAdminID = admin
ConfigDirectoryAdminPwd= admin

#
# If at least one server in this installation requires write
# access to User Directory, include these directives.
# You can find out whether a server requires write access
# by checking its package information file for the following
# line:
#
# UserDirectoryAuth = True
#
UserDirectoryLdapURL = ldap://host.domain.com:389/o=domain.com
UserDirectoryAdminID = admin
UserDirectoryAdminPwd = admin

###############################################################
# Information pertaining to individual servers or products
###############################################################

###############################################################
# Base package variables
# - Nothing at this time. Can be removed or left empty
###############################################################
[base]
#
# the base subcomponent and the base-client subcomponents will be
# installed
#
Components=base,base-client
###############################################################
# Administration Server variables
###############################################################
[admin]
#
# the admin subcomponent and the admin-client subcomponents will
# be installed
#
Components = admin,admin-client
#
# The UNIX user to run the Admin server as (default = root)
#
SysUser = root

#
# Administration Server Port
#
Port = 8900

#
# The Server Administrator ID - used to access the Admin Server
#
ServerAdminID = admin
ServerAdminPwd = admin

#
# The IP address of the host on which to install the server.
#

ServerIpAddress = Delete ServerIpAddress from the file, to use
                  the default ip that the the installation will
                  query from the workstation your installing to.
                  Otherwise ensure you enter a correct ip for
                  the workstaion your installing on.

###############################################################
# Other server/products
###############################################################

"> Code Example 7-1 A sample installation script, silent.inf, is included with the Setup Util.

# Setup Util Sample Silent Installation Script for UNIX/NT
#
# The suggested way to perform a silent installation is to first
# conduct a standard installation and then, when prompted at the
# end of installation, save the "install.inf" cache file.
#
# After slightly modifying the "install.inf" cache file, you can
# use it for silent installation since it contains the basic
# information needed for installation on hosts in your domain.
#
# The purpose of this file, "silent.inf," is to provide a brief
# explanation of the directives and data required for silent
# installation. You can compare its contents to your
# "install.inf" cache file if you do not understand how to use a
# specific directive.
#
# This file is not intended for use during silent installation.
# It is only provided as an example. All servers
# have different installation modes and data requirements.
# Before performing a silent installation, it is strongly
# recommended that you conduct a trial run, saving, modifying,
# and then using the "install.inf" cache file.
# To perform a silent installation:
#
# run: setup.exe -s -f install.inf
#
# -s = silent install
# -f = cache file
#

###############################################################
# Common portion variables
###############################################################

[General]

#
# List of servers to install.
# Specify one or more of the following, separated by commas.
# Each component will most likely require its own section in the
# script. For examples of these sections, see "base" and "admin"
# below. If you add a server to the Components list, make sure to
# add a corresponding section.
#
# - base              Base package
# - admin             Administration Server
# - slapd             Directory Server
# - msg               Messaging Server
# - httpd             Enterprise Server
# - Calendar          Calendar Server
# - Certificate       Certificate Management System

Components = svrcore,base,admin

#
# Installation location
#
ServerRoot = /opt/serverrootname/servers

#
# Fully qualified domain name of the host on which you are
# installing the components. If you want the Common
# Install Shell to query the machine for its hostname during
# silent installation, delete the line containing the
# "FullMachineName" directive.
#
FullMachineName = yourmachine.yourdomain.com

#
# Specify the user ID and group of the UNIX user to run all
# associated Servers as. This directive is applicable to UNIX
# systems only.
#
SuiteSpotUserID = nobody
SuiteSpotGroup = nobody

# Specify the non-secure LDAP URL of the Configuration Directory
# Server. This can be an existing server or a new one that you
# want to install. Use the following format:
#
# ldap://<machine name>:<port>/<base dinstinguished name>
#
ConfigDirectoryLdapURL = ldap://host.domain.com:389/o=domain.com

# Specify the name of the Administration Domain that the
# installed servers will belong to. If you are not installing a
# Configuration Directory Server, the entry for this domain must
# already exist in the Configuration Directory specified above.
#
AdminDomain = yourdomain.com

# Specify the User ID and password of the administrator
# who has permission to access the Configuration Directory and
# Administration Domain.
#
ConfigDirectoryAdminID = admin
ConfigDirectoryAdminPwd= admin

#
# If at least one server in this installation requires write
# access to User Directory, include these directives.
# You can find out whether a server requires write access
# by checking its package information file for the following
# line:
#
# UserDirectoryAuth = True
#
UserDirectoryLdapURL = ldap://host.domain.com:389/o=domain.com
UserDirectoryAdminID = admin
UserDirectoryAdminPwd = admin

###############################################################
# Information pertaining to individual servers or products
###############################################################

###############################################################
# Base package variables
# - Nothing at this time. Can be removed or left empty
###############################################################
[base]
#
# the base subcomponent and the base-client subcomponents will be
# installed
#
Components=base,base-client
###############################################################
# Administration Server variables
###############################################################
[admin]
#
# the admin subcomponent and the admin-client subcomponents will
# be installed
#
Components = admin,admin-client
#
# The UNIX user to run the Admin server as (default = root)
#
SysUser = root

#
# Administration Server Port
#
Port = 8900

#
# The Server Administrator ID - used to access the Admin Server
#
ServerAdminID = admin
ServerAdminPwd = admin

#
# The IP address of the host on which to install the server.
#

ServerIpAddress = Delete ServerIpAddress from the file, to use
                  the default ip that the the installation will
                  query from the workstation your installing to.
                  Otherwise ensure you enter a correct ip for
                  the workstaion your installing on.

###############################################################
# Other server/products
###############################################################



Performing a Silent Installation

Silent installation involves the following four steps:

  • Running a standard installation

  • Saving the installation cache

  • Modifying the cache

  • Performing a silent installation.

This section shows you how to perform these tasks.


Running a Standard Installation

A user should run a standard installation before performing a silent one. This allows him to enter configuration settings and store them in an installation cache. This cache is later used for silent installation.


To Run a Standard Installation

  • Perform an Express, Typical, or Custom installation by running the Common Install Shell. For instructions, see Chapter 2 "Quick Start."


Saving the Installation Cache

Any values that the user enters during pre-installation are stored in an installation cache. If you want to give your users the ability to perform a silent installation, the final pre-installation dialog should ask if they would like to save the cache to a file.

If the answer is yes, write the cache to a file called install.inf. This file is typically stored in a directory called setup that is located beneath the server root.


Modifying the Installation Cache

After installing a server and saving the installation cache, the user should modify install.inf to meet his silent installation needs. What this modification entails depends on the directives stored in the installation cache. Typically, the user must modify at least the FullMachineName and ServerRoot directives.

Your documentation should provide detailed instructions on how to modify your product's install.inf file. The modified file is called an installation script.


Performing a Silent Installation

Once the user finishes modifying install.inf, he is ready to perform a silent installation.


To perform a silent installation

  • Run the Common Install Shell using the -s and -f flags.

    The -s flag tells the shell to perform a silent installation; the -f flag specifies the installation script file name.

    For example, a user might enter the following line to perform a silent installation on UNIX:

    setup -s -f install.inf


Previous     Contents     Index     Next     
Copyright (C) 2005 Red Hat, Inc. All rights reserved.
This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/

Last Updated September 21, 2001