Systems Manageability Part 3 - Provisioning and Deployment - Port 25: The Open Source Community at Microsoft
< Back to Blogs
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=http://<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.

Comments RSS
  1. ajaymm said:

    Kishi,

    Great Information, and I am not just saying that because you quoted me. I do think your summary on these products was really good. I have told that one of the big challenges with server provisioning is getting access to the BIOS information remotely or even making changes to the BIOS remotely. Do you think this is really that big of a challenge?

    Ajay Mungara

    posted at 01:03PM 05/04/2007
  2. boethius said:

    Hope you don't mind me plugging an open source solution I've developed to automate operating system deployments.

    I've developed a Web-based abstraction layer that pulls together the automatic installer semantics (kickstart, preseeding, unattended answer files, etc.) and the TFTP/PXE/DHCP backend.  It's called Fastdeploy.  Take a look some time.

    Fastdeploy's kind of like LinuxCOE or KickstartWeb but tries to be operating system "agnostic" and modularly support whatever OS and installer semantics you throw at it.

    I've tried not to make it overly "technical" like Cobbler or a lot of the command-line driven cluster management and deployment solutions.

    It's still early beta but it's coming along.  It takes some setting up - mainly getting all the OSes you want to deploy mirrored - Hopefully some shops that need to roll a lot of hardware and/or VMs find it helpful.

    posted at 07:23PM 05/04/2007
  3. kishi said:

    Ajay - you're absolutely correct. Remote BIOS access is still a conundrum to many. Some of the proprietary hardware like iLO board etc. have made a breakthrough in this area but the same options as well as the extent of functions/features are not available inany open source application to that extent.

    posted at 02:56PM 05/09/2007
  4. kishi said:

    Boethius - what you've narrated sounds very interesting. Is this an Open Source project or will this be more of a proprietary offering ? Also, who would you describe as the ideal audience for consuming this toolset you're working on ?

    posted at 02:59PM 05/09/2007
  5. boethius said:

    Kishi:  It is indeed open source.  Written in PHP.  Though I lean toward UNIX/Linux there's no technical reason why you can't use Windows - i.e., no real architecture or underlying OS dependencies.  Just need PHP + a web server + TFTP + DHCP + MySQL or other RDBMS.  TFTPD32 or the TFTP server used with RIS can be installed and used.

    Not sure I'd call it a "toolset" yet.  More of a standalone "tool" or "solution" that tries to be inclusive and get the auto-deployment job done entirely.  I would like to make its API more transparent and easier to access from a variety of languages and third-party packages (e.g., other server and desktop management solutions).  It's a little too self-inclusive and very dependent on HTTP requests to do tasks.  That will change someday but other tasks are higher on my priority list.

    The audience is basically anyone who wants to automate OS deployment - IT shops of any size, colocation and data centers, dedicated server companies, etc.  

    posted at 04:14PM 05/11/2007
  6. einhverfr said:

    Thanks, Kishi

    This is one of the most useful posts I have seen to date here on the matter of provisioning and deployment.

    One can also extned the idea of doing PXE boots to actually maintianing single PXE images for certain devices so that provisioning post-install becomes far easier (and you don't even *have* to install-- you just boot off the network).

    posted at 09:20PM 05/15/2007
  7. kishi said:

    einhverfr - THANK YOU for the candid comments. Please keep the feedback coming because that's the best way to understand how we add value to the conversation

    posted at 01:11AM 05/16/2007
  8. kishi said:

    beothius - I am really interested in learning more about this. How can we have this discussion offline ?

    posted at 01:12AM 05/16/2007
  9. boethius said:

    Kishi:  Check the web site (www.fastdeploy.com) and there should be plenty of contact methods there including an email contact form if you're interested in learning more or chatting with me about it.  I can probably arrange a demo as well.

    posted at 02:14AM 05/18/2007
  10. Port 25 said:

    System Configuration and Management encompasses all tasks related to the configuration of a host in a standardized and (when possible) centralized way. Many projects in this category provide a common configuration interface, either command-line or GUI-based,

    posted at 04:25PM 05/25/2007
Post a Comment
*
*