Novell Home

Install Open Enterprise Server (Linux Based) With AutoYaST

Novell Cool Solutions: Feature
By Aaron Gresko

Digg This - Slashdot This

Posted: 6 Jun 2005
 

The installation of Open Enterprise Server (Linux based) can be automated using a network installation source, PXE boot, and AutoYaST. The network installation source provides the installation media over the network, removing the need to swap disk media. PXE boot accesses boot media from the network. AutoYaST configures the system parameters. AutoYaST can even set the configuration parameters for the Novell software on the OES system.

Using these components, an OES server can be provisioned without any physical interaction other than powering it on and specifying a network boot.

To install OES with AutoYaST and a network based install, complete the following:

  • Prepare AutoYaST configuration file
  • Set up network installation source
  • Configure tFTP
  • Configure DHCP
  • Test installation

prepare autoyast configuration file

AutoYaST is the technology used by SUSE Linux systems to accomplish unattended installations. With AutoYaST, system configuration parameters such as partitioning, software selections, and X windows are specified in and read from an XML file. The XML file is best created using the Autoinstallation YaST module.

To create a base AutoYaST configuration file using the Autoinstallation YaST module, do the following:

  1. Select YaST, and provide the root password when prompted.
  2. Select Misc > Autoinstallation.

The Autoinstallation window appears, as shown in Figure 1.

Figure 1: Use the Autoinstallation YaST module to create the base XML file.


Within the Autoinstallation module, use the left menu to navigate and the right window to set configuration options. Creating a complete AutoYaST configuration file is too weighty a subject to tackle here. Extensive documentation can be found at /usr/share/doc/packages/autoyast2/html/index.html, or online.

One thing to be sure of when creating the AutoYaST configuration file is to select the proper software settings. Do the following:

  1. In the Autoinstallation module, expand Software and then select Package Selection.
  2. In the Package Selection window, select Configure.
  3. In the Software Selection window, select Novell Open Enterprise Server.
  4. If additional packages are desired, select Detailed selection and then select the desired packages.
  5. Select Next.

Once the configuration has been set, save the configuration file by selecting File > Save.

The Autoinstallation module does not have the capability to write configuration parameters for the Novell software included in Open Enterprise Server. The Novell software can be configured in an AutoYaST install by entering the necessary parameters into the AutoYaST configuration file manually.

To set the configuration parameters, open the AutoYaST configuration file in a text or XML editor and add the configuration parameters. Insert the needed configuration parameters in the AutoYaST configuration file before the </configure> tag.

The available parameters for each software package are as follows (be sure to replace the values with something appropriate for your environment):

Certificate Authority

<novell-ca>

    <password>novell</password>
</novell-ca>

eDirectory

<edirectory>
    <tree_name>oes-tree</tree_name>

    <tree_type>new</tree_type>
    <existing_ip>192.168.1.10</existing_ip>
    <existing_ldap_secure_port config:type="integer">636</existing_ldap_secure_port>
    <all_static_ip config:type="list">

        <ip_address>192.168.1.10</ip_address>
    </all_static_ip>
    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>

    <server_context>o=novell</server_context>
    <ldap_port config:type="integer">389</ldap_port>
    <ldap_secure_port config:type="integer">636</ldap_secure_port>
    <http_port config:type="integer">8028</http_port>

    <https_port config:type="integer">8030</https_port>
    <ntp_server>Local Clock</ntp_server>
    <slp_mode>none</slp_mode>
    <slp_da></slp_da>

    <slp_scopes>DEFAULT</slp_scopes>
</edirectory>

eGuide

<eguide>
    <host>192.168.1.10</host>

    <ldap_port config:type="integer">389</ldap_port>
    <ldap_secure_port config:type="integer">636</ldap_secure_port>
    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>

</eguide>

iManager

<imanager>
    <tree_name>oes-tree</tree_name>
    <admin_name>cn=admin.o=novell</admin_name>

</imanager>

iPrint

<iprint>
    <tree_name>oes-tree</tree_name>
    <existing_ip>192.168.1.10</existing_ip>

    <edir_port config:type="integer">636</edir_port>
    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>
</iprint>

Life Console

<lifeconsole>
    <ldap_address>192.168.1.10</ldap_address>
    <ldap_port config:type="integer">636</ldap_port>

    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>
</lifeconsole>

Linux User Management

<linux-user-mgmt>
    <edir_ip_addr>192.168.1.10</edir_ip_addr>
    <ldap_port config:type="integer">389</ldap_port>
    <ldaps_port config:type="integer">636</ldaps_port>

    <admin_fdn>cn=admin.o=novell</admin_fdn>
    <admin_password>novell</admin_password>
    <partition_root>o=novell</partition_root>
    <ws_context>o=novell</ws_context>

    <proxy_user>cn=admin.o=novell</proxy_user>
    <proxy_user_password>novell</proxy_user_password>
    <services>
        <login>yes</login>

        <ftp>no</ftp>
        <sshd>yes</sshd>
        <su>yes</su>
        <passwd>yes</passwd>

        <rsh>no</rsh>
        <rlogin>no</rlogin>
        <xdm>yes</xdm>
        <openwbem>yes</openwbem>

    </services>
</linux-user-mgmt>

NCP Server

<ncpserver>
    <admin_dn>cn=admin.o=novell</admin_dn>

    <admin_password>novell</admin_password>
</ncpserver>

NetStorage

<netstorage>
    <edir_server_host>192.168.1.10</edir_server_host>

    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>
    <ifolder2_host></ifolder2_host>
    <xtier_address>192.168.1.10</xtier_address>

    <xtier_proxy_context>cn=admin.o=novell</xtier_proxy_context>
    <xtier_proxy_password>novell</xtier_proxy_password>
    <xtier_users_context>o=novell</xtier_users_context>
</netstorage>

Quick Finder

<novell-quickfinder>
    <ldap_server_context>o=novell</ldap_server_context>
    <admin_name>cn=admin.o=novell</admin_name>

    <admin_password>novell</admin_password>
    <user_name>cn=user.o=novell</user_name>
    <user_password>novell</user_password>
    <shadow_access>yes</shadow_access>

    <lum_enable>yes</lum_enable>
</novell-quickfinder>

Virutal Office

<novell-vo>
    <address>192.168.1.10</address>

    <ldap_address>192.168.1.10</ldap_address>
    <ldap_secure_port config:type="integer">636</ldap_secure_port>
    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>

    <users_context>o=novell</users_context>
</novell-vo>

Samba

<novell-samba>
    <ldap_host>192.168.1.10</ldap_host>

    <ldap_ssl_port config:type="integer">636</ldap_ssl_port>
    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>
    <proxy_user_context>cn=admin.o=novell</proxy_user_context>

    <proxy_user_password>novell</proxy_user_password>
    <user_context>o=novell</user_context>
</novell-samba>

Storage Management Services

<sms>
    <server_ip>192.168.1.10</server_ip>
    <ldap_port config:type="integer">389</ldap_port>
    <ldap_secure_port config:type="integer">636</ldap_secure_port>

    <admin_context>cn=admin.o=novell</admin_context>
    <admin_password>novell</admin_password>
</sms>

Getting all the kinks worked out of an AutoYaST configuration file takes some time and troubleshooting. If questions come up, come to the AutoYaST forum and ask.


set up network installation source

An AutoYaST configuration file can be used in a number of ways. The file can be placed on a floppy and used with the CD media. The file can be placed on a network boot floppy and used to control the installation. The example given here will use a network install with PXE boot. The AutoYaST configuration file will be placed on the network server.

The first step is to set up the network installation source. Novell has created a script that will create the necessary directory structure and copy the CD media. The script can be downloaded from here.

Instructions on setting up the installation server can be found here.

For the example in this article, an existing OES server has been configured as an NFS installation source, as follows:

  1. Download and run the netInstall.sh script.
  2. Provide the netInstall.sh script the path to create, /installroot/oes, and the location of the OES iso files.
  3. Wait while the OES files are copied, as shown in Figure 2.

    Figure 2: netInstall.sh is a script that creates the OES network installation directory


  4. Start the installation server YaST module by selecting YaST > Misc > Installation Server.
  5. Select Configure as NFS Source and provide the install directory, /installroot, and then select Next.
  6. Set NFS options and then select Next.
  7. Open Enterprise Server should appear as an available source, so select Finish.

The network installation server is now ready.

The final step is to copy the AutoYaST configuration file, oes-ay.xml in the example setup to the /installroot/oes directory.


configure tftp

To boot from the network, a tFTP server needs to be set up to deliver the boot image. When the server boots, DHCP will deliver the name of a server and location on that server where to retrieve a boot image from.

To set up OES to provide the boot image, perform the following:

  1. Setup the TFTP server
    1. In YaST, select Network Services > TFTP Server.
    2. In TFTP Server Configuration, select Enable.
    3. In TFTP Server Configuration, select Browse.
    4. In the Browse window, create a folder in / (root) named tftpboot.
    5. Select tftpboot, and then select OK. The boot image directory should now be /tftpboot/.
    6. Select Finish.
  2. Create the boot image in the /tftpboot directory
    1. Insert OES CD 1 into the CD drive and change directories to boot/loader (e.g. #cd /media/cdrom/boot/loader).
    2. Copy the files linux and initrd to the /tftpboot directory (e.g. #cp linux initrd /tftpboot).
    3. Using YaST, install the syslinux package. The syslinux package contains the pxe boot imag
    4. Copy the pxe boot image, pxelinux.0, to /tftpboot. (e.g. #cp /usr/share/syslinux/pxelinux.0 /tftpboot).
    5. Change directories to /tftpboot (e.g. #cd /tftpboot).
    6. Create a directory under /tftpboot called pxelinux.cfg (e.g. #mkdir pxelinux.cfg).
    7. Change directories to pxelinux.cfg and create a default configuration file called default (e.g. #cd pxelinux.cfg ; touch default).
    8. Edit the default file and add the following text:
      #default
      		label linux
      		kernel linux
      		append initrd=initrd ramdisk_size=65536
      		install=nfs://192.168.1.3/installroot/oes
      		autoyast=nfs://192.168.1.3/installroot/oes-ay.xml

      Note: All of the text after "append" is one line. Also, be sure to change the install parameter to point to the install source server and the autoyast parameter to point to the AutoYaST configuration file.

When the new system boots, it will connect to the tFTP service to get its boot image as defined in DHCP. The new system will also look in the pxelinux.cfg folder for the default file. The default file specifies which kernel to boot and appends the options indicating where the installation media and AutoYaST control file are located. Note that you can specify any other options normally put in the "Boot Options" field of a regular SUSE install here. For more information about your choices, see the SLES9 Admin Guide.


configure dhcp

The network DHCP server needs to be configured to deliver two items---the address of the tFTP server and the PXE boot image filename.

To add these items, do the following:

  1. Start YaST, and select Network Services > DHCP Server.
  2. Select Expert Options, and then select Yes.
  3. In the Configured Declarations window, select the subnet where the new system will be located and select Edit.
  4. In the Subnet Configuration window, add an option and select filename as the option to add. The filename option value should be the name of the pxe boot image file, pxelinux.0. Add another option, next-server, and set its value to the IP address of the tFTP server.
  5. Select OK.
  6. Select Finish to complete the DHCP server configuration.

test installation

To test the installation, boot a machine that is PXE boot capable. When the machine boots, make sure it boots from the network, from there verify the following:

  • DHCP server operation --- Make sure the PXE boot finds the DHCP server. Also make sure the DHCP server delivers the network boot information. Figure 3 shows a successful PXE boot.

    Figure 3: Successful PXE boot


    Notice the system received an IP address from the server (192.168.1.98) and that the pxelinux.cfg/default file was found and booted from.

  • AutoYaST control file retrieval and read --- Make sure the AutoYaST control file can be read successfully from the network. Syntax errors can be caused easily when manually editing the control file. If an error is shown, verbose debug information can be found by doing the following:
    1. Do not close the error message on the main installation screen.
    2. Switch to the command line by pressing Ctrl + Alt + F2.
    3. Change to the YaST log directory by entering cd /var/log/YaST2.
    4. View the end of the y2log file by entering tail y2log.

    An example log is shown in Figure 4.

    Figure 4: /var/log/YaST2/y2log shows debugging information for the installation.


    In this example, the log shows an opening and ending tag mismatch causing the problem with the AutoYaST control file on line 136.

  • File copy --- When creating the OES installation source, the netInstall.sh script asks whether or not to include the source CDs. Depending on the software selections in the control file and if the source CDs were copied to the installation source, the installation may prompt for additional CDs.
  • Configuration --- Watch the installation and make sure everything goes smoothly and is configured as expected. Verify the configuration after the install is completed before using AutoYaST in the live environment.

appendix a

Below is a basic AutoYaST control file that installs OES on a system with a single SCSI disk. The partitioning is basic. The server is installed in its own tree.

<?xml version="1.0"?>
<!DOCTYPE profile SYSTEM "/usr/share/autoinstall/dtd/profile.dtd">
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
  <configure>
    <groups config:type="list">
      <group>
        <groupname>video</groupname>

        <userlist>admin</userlist>
      </group>
      <group>
        <groupname>audio</groupname>
        <userlist>admin</userlist>

      </group>
      <group>
        <groupname>dialout</groupname>
        <userlist>admin</userlist>
      </group>

      <group>
        <groupname>uucp</groupname>
        <userlist>admin</userlist>
      </group>
    </groups>

    <networking>
      <dns>
        <dhcp_hostname config:type="boolean">false</dhcp_hostname>
        <dhcp_resolv config:type="boolean">false</dhcp_resolv>
        <domain>amg.com</domain>

        <hostname>autooes</hostname>
        <nameservers config:type="list">
          <nameserver>192.168.1.10</nameserver>
        </nameservers>
        <searchlist config:type="list">

          <search>amg.com</search>
        </searchlist>
      </dns>
      <interfaces config:type="list">
        <interface>

          <bootproto>static</bootproto>
          <broadcast>192.168.1.255</broadcast>
          <device>eth0</device>
          <ipaddr>192.168.1.11</ipaddr>

          <netmask>255.255.255.0</netmask>
          <network>192.168.1.0</network>
          <startmode>onboot</startmode>
        </interface>

      </interfaces>
      <modules config:type="list">
        <module_entry>
          <device>static-0</device>
          <module>pcnet32</module>

          <options></options>
        </module_entry>
      </modules>
      <routing>
        <ip_forward config:type="boolean">false</ip_forward>

        <routes config:type="list">
          <route>
            <destination>default</destination>
            <device>-</device>
            <gateway>192.168.1.10</gateway>

            <netmask>-</netmask>
          </route>
        </routes>
      </routing>
    </networking>

    <users config:type="list">
      <user>
        <encrypted config:type="boolean">true</encrypted>
        <fullname>admin</fullname>
        <gid>100</gid>

        <home>/home/admin</home>
        <password_settings>
          <expire></expire>
          <flag></flag>
          <inact>-1</inact>

          <max>99999</max>
          <min>0</min>
          <warn>7</warn>
        </password_settings>

        <shell>/bin/bash</shell>
        <uid>106</uid>
        <user_password>CN9OAawj3ha4c</user_password>
        <username>admin</username>

      </user>
      <user>
        <encrypted config:type="boolean">true</encrypted>
        <fullname>root</fullname>
        <gid>0</gid>

        <home>/root</home>
        <password_settings>
          <expire></expire>
          <flag></flag>
          <inact></inact>

          <max>10000</max>
          <min>0</min>
          <warn></warn>
        </password_settings>

        <shell>/bin/bash</shell>
        <uid>0</uid>
        <user_password>0n.iYTUsV/SdE</user_password>
        <username>root</username>

      </user>
    </users>
    <x11>
      <color_depth config:type="integer">16</color_depth>
      <configure_x11 config:type="boolean">true</configure_x11>

      <display_manager>kdm</display_manager>
      <enable_3d config:type="boolean">false</enable_3d>
      <monitor>
        <display>
          <frequency config:type="integer">72</frequency>

          <height config:type="integer">600</height>
          <width config:type="integer">800</width>
        </display>
        <monitor_device>800X600@72HZ</monitor_device>

        <monitor_vendor> VESA</monitor_vendor>
      </monitor>
      <resolution>800x600</resolution>
      <window_manager>kde</window_manager>

    </x11>
    <novell-ca>
	<password>novell</password>
    </novell-ca>
    <edirectory>

	<tree_name>autooes-tree</tree_name>
	<tree_type>new</tree_type>
	<existing_ip>192.168.1.11</existing_ip>
	<existing_ldap_secure_port config:type="integer">636</existing_ldap_secure_port>

	<all_static_ip config:type="list">
		<ip_address>192.168.1.11</ip_address>
	</all_static_ip>
	<admin_context>cn=admin.o=novell</admin_context>
	<admin_password>novell</admin_password>

	<server_context>o=novell</server_context>
	<ldap_port config:type="integer">389</ldap_port>
	<ldap_secure_port config:type="integer">636</ldap_secure_port>
	<http_port config:type="integer">8028</http_port>

	<https_port config:type="integer">8030</https_port>
	<ntp_server>Local Clock</ntp_server>
	<slp_mode>none</slp_mode>
	<slp_da></slp_da>

	<slp_scopes>DEFAULT</slp_scopes>
     </edirectory>
     <eguide>
	<host>192.168.1.11</host>
	<ldap_port config:type="integer">389</ldap_port>

	<ldap_secure_port config:type="integer">636</ldap_secure_port>
	<admin_context>cn=admin.o=novell</admin_context>
	<admin_password>novell</admin_password>
     </eguide>

     <imanager>
	<tree_name>autooes-tree</tree_name>
	<admin_name>cn=admin.o=novell</admin_name>
     </imanager>
     <iprint>

	<tree_name>autooes-tree</tree_name>
	<existing_ip>192.168.1.11</existing_ip>
	<edir_port config:type="integer">636</edir_port>
	<admin_context>cn=admin.o=novell</admin_context>

	<admin_password>novell</admin_password>
     </iprint>
     <lifeconsole>
	<ldap_address>192.168.1.11</ldap_address>
	<ldap_port config:type="integer">636</ldap_port>

	<admin_context>cn=admin.o=novell</admin_context>
	<admin_password>novell</admin_password>
     </lifeconsole>
     <linux-user-mgmt>
	<edir_ip_addr>192.168.1.11</edir_ip_addr>

	<ldap_port config:type="integer">389</ldap_port>
	<ldaps_port config:type="integer">636</ldaps_port>
	<admin_fdn>cn=admin.o=novell</admin_fdn>
	<admin_password>novell</admin_password>

	<partition_root>o=novell</partition_root>
	<ws_context>o=novell</ws_context>
	<proxy_user>cn=admin.o=novell</proxy_user>
	<proxy_user_password>novell</proxy_user_password>

	<services>
        	<login>yes</login>
        	<ftp>no</ftp>
        	<sshd>yes</sshd>

        	<su>yes</su>
        	<passwd>yes</passwd>
        	<rsh>no</rsh>
        	<rlogin>no</rlogin>

        	<xdm>yes</xdm>
        	<openwbem>yes</openwbem>
	</services>
    </linux-user-mgmt>
     <ncpserver>

	<admin_dn>cn=admin.o=novell</admin_dn>
	<admin_password>novell</admin_password>
     </ncpserver>
     <netstorage>
	<edir_server_host>192.168.1.11</edir_server_host>

	<admin_context>cn=admin.o=novell</admin_context>
	<admin_password>novell</admin_password>
	<ifolder2_host>192.168.1.11</ifolder2_host>
	<xtier_address>192.168.1.11</xtier_address>

	<xtier_proxy_context>cn=admin.o=novell</xtier_proxy_context>
	<xtier_proxy_password>novell</xtier_proxy_password>
	<xtier_users_context>o=novell</xtier_users_context>
     </netstorage>

     <novell-quickfinder>
	<ldap_server_context>o=novell</ldap_server_context>
	<admin_name>cn=admin.o=novell</admin_name>
	<admin_password>novell</admin_password>

	<user_name>cn=user.o=novell</user_name>
	<user_password>novell</user_password>
	<shadow_access>yes</shadow_access>
	<lum_enable>yes</lum_enable>

     </novell-quickfinder>
     <novell-vo>
	<address>192.168.1.11</address>
	<ldap_address>192.168.1.11</ldap_address>
	<ldap_secure_port config:type="integer">636</ldap_secure_port>

	<admin_context>cn=admin.o=novell</admin_context>
	<admin_password>novell</admin_password>
	<users_context>o=novell</users_context>
     </novell-vo>

     <novell-samba>
	<ldap_host>192.168.1.11</ldap_host>
	<ldap_ssl_port config:type="integer">636</ldap_ssl_port>
	<admin_context>cn=admin.o=novell</admin_context>

	<admin_password>novell</admin_password>
	<proxy_user_context>cn=admin.o=novell</proxy_user_context>
	<proxy_user_password>novell</proxy_user_password>
	<user_context>o=novell</user_context>

     </novell-samba>
     <sms>
	<server_ip>192.168.1.11</server_ip>
	<ldap_port config:type="integer">389</ldap_port>
	<ldap_secure_port config:type="integer">636</ldap_secure_port>

	<admin_context>cn=admin.o=novell</admin_context>
	<admin_password>novell</admin_password>
     </sms>
  </configure>
  <install>

    <general>
      <clock>
        <hwclock>localtime</hwclock>
        <timezone>US/Mountain</timezone>
      </clock>

      <keyboard>
        <keymap>english-us</keymap>
      </keyboard>
      <language>en_US</language>
      <mode>

        <confirm config:type="boolean">false</confirm>
        <forceboot config:type="boolean">false</forceboot>
      </mode>
      <mouse>
        <id>probe</id>

      </mouse>
    </general>
    <partitioning config:type="list">
      <drive>
        <device>/dev/sda</device>

	<use>all</use>
      </drive>
    </partitioning>
    <software>
      <addons config:type="list">

        <addon>Kde-Desktop</addon>
        <addon>Linux-Tools</addon>
        <addon>Base-System</addon>
        <addon>Basis-Sound</addon>

        <addon>SUSE-Documentation</addon>
        <addon>X11</addon>
        <addon>YaST2</addon>
        <addon>auth</addon>

        <addon>novell-base</addon>
        <addon>novell-eDirectory</addon>
        <addon>novell-eguide</addon>
        <addon>novell-health-monitoring</addon>

        <addon>novell-iManager</addon>
        <addon>novell-iPrint</addon>
        <addon>novell-life</addon>
        <addon>novell-lum</addon>

        <addon>novell-ncp</addon>
        <addon>novell-netStorage</addon>
        <addon>novell-nrm</addon>
        <addon>novell-nss</addon>

        <addon>novell-quickFinder</addon>
        <addon>novell-samba</addon>
        <addon>novell-sms</addon>
        <addon>novell-vo</addon>

        <addon>novell-web-services</addon>
        <addon>novell-welcome</addon>
        <addon>novell-yast2</addon>
      </addons>

      <base>novell-oes-all</base>
    </software>
  </install>
</profile>


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell