buildkit.1
NAME
buildkit - Used to build a software product Kit which may be used to install software in an xCAT cluster.
SYNOPSIS
buildkit [-? | -h | --help] [-v | --version]
To build a new Kit
buildkit [-V | --verbose] subcommand [kit_name] [repo_name | all] [-l | --kitloc kit_location]
To add packages to an existing Kit.
buildkit [-V | --verbose] addpkgs kit_tarfile [-p | --pkgdir package_directory_list] [-k | --kitversion version] [-r | --kitrelease release] [-l | --kitloc kit_location]
DESCRIPTION
The buildkit command provides a collection of utilities that may be used to package a software product as a Kit tarfile that can be used to install software on the nodes of an xCAT cluster. A Kit contains the product software packages, configuration and control information, and install and customization scripts.
Note: The xCAT support for Kits is only available for Linux operating systems.
You will need to run the buildkit command several times with different subcommands to step through the process of building a kit:
By default the buildkit subcommands will operate in the current working directory, (ie. look for files, create directories etc.). You could specify a different location by using the “-l | --kitloc kit_location“ option.
The kit_location is the full path name of the directory that contains the kit files. You would use the same location value for all the buildkit subcommands.
For example, to create a new kit named “prodkit” in the directory /home/mykits/ either run:
If no location is provided then the command will create a subdirectory called “prodkit” in the current directory “/home/mykits” and the new kit files will be created there.
cd /home/mykits
buildkit create prodkit
or
If a location is provided then the Kit files will be created there. Note that the Kit name does not necessarily have to be the directory name where the kit files are located.
buidkit create prodkit -l /home/mykits/prodkit
In both cases the /home/mykits/prodkit directory is created and the inital files for the kit are created in that directory.
The following example illustrates the basic process for building a new Kit. In this example we are building a Kit named “mytstkit”.
Change to the directory where you wish to create the Kit.
Create a template directory for your kit:
buildkit create mytstkit
Change directory to the new “mytstkit” subdirectory that was just created.
cd mytstkit
Edit the buildkit configuration file for your kit:
vi buildkit.conf
(See xCAT Kit documentation for details.)
Create all required files, scripts, plugins, and packages for your kit.
Validate your kit build configuration and fix any errors that are reported:
buildkit chkconfig
List the repos defined in your buildkit configuration file:
buildkit listrepo
For each repo name listed, build the repository. Note that if you need to build repositories for OS distributions, versions, or architectures that do not match the current system, you may need to copy your kit template directory to an appropriate server to build that repository, and then copy the results back to your main build server. For example, to build a repo named “rhels6.3” you would run the following command.
buildkit buildrepo rhels6.3
or, you can build all of the repos at one time if there are no OS or architecture dependencies for kitcomponent package builds or kitpackage builds:
buildkit buildrepo all
Build the kit tar file:
buildkit buildtar
OPTIONS
-h |--help
Display usage message.
-k|--kitversion version
Product version.
-l|--kitloc kit_location
The directory location of the Kit files.
-p|--pkgdir package_directory_list
A comma-separated list of directory locations for product RPMs.
-r|--kitrelease release
Product release.
-V |--verbose
Verbose mode.
-v|--version
Command version.
SUB-COMMANDS
create kit_basename
Creates a new kit build directory structure for kit kit_basename using the location specified on the command line or the current directory. The sample kit files from /opt/xcat/share/xcat/kits/kit_template are copied over, and the buildkit.conf file is modified for the specified kit_basename.
chkconfig
Reads the buildkit.conf file, verifies that the file syntax is correct and that all specified files exist.
listrepo
Reads the buildkit.conf file, lists all Kit package repositories listed in the file, and reports the build status for each repository.
buildrepo {repo_name | all}
Reads the buildkit.conf file, and builds the specified Kit package repository. The built packages are placed in the directory <kit_location>/build/kit_repodir/repo_name. If all is specified, all kit repositories are built.
cleanrepo {repo_name | all}
Reads the buildkit.conf file, and deletes all the package files and package meta data files from the <kit_location>/build/kit_repodir/repo_name directory. If all is specified, all kit repository files are deleted.
buildtar
Reads the buildkit.conf file, validates that all kit repositories have been built, and builds the Kit tar file <kit_location>/kitname.tar.bz2.
cleantar
Reads the <kit_location>/buildkit.conf file and deletes the following:
Kit tar files matching <kit_location>/kit_name\.tar.bz2*.
<kit_location>/build/kit_name
<kit_location>/rpmbuild
<kit_location>/tmp
<kit_location>/debbuild
Caution: Make sure you back up any tar files you would like to keep before running this subcommand.
cleanall
Equivalent to running buildkit cleanrepo all and buildkit cleantar.
addpkgs
kit_tarfile {-p | --pkgdir package_directory_list} [-k | --kitversion version] [-r | --kitrelease release]
Add product package rpms to a previously built kit tar file. This is used for partial product kits that are built and shipped separately from the product packages, and are identified with a kit_tarfile name of kitname.NEED_PRODUCT_PKGS.tar.bz2. Optionally, change the kit release and version values when building the new kit tarfile. If kitcomponent version and/or release values are defaulted to the kit values, those will also be changed and new kitcomponent rpms will be built. If kit or kitcomponent scripts, plugins, or other files specify name, release, or version substitution strings, these will all be replaced with the new values when built into the new complete kit tarfile kit_location/new_kitname.tar.bz2.
RETURN VALUE
<B>0
The command completed successfully.
<B>1
An error has occurred.
EXAMPLES
To create the sample kit shipped with the xCAT-buildkit rpm on a RHELS 6.3 server and naming it mykit, run the following commands:
cd /home/myuserid/kits
buildkit create mykit
cd mykit
vi buildkit.conf
buildkit chkconfig
buildkit listrepo
buildkit buildrepo all
buildkit buildtar
To clean up a kit repository directory after build failures on a RHELS 6.3 server to prepare for a new kit repository build, run:
buildkit cleanrepo rhels6.3
To clean up all kit build files, including a previously built kit tar file, run
buildkit cleanall
To create a kit named “tstkit” located in /home/foobar/tstkit instead of the current working directory.
buildkit create tstkit -l /home/foobar/tstkit
FILES
/opt/xcat/bin/buildkit
/opt/xcat/share/xcat/kits/kit_template
/opt/xcat/share/xcat/kits/kitcomponent.spec.template
<kit location>/buildkit.conf
<kit location>/build/kitname/kit.conf
<kit location>/kitname.tar.bz2
SEE ALSO
addkit(1), lskit(1), rmkit(1), addkitcomp(1), rmkitcomp(1), chkkitcomp(1)