Systems Manageability Part 3 - Provisioning and Deployment

by kishi on May 03, 2007 03:29pm

I want to start this blog with a note of Thanks to Ajay Mungara, the Manageability Developer Community Manager from Intel and “einhverfr”, both of whom gave some very constructive feedback on the previous blog. In the next six blogs to follow, including this one, I will do a “deep-dive” into the six specific areas we covered under the “Systems Manageability” ontology.

Let’s start this blog with the first of the six categories from the ontology -  “Deployment and Provisioning”

Level-Set: Deployment and Provisioning as we understand it, encompasses all tasks related to the initial installation of an operating system on remote system, as well as post-installation of software on a remote system.  Much of these toolsets are geared toward automated system provisioning and cloning. There’s lots of different tools out there that can be used but we have focused on the most popular ones, namely Kickstart, Autoyast, “Bare-Metal” provisioning and RedHat Network. In the paragraphs to follow, we have attempted to lay out our understanding of these tools after using them in the OSSL:

I.KICKSTART: is an automated installation utility for RedHat-based systems, including Fedora Core and RHEL based systems.  Kickstart software requires the creation of a configuration file (similar to an “answer file” in Windows lingo) which contains all the information the installation program will require to install the operating system.  The configuration file and all the RPM software packages are typically kept on a remote server such as a HTTP or FTP. The location of the Kickstart configuration file is typically passed to the kernel at boot time.  For example, once the bootloader (GRUB, LILO) loads, the user is often presented with a “boot:” prompt that allows the user to pass arguments to the kernel.  To load a kickstart configuration file from a remote server one would type the following:

boot: linux ks=https://<server>/location/of/kickstart.cfg

The administrator can then create multiple Kickstart configuration files for different configurations.  With the addition of a PXE-based server, much of the provisioning process can be automated. A Kickstart configuration file is simply a text file, which can be created and edited manually with any text-editor.  A GUI-based Kickstart file creation program called system-config-kickstart is also available from the Fedora and RHEL distributions. Both kickstart and autoYaST provide the ability to run arbitrary commands during the post-installation phase.  This allows administrators to run individual commands, or entire shell scripts to automate any post installation tasks that may be required.  RedHat provides a GUI-based tool to assist one in building a kickstart configuration , however in practice it is very easy to customize the configuration file by hand.  The ability to run shell commands via the post-configuration phase is simple yet extremely powerful.

II. AutoYaST: is another automated installation utility, similar to RedHat’s Kickstart utility, but used primarily with SUSE-based systems.  Novell provides a YaST2 module for autoYaST, which is a GUI tool that can be used to create an autoYaST configuration file – also similar to RedHat’s system-config-kickstart utility. Many of the same rules and procedures used with the kickstart utility also apply to autoYaST.  Administrators that need to deploy SUSE clients or servers can create any number of autoYaST configuration files to fit a particular system profile.  These can then be used to automate the installation of a SUSE system over a network.  When combined with PXE/DHCP setup administrators can deploy and start a SUSE install without using any physical media (i.e. an installation CD/DVD).

III. Bare-Metal Provisioning: Automated deployment tools such as Kickstart and Autoyast support system provisioning via HTTP, (T)FTP and NFS.  Completely automated installations can also be configured using the Pre-Execution Environment (PXE), DHCP, tftp and kickstart or autoyast.  By automating the boot process, it no longer becomes necessary to manually initialize the installation process via a CDROM or other bootable medium.

Many cluster deployment solutions utilize these very same technologies to deploy large numbers of nodes in a very short time.  ROCKS, for example, automates the booting and (re)deployment cluster nodes on the network using PXE, DHCP and kickstart, a process that can sometimes require less than 10-minutes for a single node.  Proprietary tools such as CSM, IBM’s cluster management software, also utilizes PXE, DHCP and kickstart or autoYaST to (re)provision cluster nodes as needed.

  • Configuring a PXE Server for Automated Installations: There are two common utilities one may use to configure a PXE server on Linux.  Testing for this scenario was done using a RedHat based system.  Therefore some aspects of the following descriptions, such as locations of configuration files, will be RedHat-centric.  The general necessity of the configuration and the components, however, are not distribution specific.

 

    • pxeos – This utility can be used to configure operating system descriptions within the PXE boot files.  Operating system descriptions include the OS name, the protocol used to obtain the OS files (HTTP, FTP, NFS) and the full URI and path to the installation files.
    • system-config-netboot – The system-config-netboot utility is a graphical application that can perform many of the same tasks as the pxeos utility.
  • Configuring DHCP: The DHCP daemon can be configured via the /etc/dhcpd.conf file.  Those options that are specific to allowing PXE boot clients are listed below.

allow bootp;

class "pxeclients" {

match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";

   filename "linux-install/pxelinux.0";

}

  • Configuring TFTP: The TFTP daemon must first be enabled via xinetd super daemon.  The following configuration is added to /etc/xinetd.conf, or sometimes /etc/xinetd.d/tftp, depending on the distribution:

service tftp

{

        disable                 = no

        port                    = 69

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}
TFTP Configuration in xinetd.conf

The directory /tftpboot/linux-install is the default used by the system-config-netboot configuration tool.  The directory contains kernels and the necessary configuration files required to boot a system and begin a kickstart installation.  The configuration file /tftpboot/linux-install/pxelinux.cfg/pxeos.xml contains specific definitions about which network install profiles are available to PXE boot clients.

That’s it for the Provisioning and Deployment section. As always, please let us know if you found the above mentioned useful and any comments/feedback you may have. Thank you for tuning into Port25.