Building_Software_Kits

There is a newer version of this page. You can find it here.

New in xCAT 2.8. Supported for Linux OS images only.

TO BE WRITTEN!! This Document is a WORK IN PROGRESS

Introduction

Input to buildkit

buildkit.conf Configuration File

Product Packages

Scripts

xCAT Plugins

Documentation

The buildkit Process

To build a Kit, the following steps are required:

Install the xCAT-buildkit

Install the xCAT-buildkit RPM on your build server.

This rpm does not have any other dependencies on xCAT, and does not need to be installed on an xCAT management node. The buildkit utilities do require the rpmbuild and createrepo packages from the base Linux operating system.

Create Kit Template

Create a template work directory structure for your kit.

buildkit create <kit_basename>

This will create a sub-directory called "<kit_basename>" in your current directory. If you wish to your work directory in a different location you can specify it on the buildkit command line by using the "-l" option. See the buildkit manpage for details.

This Kit directory location will automatically be populated with additional subdirectories and sample files. See ??????? for details.

Edit the kit build configuration file.

To build a Kit, you need to modify the Kit build configuration file which is used to build the Kit tarfile, Kit Package Repositories, Kit Component Meta-Packages, and individual Kit Packages.

The name of the file is "buildkit.conf" and it is located in the Kit template work directory that you just created.

Partial vs. complete Kits

Copy Files into the Kit directory structure

After editing the buildkit configuration file (buildkit.conf), you need to copy files into the Kit directory structure.

The types of files you need to copy are:

Source Packages - IBM HPC Product RPM packages. - These files should be copied to:

&lt;Kit directory location&gt;/source_packages

Deployment Scripts - These files should be copied to:

&lt;Kit directory location&gt;/scripts

Plugins - For IBM HPC Products in this first release, no plugins will be developed. However, future support may be considered by the product packaging developers. For example, GPFS may choose to implement a nodemgmt.pm plugin that would add a new node to the GPFS cluster. - These files should be copied to:

&lt;Kit directory location&gt;/plugins

Doc Files - These files should be copied to:

&lt;Kit directory location&gt;/docs

Other Files - These include: kit deployment parameter file, exclude lists - These files should be copied to:

&lt;Kit directory location&gt;/other_files

When you copy these files, make sure their location matches what is in the Kit Build File. For example, if the location of an RPM spec file is “pkg2/pkg2.spec” in the Kit Build File, then the actual spec file should be found in this location:

&lt;Kit directory location&gt;/source_packages/pkg2/pkg2.spec

Validate the Kit Build File

After you copy the files to your kit build directory, you can manually run a command to validate if the buildkit configuration file is correct:

buildkit chkconfig

This will verify that all required fields are specified, that all internally referenced attributes are defined, and that all referenced files exist. Fix any errors that are reported.

Build the Kit Package Repositories

After the buildkit configuration file is validated, you build the Kit Package Repositories.

You may need to build these on a build host which has the same OS name/version/distro as the Kit Package Repository. What this means is if you have one RHEL 6 repo, and one SLES 11 repo, then you must log into a RHEL 6 host to build the first repo, then log into a SLES 11 host to build the second repo.

For IBM HPC Products, since you are using pre-built rpms, you should be able to build all repositories on the same server since there should not be anything OS/arch specific in the kitcomponent meta-package rpm build.

buildkit buildrepo &lt;Kit Pkg Repo&gt;

or

buildkit buildrepo all

If the Kit Package Repository is already fully built, then this command performs no operation.

  1. If the Kit Package Repository is not fully built, the command builds it as follows:
  2. Create the Kit Package Repository directory “<Kit directory location>/build/kit_repodir/<Kit Pkg Repo> “
  3. Build the Component Meta-Packages associated with this Kit Package Repository. Create the packages under the Kit Package Repository directory
  4. Build the Kit Packages associated with this Kit Package Repository. Create the packages under the Kit Package Repository directory
  5. Build the repository meta-data for the Kit Package Repository. The repository meta-data is based on the OS native package format. For example, for RHEL, we build YUM repository meta-data with the createrepo command.

Build Kit Tarfile

After you build the Kit Package Repositories, you can build the final Kit tarfile.

buildkit buildtar

Kit directory structure

├── buildkit.conf │ ├── source_packages/ │ └── sample/ │ └── pkg1/ │ └── pkg1-1-

Sample buildkit.conf file


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.