Solaris 9 Installation Guide

Chapter 7 Preconfiguring System Configuration Information (Tasks)

This chapter describes how to preconfigure system information. Preconfiguration can help you to avoid being prompted for this information when you install the Solaris operating environment. This chapter also describes how to preconfigure Power ManagementTM information. This chapter contains the following sections:

Advantages of Preconfiguring System Configuration Information

The installation methods require configuration information about a system, such as peripheral devices, host name, Internet Protocol (IP) address, and name service. Before the installation tools prompt you for configuration information, they check for the information in the sysidcfg file and then in the name service databases.

When the Solaris Web Start program, Solaris suninstall program, or the custom JumpStart installation program detects preconfigured system information, the installation program does not prompt you to enter the information. For example, you have several systems and you do not want a time zone prompt every time you install the Solaris 9 software on one of the systems. You can specify the time zone in the sysidcfg file or the name service databases. When you install the Solaris 9 software, the installation program does not prompt you to type a time zone.

Ways to Preconfigure System Configuration Information

You can choose one of the following ways to preconfigure system configuration information. You can add the system configuration information to either of the following.

Use the following table to determine which method to use to preconfigure system configuration information.

Table 7–1 Methods to Preconfigure System Configuration Information

Preconfigurable System Information 

Preconfigurable With the sysidcfg File?

Preconfigurable With the Name Service?

Name service 

Yes 

Yes 

Domain name 

Yes 

No 

Name server 

Yes 

No 

Network interface 

Yes 

No 

Host name 

Yes1

Yes 

Internet Protocol (IP) address 

Yes1

Yes 

Netmask 

Yes 

No 

DHCP 

Yes 

No 

IPv6 

Yes 

No 

Default route 

Yes 

No 

Root password 

Yes 

No 

Security policy 

Yes 

No 

Language (locale) in which to display the install program and desktop 

Yes 

Yes, if NIS or NIS+ 

No, if DNS or LDAP 

Terminal type 

Yes 

No 

Time zone 

Yes 

Yes 

Date and time 

Yes 

Yes 

Web proxy2

No 

No 

x86: Monitor type 

Yes 

No 

x86: Keyboard language, keyboard layout 

Yes 

No 

x86: Graphics card, color depth, display resolution, screen size 

Yes 

No 

x86: Pointing device, number of buttons, IRQ level 

Yes 

No 

SPARC: Power Management (autoshutdown)3

No 

No 

  1. Because this information is system specific, edit the name service rather than create a different sysidcfg file for each system.

  2. You can configure this information during a Solaris Web Start installation, but not through the sysidcfg file or the name service.

  3. You cannot preconfigure this system configuration information through the sysidcfg file or the name service. SPARC: Preconfiguring Power Management Information contains details.

Preconfiguring With the sysidcfg File

You can specify a set of keywords in the sysidcfg file to preconfigure a system. The keywords are described in Table 7–2.

You must create a unique sysidcfg file for every system that requires different configuration information. You can use the same sysidcfg file to preconfigure the time zone on a set of systems if you want all the systems to be assigned the same time zone. However, if you want to preconfigure a different root (superuser) password for each of those systems, you need to create a unique sysidcfg file for each system.

You can place the sysidcfg file in one of the following.


Note –

If you are performing a custom JumpStart installation and you want to use a sysidcfg file on a diskette, you must place the sysidcfg file on the profile diskette. To create a profile diskette, see Creating a Profile Diskette for Standalone Systems.


You can place only one sysidcfg file in a directory or on a diskette. If you are creating more than one sysidcfg file, you must place each file in a different directory or on a different diskette.

Syntax Rules for the sysidcfg File

You can use two types of keywords in the sysidcfg file: independent and dependent. Dependent keywords are guaranteed to be unique only within independent keywords. A dependent keyword exists only when it is identified with its associated independent keyword.

In this example, name_service is the independent keyword, while domain_name and name_server are the dependent keywords:

name_service=NIS {domain_name=marquee.central.sun.com
name_server=connor(129.152.112.3)}

Syntax Rule 

Example 

Independent keywords can be listed in any order. 

pointer=MS-S
display=ati {size=15-inch}

Keywords are not case sensitive. 

TIMEZONE=US/Central
terminal=PC Console

Enclose all dependent keywords in curly braces ({}) to tie them to their associated independent keyword. 

name_service=NIS 
       {domain_name=marquee.central.sun.com
        name_server=connor(129.152.112.3)}

You can optionally enclosed values in single (`) or double quotes (“). 

network_interface='none'

Only one instance of a keyword is valid. However, if you specify the keyword more than once, only the first instance of the keyword is used. 

network_interface=none
network_interface=le0

sysidcfg File Keywords

The following table describes the keywords you can use in the sysidcfg file.

Table 7–2 Keywords You Can Use in sysidcfg

Configuration Information 

Keywords 

Values or Examples 

Name service, domain name, name server 

name_service=NIS, NIS+, DNS, LDAP, NONE

 
  

Options for NIS and NIS+: {domain_name=domain_name name_server=hostname(ip_address)}

name_service=NIS {domain_name=west.arp.com name_server=timber(129.221.2.1)}

name_service=NIS+ {domain_name=west.arp.com. name_server=timber(129.221.2.1)}

 

Options for DNS: {domain_name=domain_name name_server=ip_address,ip_address, ip_address (three maximum) search=domain_name,domain_name,domain_name,domain_name,domain_name, domain_name (six maximum, total length less than or equal to 250 characters)}

name_service=DNS {domain_name=west.arp.com name_server=10.0.1.10,10.0.1.20 search=arp.com,east.arp.com}


Note –

Choose only one value for name_service. Include either, both, or neither the domain_name and name_server keywords, as needed. If neither keyword is used, omit the curly braces {}.


 

Options for LDAP: {domain_name=domain_name profile=profile_name profile_server=ip_address proxy_dn="proxy_bind_dn" proxy_password=password}

name_service=LDAP 
{domain_name=west.arp.com 
profile=default 
profile_server=129.221.2.1 
proxy_dn="cn=proxyagent,ou=profile,
dc=west,dc=arp,dc=com" 
proxy_password=password}


Note –

The proxy_dn and proxy_password keywords are optional. The proxy_dn value must be enclosed in double quotes.


Network interface, host name, Internet Protocol (IP) address, netmask, DHCP, IPv6 

network_interface=NONE, PRIMARY, or value

  • NONE turns off networking

  • PRIMARY is the first up, non-loopback interface that is found on the system. The order is the same as with “ifconfig.” If no interfaces are up, then the first non-loopback interface is used. If no non-loopback interfaces are found, then the system is set to NON-NETWORKED.

  • value specifies an interface such as le0 or hme0.

  If DHCP is to be used, specify: {dhcp protocol_ipv6=yes_or_no}

network_interface=primary {dhcp protocol_ipv6=yes}

 

If DHCP is not to be used, specify: {hostname=host_name default_route=ip_address or NONE ip_address=ip_address netmask=netmask protocol_ipv6=yes_or_no}


Note –

If you do not use DHCP, you are not required to specify protocol_ipv6=yes and default_route. But, take note of the following issues.

  • A JumpStart installation requires protocol_ipv6 to be specified now or you are prompted interactively later.

  • If default_route is not specified and one can not be detected using the ICMP router discovery protocol, you are prompted to choose a route.


network_interface=le0 {hostname=feron default_route=129.146.88.1 ip_address=129.146.88.210 netmask=255.255.0.0 protocol_ipv6=no}


Note –

Choose only one value for network_interface. Include any combination or none of the hostname, ip_address, and netmask keywords, as needed. If you do not use any of these keywords, omit the curly braces ({}).


Root password 

root_password=root_password

Encrypted from /etc/shadow.

Security policy 

security_policy=kerberos, NONE

Options for Kerberos: {default_realm=FQDN admin_server=FQDN kdc=FQDN1, FQDN2, FQDN3}

(FQDN is a fully qualified domain name)

security_policy=kerberos 
{default_realm=Yoursite.COM 
admin_server=krbadmin.Yoursite.COM 
kdc=kdc1.Yoursite.COM, 
kdc2.Yoursite.COM}


Note –

You can list a maximum of three key distribution centers (KDCs), but at least one is required.


Language in which to display the install program and desktop 

system_locale=locale

The /usr/lib/locale directory or Chapter 40, Locale Values (Reference) provides the valid locale values.

Terminal type 

terminal=terminal_type

The subdirectories in the /usr/share/lib/terminfo directory provide the valid terminal values.

Time zone 

timezone=timezone

The directories and files in the /usr/share/lib/zoneinfo directory provide the valid time zone values. The time zone value is the name of the path relative to the /usr/share/lib/zoneinfo directory. For example, the time zone value for mountain standard time in the United States is US/Mountain. The time zone value for Japan is Japan. You can also specify any valid Olson time zone.

Date and time 

timeserver=localhost, hostname, ip_addr

If you specify localhost as the time server, the system's time is assumed to be correct. If you are not running a name service and you specify the hostname or ip_addr of a system, that system's time is used to set the time.

x86: Monitor type 

monitor=monitor_type

On the system you want to install, run kdmconfig -d filename. Append output to sysidcfg file.

x86: Keyboard language, keyboard layout 

keyboard=keyboard_language {layout=value}

On the system you want to install, run kdmconfig -d filename. Append output to sysidcfg file.

x86: Graphics card, screen size, color depth, display resolution 

display=graphics_card {size=screen_size depth=color_depth resolution=screen_resolution}

On the system you want to install, run kdmconfig -d filename. Append output to sysidcfg file.

x86: Pointing device, number of buttons, IRQ level 

pointer=pointing_device {nbuttons=number_buttons irq=value}

On the system you want to install, run kdmconfig -d filename. Append output to sysidcfg file.

To Create a sysidcfg Configuration File

  1. Using a text editor, create a file called sysidcfg.

  2. Type the sysidcfg keywords you want.

  3. Save the sysidcfg file.


    Note –

    If you create more than one sysidcfg file, you must save each one in a separate directory or on a separate diskette.


  4. Make the sysidcfg file available to clients through the following:

    • A shared NFS file system. Use add_install_client(1M) with the -p option to set up the system to install from the network.

    • The root (/) directory on a UFS disketteor PCFS diskette.

SPARC: Example sysidcfg File

The following is an example of a sysidcfg filefor a group of SPARC based systems. The host names, IP addresses, and netmask of these systems have been preconfigured by editing the name service. Because all of the system configuration information is preconfigured in this file, you can use a custom JumpStart profile to perform a custom JumpStart installation.

system_locale=en_US
timezone=US/Central
terminal=sun-cmd
timeserver=localhost
name_service=NIS {domain_name=marquee.central.sun.com
                  name_server=connor(129.152.112.3)}
root_password=m4QPOWNY
network_interface=le0 {hostname=feron 
                       default_route=129.146.88.1 
                       ip_address=129.146.88.210 
                       netmask=255.255.0.0 
                       protocol_ipv6=no}
security_policy=kerberos {default_realm=Yoursite.COM 
                          admin_server=krbadmin.Yoursite.COM 
                          kdc=kdc1.Yoursite.COM, 
                          kdc2.Yoursite.COM}

x86: Example sysidcfg File

The following is an example of a sysidcfg file for a group of x86 based systems that all use the same type of keyboard, graphics cards, and pointing devices. The device information (keyboard, display, and pointer) was obtained by running the kdmconfig(1M) command with the -d option. If the following example sysidcfg file is used, a prompt that asks you to select a language (system_locale) is displayed before installation can proceed.

keyboard=ATKBD {layout=US-English}
display=ati {size=15-inch}
pointer=MS-S
timezone=US/Central
timeserver=connor
terminal=ibm-pc
name_service=NIS {domain_name=marquee.central.sun.com
                  name_server=connor(129.152.112.3)}
root_password=URFUni9

Preconfiguring With the Name Service

The following table provides a high-level overview of the name service databases that you need to edit and populate to preconfigure system information.

System Information to Preconfigure 

Name Service Database 

Host name and Internet Protocol (IP) address 

hosts

Date and time 

hosts. Specify the timehost alias next to the host name of the system that will provide the date and time for the systems that are being installed.

Time zone 

timezone

Netmask 

netmasks

You cannot preconfigure the locale for a system with the DNS or LDAP name service. If you use the NIS or NIS+ name service, follow the procedure for your name service to preconfigure the locale for a system:

To Preconfigure the Locale Using NIS

  1. Become superuser on the name server.

  2. Change /var/yp/Makefile to add the locale map.

    1. Insert this shell procedure after the last variable.time shell procedure.

      locale.time:  $(DIR)/locale
              -@if [ -f $(DIR)/locale ]; then \
                     sed -e "/^#/d" -e s/#.*$$// $(DIR)/locale \
                     | awk '{for (i = 2; i<=NF; i++) print $$i, $$0}' \
                     | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/locale.byname; \
                     touch locale.time; \
                     echo "updated locale"; \
                     if [ ! $(NOPUSH) ]; then \
                             $(YPPUSH) locale.byname; \
                             echo "pushed locale"; \
                     else \
                     : ; \
                     fi \
              else \
                     echo "couldn't find $(DIR)/locale"; \
              fi
    2. Find the string all: and, at the end of the list of variables, insert the word locale.

      all: passwd group hosts ethers networks rpc services protocols \
      	netgroup bootparams aliases publickey netid netmasks c2secure \
      	timezone auto.master auto.home locale
      
    3. Near the end of the file, after the last entry of its type, insert the string locale: locale.time on a new line.

      passwd: passwd.time
      group: group.time
      hosts: hosts.time
      ethers: ethers.time
      networks: networks.time
      rpc: rpc.time
      services: services.time
      protocols: protocols.time
      netgroup: netgroup.time
      bootparams: bootparams.time
      aliases: aliases.time
      publickey: publickey.time
      netid: netid.time
      passwd.adjunct: passwd.adjunct.time
      group.adjunct: group.adjunct.time
      netmasks: netmasks.time
      timezone: timezone.time
      auto.master: auto.master.time
      auto.home: auto.home.time
      locale: locale.time
      
    4. Save the file.

  3. Create the file /etc/locale and make one entry for each domain or specific system:

    locale domain_name
    

    Or

    locale system_name
    

    Note –

    Chapter 40, Locale Values (Reference) contains a list of valid locales.


    For example, the following entry specifies that French is the default language that is used in the worknet.com domain:

    fr worknet.com

    And the following entry specifies that Belgian French is the default locale that is used by a system named charlie:

    fr_BE charlie 

    Note –

    Locales are available on the Solaris 9 DVD or Solaris 9 Software 1 of 2 CD.


  4. Make the maps:


    # cd /var/yp; make
    

    Systems that are specified by domain or individually in the locale map are now set up to use the default locale. The default locale that you specified is used during installation and by the desktop after the system is rebooted.

To Preconfigure the Locale Using NIS+

The following procedure assumes the NIS+ domain is set up. Setting up the NIS+ domain is documented in the System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).

  1. Log in to a name server as superuser or as a user in the NIS+ administration group.

  2. Create the locale table:


    # nistbladm -D access=og=rmcd,nw=r -c locale_tbl name=SI,nogw= 
    locale=,nogw= comment=,nogw= locale.org_dir.`nisdefaults -d` 
    
  3. Add needed entries to the locale.


    # nistbladm -a name=name locale=locale comment=comment 
    locale.org_dir.`nisdefaults -d`
    

    name

    Either the domain name or a specific system name for which you want to preconfigure a default locale. 

    locale

    The locale you want to install on the system and use on the desktop after the system is rebooted. Chapter 40, Locale Values (Reference) contains a list of valid locales.

    comment

    The comment field. Use double quotation marks to begin and end comments that are longer than one word. 


    Note –

    Locales are available on the Solaris 9 DVD or Solaris 9 Software 1 of 2 CD.


    Systems that are specified by domain or individually in the locale table are now set up to use the default locale. The default locale you specified is used during installation and by the desktop after the system is rebooted.

SPARC: Preconfiguring Power Management Information

You can use the Power Management software that is provided in the Solaris environment to automatically save the state of a system and turn it off after it is idle for 30 minutes. When you install the Solaris 9 software on a system that complies with Version 2 of the EPA's Energy Star guidelines, for example a sun4u system, the Power Management software is installed by default. During a Solaris Web Start installation, the installation program prompts you to enable or disable the Power Management software. The suninstall installation program prompts you to enable or disable the Power Management software after the installation is complete and the system reboots.


Note –

If your system has Energy Star version 3 or later, you are not prompted for this information.


If you are performing interactive installations, you cannot preconfigure the Power Management information and avoid the prompt. However, by using a custom JumpStart installation, you can preconfigure the Power Management information by using a finish script to create an /autoshutdown or /noautoshutdown file on the system. When the system reboots, the /autoshutdown file enables Power Management and the /noautoshutdown file disables Power Management.

For example, the following line in a finish script enables the Power Management software and prevents the display of the prompt after the system reboots.

touch /a/autoshutdown

Finish scripts are described in Creating Finish Scripts.