f5bb7a2bc6
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16553 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
239 lines
6.8 KiB
Plaintext
239 lines
6.8 KiB
Plaintext
=head1 NAME
|
|
|
|
B<buildkit> - build a product Kit to package software for installation in an xCAT cluster.
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
B<buildkit> [B<-?>|B<-h>|B<--help>] [B<-v>|B<--version>]
|
|
|
|
To build a new Kit
|
|
|
|
B<buildkit> [B<-V>|B<--verbose]> I<subcommand> [I<kit_name>] [I<repo_name>|B<all>] [B<-l>|B<--kitloc> I<directory>]
|
|
|
|
To add packages to an existing Kit.
|
|
|
|
B<buildkit> [B<-V>|B<--verbose>] I<addpkgs> I<kit_tarfile> [B<-p>|B<--pkgdir> I<package_directory>] [B<-k>|B<--kitversion> I<version>] [B<-r>|B<--kitrelease> I<release>] [B<-l>|B<--kitloc> I<directory>]
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
The B<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.
|
|
|
|
You will need to run the B<buildkit> command several times with different subcommands to step through the process of building a kit:
|
|
|
|
The following example illustrates the basic process for building a new Kit. It assumes that each subcommand will operate in the current working directory. You could specify a different location by using the "B<-l>|B<--kitloc> I<directory>" option.
|
|
|
|
In this example we are building a Kit named "mytstkit".
|
|
|
|
=over 4
|
|
|
|
=item 1.
|
|
|
|
Change to the directory where you wish to create the Kit.
|
|
|
|
=item 2.
|
|
|
|
Create a template directory for your kit:
|
|
|
|
B<buildkit create mytstkit>
|
|
|
|
=item 3.
|
|
|
|
Change directory to the new "mytstkit" subdirectory that was just created.
|
|
|
|
B<cd mytstkit>
|
|
|
|
=item 4.
|
|
|
|
Edit the buildkit configuration file for your kit:
|
|
|
|
B<vi buildkit.conf>
|
|
|
|
(See xCAT Kit documentation for details.)
|
|
|
|
=item 5.
|
|
|
|
Create all required files, scripts, plugins, and packages for your kit.
|
|
|
|
=item 6.
|
|
|
|
Validate your kit build configuration and fix any errors that are reported:
|
|
|
|
B<buildkit chkconfig>
|
|
|
|
=item 7.
|
|
|
|
List the repos defined in your buildkit configuration file:
|
|
|
|
B<buildkit listrepo>
|
|
|
|
=item 8.
|
|
|
|
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.
|
|
|
|
B<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:
|
|
|
|
B<buildkit buildrepo all>
|
|
|
|
=item 9.
|
|
|
|
Build the kit tar file:
|
|
|
|
B<buildkit buildtar>
|
|
|
|
|
|
=back
|
|
|
|
=head1 OPTIONS
|
|
|
|
=over 10
|
|
|
|
=item B<-h |--help>
|
|
|
|
Display usage message.
|
|
|
|
=item B<-k|--kitversion> I<version>
|
|
|
|
Product version.
|
|
|
|
=item B<-l|--kitloc>
|
|
|
|
The location of the Kit (including the Kit name).
|
|
|
|
=item B<-r|--kitrelease> I<release>
|
|
|
|
Product release.
|
|
|
|
=item B<-V |--verbose>
|
|
|
|
Verbose mode.
|
|
|
|
=item B<-v|--version>
|
|
|
|
Command version.
|
|
|
|
=back
|
|
|
|
=head1 SUB-COMMANDS
|
|
|
|
=over 10
|
|
|
|
=item B<create> I<kit_basename>
|
|
|
|
Creates a new kit build directory structure for kit I<kit_basename> in the current directory. The sample kit files from /opt/xcat/share/xcat/kits/kit_template are copied over, and the <cwd>/I<kit_basename>/buildkit.conf is modified for the specified I<kit_basename>.
|
|
|
|
=item B<chkconfig>
|
|
|
|
Reads the buildkit.conf file from the current directory, verifies that the file syntax is correct and that all specified files exist.
|
|
|
|
=item B<listrepo>
|
|
|
|
Reads the buildkit.conf file from the current directory, lists all Kit package repositories listed in the file, and reports the build status for each repository.
|
|
|
|
=item B<buildrepo> {I<repo_name> | B<all>}
|
|
|
|
Reads the buildkit.conf file from the current directory, and builds the specified Kit package repository. The built packages are placed in the directory <cwd>/build/kit_repodir/I<repo_name>. If B<all> is specified, all kit repositories are built.
|
|
|
|
=item B<cleanrepo> {I<repo_name> | B<all>}
|
|
|
|
Reads the buildkit.conf file from the current directory, and deletes all the package files and package meta data files from the <cwd>/build/kit_repodir/I<repo_name> directory. If B<all> is specified, all kit repository files are deleted.
|
|
|
|
=item B<buildtar>
|
|
|
|
Reads the buildkit.conf file from the current directory, validates that all kit repositories have been built, and builds the Kit tar file <cwd>/I<kitname>.tar.bz2.
|
|
|
|
=item B<cleantar>
|
|
|
|
Reads the buildkit.conf file from the current directory, deletes the Kit tar <cwd>/I<kitname>.tar.bz2, and deletes all files in the build work directory <cwd>/build/I<kitname>.
|
|
|
|
=item B<cleanall>
|
|
|
|
Equivalent to running B<buildkit cleanrepo all> and B<buildkit cleantar>.
|
|
|
|
=item B<addpkgs>
|
|
|
|
I<kit_tarfile> {B<-p> | B<--pkgdir> I<package_directory>} [B<-k> | B<--kitversion> I<version>] [B<-r> | B<--kitrelease> I<release>]
|
|
|
|
Add product package rpms to a previously built kit tar file. This is used for incomplete product kits that are built and shipped separately from the product packages, and are identified with a I<kit_tarfile> name of I<kitname>.B<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 I<cwd>/I<new_kitname>.B<tar.bz2>.
|
|
|
|
=back
|
|
|
|
=head1 RETURN VALUE
|
|
|
|
=over 3
|
|
|
|
=item 0
|
|
|
|
The command completed successfully.
|
|
|
|
=item 1
|
|
|
|
An error has occurred.
|
|
|
|
=back
|
|
|
|
=head1 EXAMPLES
|
|
|
|
=over 3
|
|
|
|
=item 1.
|
|
|
|
To create the sample kit shipped with the xCAT-buildkit rpm on a RHELS 6.3 server and naming it B<mykit>, run the following commands:
|
|
|
|
B<cd /home/myuserid/kits>
|
|
|
|
B<buildkit create mykit>
|
|
|
|
B<cd mykit>
|
|
|
|
B<vi buildkit.conf>
|
|
|
|
B<buildkit chkconfig>
|
|
|
|
B<buildkit listrepo>
|
|
|
|
B<buildkit buildrepo all >
|
|
|
|
B<buildkit buildtar>
|
|
|
|
=item 2.
|
|
|
|
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:
|
|
|
|
B<buildkit cleanrepo rhels6.3>
|
|
|
|
=item 3.
|
|
|
|
To clean up all kit build files, including a previously built kit tar file, run
|
|
|
|
B<buildkit cleanall>
|
|
|
|
=item 4.
|
|
|
|
To create the sample kit located in /home/foobar/tstkit instead of the current working directory.
|
|
|
|
B<buildkit create mykit -l /home/foobar/tstkit>
|
|
|
|
=back
|
|
|
|
=head1 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/I<kitname>/kit.conf
|
|
|
|
<kit location>/I<kitname>.tar.bz2
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
addkit(1), lskit(1), rmkit(1), addkitcomp(1), rmkitcomp(1), chkkitcomp(1)
|
|
|