2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-21 19:22:05 +00:00

Refactor the Software Kit documentation section to define the concept

of prebuilt and custom kits.
- prebuilt kits are HPC software kits , complete kits, that are
ready to use
- custom kits will describe the kit framework and have instructions
to help users create their own software kits
This commit is contained in:
Victor Hu 2016-03-01 16:23:49 -05:00
parent b8e868bb7f
commit c99dbc44bd
26 changed files with 853 additions and 460 deletions

View File

@ -98,7 +98,7 @@ def fix_double_dash(rst_file):
build_db_man_pages()
# List the xCAT component directory which contain pod pages
COMPONENTS = ['xCAT-SoftLayer', 'xCAT-test', 'xCAT-client', 'xCAT-vlan', 'perl-xCAT']
COMPONENTS = ['xCAT-SoftLayer', 'xCAT-test', 'xCAT-client', 'xCAT-vlan', 'perl-xCAT', 'xCAT-buildkit']
for component in COMPONENTS:
for root,dirs,files in os.walk("%s" %(component)):

View File

@ -1,13 +1,13 @@
Creating a New Kit
-------------------
==================
Use the **buildkit** command to create a kit template directory structure ::
Use the :doc:`buildkit </guides/admin-guides/references/man1/buildkit.1>` command to create a kit template directory structure ::
buildkit create <kit_basename> [-l|--kitloc <kit location>]
buildkit create <kitbasename> [-l|--kitloc <kit location>]
The Kit Directory
`````````````````
Kit Directory
-------------
The Kit directory location will be automatically populated with additional subdirecotries and samples:
@ -39,10 +39,10 @@ The Kit directory location will be automatically populated with additional subd
**<kitname>** - The kit tar file, partial kit name or complete kit tar file name (ex. kitname.tar.bz2)
The Kit Configuration File
```````````````````````````
Kit Configuration File
----------------------
The sample buildkit.conf file contains a description of all the supported attributes and an indication of whether or not they are required or optional. The user need to modify this file for the product kit he/she is building. The file contains stanza format.
The ``buildkit.conf`` file is a sample file that contains a description of all the supported attributes and indicates required or optional fields. The user needs to modify this file for the software kit to be built. [#]_
**kit** --- This stanza defines general information for the Kit. There must be exactly one kit stanza in a kit build file. ::
@ -135,24 +135,17 @@ The sample buildkit.conf file contains a description of all the supported attrib
kitrepoid=rhels6_x86_64,sles11_x86_64
**Note**: The latest version of the buildkit.conf file is located in the ``/opt/xcat/share/xcat/kits/kit_template`` directory.
.. [#] The latest version of the ``buildkit.conf`` file is located in the ``/opt/xcat/share/xcat/kits/kit_template`` directory.
Partial vs. Complete Kits
`````````````````````````
A **Complete** software kit includes all the product software. A **Partial** kit is one that does not include the product packages. the "isexternalpkg=yes" needs to set in the "kitpackage" stanzas in the buildkit.conf file if user wants a parital kit. ::
-------------------------
A **complete** software kits includes all the product software and is ready to be consumed as is. A **partial** software kit is one that does not include all the product packages and requires the consumer to download the product software and complete the kit before it can be consumed.
To build partial kits, the ``isexternalpkg=yes`` needs to be set in the ``kitpackage`` stanza in the ``buildkit.conf`` file: ::
kitpackage:
filename=foobar_runtime-*.x86_64.rpm
kitrepoid=rhels6_x86_64
isexternalpkg=yes
In this case, the user has to download both the kit tarfiles and the product packages in order to complete the kit before use it in an xCAT cluster.

View File

@ -1,5 +1,5 @@
Building Kits
===================
=============
.. toctree::
:maxdepth: 2
@ -10,4 +10,3 @@ Building Kits
kitrepo.rst
kittarfile.rst

View File

@ -1,5 +1,5 @@
Building the Kit Package Repositories
-------------------------------------
Build Kit Repositories
======================
After the buildkit configuration file is validated, run the ``buildrepo`` subcommand to build the Kit Package Repositories. The build server has to have same OS distributions, versions, or architectures with build kit repositories. User can copy the kit template directory to an appropriate server to build the repository then copy the results back the current system.

View File

@ -1,5 +1,5 @@
Building the Kit Tarfile
-------------------------
Build Tar File
==============
After the Kit package repositories are built, run the ``buildtar`` subcommand in the Kit directory to build the final kit tarfile. ::
@ -15,7 +15,8 @@ A partial kit will have "NEED_PRODUCT_PKGS" string in its name: ::
Using Partial Kits with newer Software Versions
````````````````````````````````````````````````
------------------------------------------------
If the product packages are for a newer version or release than what specified in the partial kit tar file name, user may still be able to build a complete kit with the packages, assuming that the partial kit is compatible with those packages.
Note: Basically, the latest partial kit available online will work until there is a newer version available.
@ -29,7 +30,8 @@ For example, if the partial kit was created for a product version of 1.3.0.2 but
Completing a partial kit
`````````````````````````
------------------------
Follow these steps to complete the kit build process for a partial kit.
#. copy the partial kit to a working directory
@ -41,7 +43,7 @@ Follow these steps to complete the kit build process for a partial kit.
buildkit addpkgs <kit.NEED_PRODUCT_PKGS.tar.bz2> --pkgdir <product package directories>
The Complete kit tar file will be created in the working directory
The complete kit tar file will be created in the working directory

View File

@ -0,0 +1,9 @@
Custom Kits - Creating Software Kits
====================================
.. toctree::
:maxdepth: 2
introduction.rst
build/index.rst
using/index.rst

View File

@ -0,0 +1,65 @@
Introduction
============
Contents
--------
A Software Kit is a tar file that contains the following:
**Kit Configuration File** --- A file describing the contents of this kit and contains following information
* Kit name, version, description, supported OS distributions, license information, and deployment parameters
* Kit repository information including name, supported OS distributions, and supported architectures
* Kit component information including name, version, description, server roles, scripts, and other data
**Kit Repositories** --- A directory for each operating system version this kit is supported in. Each directory contains all of the product software packages required for that environment along with repository metadata.
**Kit Components** --- A product "meta package" built to require all of the product software dependencies and to automatically run installation and configuration scripts.
**Kit and Kit Component Files** --- Scripts, deployment parameters, exclusion lists, and other files used to install and configure the kit components and product packages.
**Docs** [PCM only] [#]_ --- Product documentation shipped as HTML files that can be displayed through the PCM GUI
**Plugins** [PCM only] --- xCAT plugins that can be used for additional product configuration and customization during PCM image management and node management
Kit Components
--------------
Software Kits are deployed to xCAT managed nodes through the xCAT osimage deployment mechanism. The kit components are inserted into the attributes of the Linux ``osimage`` definition. The attributes that are modified are the following:
* kitcomponents - A list of the kitcomponents assigned to the OS image
* serverrole - The role of this OS image that must match one of the supported serverroles of a kitcomponent
* otherpkglist - Includes kitcomponent meta package names
* postinstall - Includes kitcomponent scripts to run during genimage
* postbootscripts - Includes kitcomponent scripts
* exlist - Exclude lists for diskless images
* otherpkgdir - Kit repositories are linked as subdirectories to this directory
Once the kit components are added to xCAT osimage definitions, administrators can use:
#. standard node deployment for installing the kit components during diskful OS provisioning
#. ``genimage`` command to create a diskless OS image installing the kit components for diskless OS provisioning
#. ``updatenode`` command to install the kit components on existing deployed nodes
The ``kitcomponent`` metadata defines the kit packages as dependency packages and the OS package manager (``yum``, ``zypper``, ``apt-get``) automatically installes the required packages during the xCAT ``otherpkgs`` install process.
Kit Framework
-------------
With time, the implementation of the xCAT Software Kit support may change.
In order to process a kit successfully, the kit must be conpatiable with the level of xCAT code that was used to build the kit. The xCAT kit commands and software kits contain the framework version and compatiable supported versions.
To view the framework version, use the ``-v | --version`` option on :doc:`addkit </guides/admin-guides/references/man1/addkit.1>` ::
# addkit -v
addkit - xCAT Version 2.11 (git commit 9ea36ca6163392bf9ab684830217f017193815be, built Mon Nov 30 05:43:11 EST 2015)
kitframework = 2
compatible_frameworks = 0,1,2
If the commands in the xCAT installation is not compatiable with the Software Kit obtained, update xCAT to a more recent release.
.. [#] PCM is IBM Platform Cluster Manager

View File

@ -0,0 +1,10 @@
Using Kits
==========
.. toctree::
:maxdepth: 2
addkit.rst
addkitcomp.rst
update.rst
remove.rst

View File

@ -0,0 +1,12 @@
Prebuilt Kits - IBM High Performance Computing
==============================================
The IBM High Performance Computing (HPC) software can be installed by xCAT using Software Kits. Most products ship the complete Software Kit on the distribution media and can be consumed "as is".
.. toctree::
:maxdepth: 2
quickstart.rst
software/index.rst

View File

@ -0,0 +1,148 @@
Quick Start Guide
=================
This quick start is provided to guide users through the steps required to install the IBM High Performance Computing (HPC) software stack on a cluster managed by xCAT.
The following software kits will be used to install the IBM HPC software stack on to a RedHat Enterprise Linux 7.2 operating system running on ppc64le architecture.
* ``xlc-13.1.3-0-ppc64le.tar.bz2`` [1]_
* ``xlf-15.1.3-0-ppc64le.tar.bz2`` [1]_
* ``pperte-2.3.0.0-1547a-ppc64le.tar.bz2``
* ``pperte-2.3.0.2-s002a-ppc64le.tar.bz2``
* ``essl-5.4.0-0-ppc64le.tar.bz2``
* ``pessl-5.2.0-0-ppc64le.tar.bz2``
* ``ppedev-2.2.0-0.tar.bz2``
.. [1] This guide assumes that the **complete** software kit is available for all the products listed below. For the IBM XL compilers, follow the :doc:`IBM XL Compiler </advanced/kit/hpc/software/compilers>` documentation to obtain the software and create the **complete** kit before proceeding.
1. Using the ``addkit`` command, add each software kit package into xCAT: ::
addkit xlc-13.1.3-0-ppc64le.tar.bz2,xlf-15.1.3-0-ppc64le.tar.bz2
addkit pperte-2.3.0.0-1547a-ppc64le.tar.bz2,pperte-2.3.0.2-s002a-ppc64le.tar.bz2
addkit pessl-5.2.0-0-ppc64le.tar.bz2,essl-5.4.0-0-ppc64le.tar.bz2
addkit ppedev-2.2.0-0.tar.bz2
The ``lskit`` command can be used to view the kits after adding to xCAT.
2. Using the ``addkitcomp`` command, add the kitcomponent to the target osimage.
The order that the kit components are added to the osimage is important due to dependencies that kits may have with one another, a feature to help catch potential issues ahead of time. There are a few different types of dependencies:
* **internal kit dependencies** - kit components within the software kit have dependencies. For example, the software has a dependency on it's license component. The ``-a`` option will automatically resolve internal kit dependencies.
* **external kit dependencies** - a software kit depends on another software provided in a separate kit. The dependency kit must be added first. ``addkitcomp`` will complain if it cannot resolve the dependency.
* **runtime dependencies** - the software provided in the kit has rpm requirements for external 3rd party RPMs not shipped with the kit. The administrator needs to configure these before deploying the osimage and ``addkitcomp`` cannot detect this dependencies.
In the following examples, the ``rhels7.2-ppc64le-install-compute`` osimage is used and the ``-a`` option is specified to resolve internal dependencies.
#. Add the **XLC** kitcomponents to the osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
xlc.compiler-compute-13.1.3-0-rhels-7.2-ppc64le
#. Add the **XLF** kitcomponents to the osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
xlf.compiler-compute-15.1.3-0-rhels-7.2-ppc64le
#. Add the PE RTE GA, **pperte-1547a**, kitcomponents to the osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pperte-login-2.3.0.0-1547a-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
min-pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le
#. Add the PE RTE PTF2, **pperte-s002a**, kitcomponents to the osimage.
The PTF2 update requires the ``pperte-license`` component, which is provided by the GA software kit. The ``addkitcomp -n`` option allows for multiple versions of the same kit component to be installed into the osimage. If only the PTF2 version is intended to be installed, you can skip the previous step for adding the GA ppetre kit component, but the GA software kit must have been added to xCAT with the ``addkit`` command in order to resolve the license dependency. ::
addkitcomp -a -n -i rhels7.2-ppc64le-install-compute \
pperte-login-2.3.0.2-s002a-rhels-7.2-ppc64le
addkitcomp -a -n -i rhels7.2-ppc64le-install-compute \
pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le
addkitcomp -a -n -i rhels7.2-ppc64le-install-compute \
min-pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le
#. Add the **ESSL** kitcomponents to the osimage.
The ESSL software kit has an *external dependency* to the ``libxlf`` which is provided in the XLF software kit. Since it's already added in the above step, there is no action needed here.
If CUDA toolkit is being used, ESSL has a runtime dependency on the CUDA rpms. The adminstrator needs to create the repository for the CUDA 7.5 toolkit or a runtime error will occur when provisioning the node. See the :doc:`/advanced/gpu/nvidia/repo/index` section for more details about setting up the CUDA repository on the xCAT management node. ::
#
# Assuming that the cuda repo has been configured at:
# /install/cuda-7.5/ppc64le/cuda-core
#
chdef -t osimage rhels7.2-ppc64le-install-compute \
pkgdir=/install/rhels7.2/ppc64le,/install/cuda-7.5/ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-6464rte-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-3264rte-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-loginnode-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-3264rtecuda-5.4.0-0-rhels-7.2-ppc64le
#. Add the **Parallel ESSL** kitcomponents to osimage.
*Note:* ESSL kitcomponents are required for the PESSL. ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pessl-loginnode-5.2.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pessl-computenode-5.2.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pessl-computenode-3264rtempich-5.2.0-0-rhels-7.2-ppc64le
#. Add the **PE DE** kitcomponents to osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
ppedev.login-2.2.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
ppedev.compute-2.2.0-0-rhels-7.2-ppc64le
3. The updated osimage now contains the configuration to install using xCAT software kits: ::
lsdef -t osimage rhels7.2-ppc64le-install-compute
Object name: rhels7.2-ppc64le-install-compute
exlist=/install/osimages/rhels7.2-ppc64le-install-compute-kits/kits/KIT_COMPONENTS.exlist
imagetype=linux
kitcomponents=xlc.license-compute-13.1.3-0-rhels-7.2-ppc64le,xlc.rte-compute-13.1.3-0-rhels-7.2-ppc64le,xlc.compiler-compute-13.1.3-0-rhels-7.2-ppc64le,xlf.license-compute-15.1.3-0-rhels-7.2-ppc64le,xlf.rte-compute-15.1.3-0-rhels-7.2-ppc64le,xlf.compiler-compute-15.1.3-0-rhels-7.2-ppc64le,pperte-license-2.3.0.0-1547a-rhels-7.2-ppc64le,pperte-login-2.3.0.0-1547a-rhels-7.2-ppc64le,pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le,min-pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le,pperte-login-2.3.0.2-s002a-rhels-7.2-ppc64le,pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le,min-pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le,essl-license-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-3264rte-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-6464rte-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-5.4.0-0-rhels-7.2-ppc64le,essl-loginnode-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-3264rtecuda-5.4.0-0-rhels-7.2-ppc64le,ppedev.license-2.2.0-0-rhels-7.2-ppc64le,ppedev.login-2.2.0-0-rhels-7.2-ppc64le,ppedev.compute-2.2.0-0-rhels-7.2-ppc64le,pessl-license-5.2.0-0-rhels-7.2-ppc64le,pessl-loginnode-5.2.0-0-rhels-7.2-ppc64le,pessl-computenode-5.2.0-0-rhels-7.2-ppc64le,pessl-computenode-3264rtempich-5.2.0-0-rhels-7.2-ppc64le
osarch=ppc64le
osdistroname=rhels7.2-ppc64le
osname=Linux
osvers=rhels7.2
otherpkgdir=/install/post/otherpkgs/rhels7.2/ppc64le
otherpkglist=/install/osimages/rhels7.2-ppc64le-install-compute-kits/kits/KIT_DEPLOY_PARAMS.otherpkgs.pkglist,/install/osimages/rhels7.2-ppc64le-install-compute-kits/kits/KIT_COMPONENTS.otherpkgs.pkglist
pkgdir=/install/rhels7.2/ppc64le,/install/cuda-7.5/ppc64le
pkglist=/opt/xcat/share/xcat/install/rh/compute.rhels7.pkglist
postbootscripts=KIT_pperte-login-2.3.0.0-1547a-rhels-7.2-ppc64le_pperte_postboot,KIT_pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le_pperte_postboot,KIT_min-pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le_pperte_postboot,KIT_pperte-login-2.3.0.2-s002a-rhels-7.2-ppc64le_pperte_postboot,KIT_pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le_pperte_postboot,KIT_min-pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le_pperte_postboot
profile=compute
provmethod=install
template=/opt/xcat/share/xcat/install/rh/compute.rhels7.tmpl
4. The osimage is now ready to deploy to the compute nodes.

View File

@ -0,0 +1,83 @@
IBM XL Compilers
================
IBM provides XL compilers with advanced optimizing on IBM Power Systems running Linux.
For more information, http://www-03.ibm.com/software/products/en/xlcpp-linux
Partial Kits
------------
The IBM XL compilers are dependencies for some of the HPC software products and is **not** available in xCAT Software Kit format.
To assist customers in creating a software kit for the IBM XL compilers, xCAT provides partial kits at: https://xcat.org/files/kits/hpckits/
Creating Compiler Complete Kit
------------------------------
To use software kits that require compiler kit components, a compiler software kit must be available. The following example will outline the steps required to create the ``xlc-12.1.0.8-151013-ppc64.tar.bz2`` compiler software kit. Repeat the steps for each compiler kit required.
#. xCAT ``buildkit`` command requires ``createrepo`` is available on the machine: ::
which createrepo
If not available, use the default OS package manager to install. (``yum``, ``zypper``, ``apt-get``)
#. Obtain the IBM XL compilers rpms from the IBM Download site.
**xlc-12.1.0.8** is downloaded to ``/tmp/kits/xlc-12.1.0.8`` ::
# ls -1 /tmp/kits/xlc-12.1.0.8/
vac.cmp-12.1.0.8-151013.ppc64.rpm
vac.lib-12.1.0.8-151013.ppc64.rpm
vac.lic-12.1.0.0-120323.ppc64.rpm
vacpp.cmp-12.1.0.8-151013.ppc64.rpm
vacpp.help.pdf-12.1.0.8-151013.ppc64.rpm
vacpp.lib-12.1.0.8-151013.ppc64.rpm
vacpp.man-12.1.0.8-151013.ppc64.rpm
vacpp.rte-12.1.0.8-151013.ppc64.rpm
vacpp.rte.lnk-12.1.0.8-151013.ppc64.rpm
vacpp.samples-12.1.0.8-151013.ppc64.rpm
xlc_compiler-12.1.0.8-151013.noarch.rpm
xlc_compute-12.1.0.8-151013.noarch.rpm
xlc_license-12.1.0.8-151013.noarch.rpm
xlc_rte-12.1.0.8-151013.noarch.rpm
xlmass.lib-7.1.0.8-151013.ppc64.rpm
xlsmp.lib-3.1.0.8-151013.ppc64.rpm
xlsmp.msg.rte-3.1.0.8-151013.ppc64.rpm
xlsmp.rte-3.1.0.8-151013.ppc64.rpm
#. Obtain the corresponding compiler partial kit from https://xcat.org/files/kits/hpckits/. [#]_
**xlc-12.1.0.8-151013-ppc64.NEED_PRODUCT_PKGS.tar.bz2** is downloaded to ``/tmp/kits``: ::
xlc-12.1.0.8-151013-ppc64.NEED_PRODUCT_PKGS.tar.bz2
#. Complete the partial kit by running the ``buildkit addpkgs`` command: ::
buildkit addpkgs xlc-12.1.0.8-151013-ppc64.NEED_PRODUCT_PKGS.tar.bz2 \
--pkgdir /tmp/kits/xlc-12.1.0.8
Sample output: ::
Extracting tar file /tmp/kits/xlc-12.1.0.8-151013-ppc64.NEED_PRODUCT_PKGS.tar.bz2. Please wait.
Spawning worker 0 with 5 pkgs
Spawning worker 1 with 5 pkgs
Spawning worker 2 with 4 pkgs
Spawning worker 3 with 4 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
Creating tar file /tmp/kits/xlc-12.1.0.8-151013-ppc64.tar.bz2.
Kit tar file /tmp/kits/xlc-12.1.0.8-151013-ppc64.tar.bz2 successfully built.
#. The complete kit, ``/tmp/kits/xlc-12.1.0.8-151013-ppc64.tar.bz2`` is ready to be used.
.. [#] If the partial kit for the version needed does not exist on the download site, open an `issue <https://github.com/xcat2/xcat-core/issues>`_ to the xcat development team.

View File

@ -0,0 +1,24 @@
Engineering and Scientific Subroutine Library (ESSL)
====================================================
xCAT software kits for ESSL for Linux is available on: [#]_
* ESSL 5.2.0.1 and newer
Dependencies
------------
* ESSL has a dependency on the XLC/XLF compilers
When adding the ESSL kit component to the osimage, ensure that the compiler kit component is already added to the osimage, or, use the ``-a | --adddeps`` option on ``addkitcomp`` to automatically assign the kit dependencies to the osimage.
To add the ``essl-computenode`` kit component to osimage ``rhels7.2-ppc64le-install-compute``: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-3264rte-5.4.0-0-rhels-7.2-ppc64le
.. [#] If using an older release, refer to `IBM HPC Stack in an xCAT Cluster <https://sourceforge.net/p/xcat/wiki/IBM_HPC_Stack_in_an_xCAT_Cluster/>`_

View File

@ -0,0 +1,13 @@
Product Specific Details
========================
Refer to the following pages for product specific details and known issues.
.. toctree::
:maxdepth: 2
compilers.rst
pe_rte.rst
pe_de.rst
essl.rst
pessl.rst

View File

@ -0,0 +1,13 @@
Parallel Environment Developer Edition (PE DE)
==============================================
xCAT software kits for PE DE for Linux is available on: [#]_
* PE DE 1.2.0.1 and newer (SystemX)
* PE DE 1.2.0.3 and newer (SystemP)
.. [#] If using an older release, refer to `IBM HPC Stack in an xCAT Cluster <https://sourceforge.net/p/xcat/wiki/IBM_HPC_Stack_in_an_xCAT_Cluster/>`_

View File

@ -0,0 +1,47 @@
Parallel Environment Runtime Edition (PE RTE)
=============================================
xCAT software kits for PE RTE for Linux is available on: [#]_
* PE RTE 1.3 1 and newer
PE RTE and ``mlnxofed_ib_install`` Conflict
-------------------------------------------
PPE requires the 32-bit version of ``libibverbs``. The default behavior of the ``mlnxofed_ib_install`` postscript used to install the Mellanox OFED Infiniband (IB) driver is to remove any of the old IB related packages when installing. To bypass this behavior, set the variable ``mlnxofed_options=--force`` when running the ``mlnxofed_ib_install`` script.
Install Multiple Versions
-------------------------
Beginning with **PE RTE 1.2.0.10**, the packages are designed to allow for multiple versions of PE RTE to coexist on the same machine.
The default behavior of xCAT software kits is to only allow one version of a ``kitcomponent`` to be associated with an xCAT osimage.
When using ``addkitcomp`` to add a newer version of a kit component, xCAT will first remove the old version of the kit component before adding the new one.
To add multiple versions of PE RTE kit components to the same osimage, use the ``-n | --noupgrade`` option. For example, to add PE RTE 1.3.0.1 and PE RTE 1.3.0.2 to the ``compute`` osimage: ::
addkitcomp -i compute pperte_compute-1.3.0.1-0-rhels-6-x86_64
addkitcomp -i compute -n pperte_compute-1.3.0.2-0-rhels-6-x86_64
POE hostlist
------------
When running parallel jobs, POE requires the user pass it a host list file. xCAT can help to create this hostlist file by running the ``nodels`` command against the desired node range and redirecting to a file. ::
nodels compute > /tmp/hostlist
Known Issues
------------
* **[PE RTE 1.3.0.7]** - For developers creating the complete software kit. The src rpm is no longer required. It is recommended to create the new software kit for PE RTE 1.3.0.7 from scratch and not to use the older kits as a starting point.
* **[PE RTE 1.3.0.7]** - When upgrading ``ppe_rte_man`` in a diskless image, there may be errors reported during the genimage process. The new packages are actually upgraded, so the errors can be ignored with low risk.
* **[PE RTE 1.3.0.1 to 1.3.0.6]** - When uninstalling or upgrading ppe_rte_man in an diskless image, ``genimage <osimage>`` may fail and stop an an error. To workaround, simply rerun ``genimage <osimage>`` to finish the creation of the diskless image
.. [#] If using older releases of PE RTE, refer to `IBM HPC Stack in an xCAT Cluster <https://sourceforge.net/p/xcat/wiki/IBM_HPC_Stack_in_an_xCAT_Cluster/>`_

View File

@ -0,0 +1,23 @@
Parallel Engineering and Scientific Subroutine Library (PESSL)
==============================================================
xCAT software kits for PESSL for Linux is available on: [#]_
* PESSL 4.2.0.0 and newer
Dependencies
------------
* PESSL has a dependency on the ESSL kit component
When adding PESSL kit component and want ESSL installed, ensure that the ESSL kit component is already added to the osimage, or, use the ``-a | --adddeps`` option on ``addkitcomp`` to automatically assign the kit dependencies to the osimage.
To add the ``pessl-computenode`` kit component to osimage ``rhels7.2-ppc64le-install-compute``: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pessl-computenode-5.2.0-0-rhels-7.2-ppc64le
.. [#] If using an older release, refer to `IBM HPC Stack in an xCAT Cluster <https://sourceforge.net/p/xcat/wiki/IBM_HPC_Stack_in_an_xCAT_Cluster/>`_

View File

@ -1,351 +0,0 @@
IBM HPC Product Software Kits
-----------------------------
Obtaining the Kits
``````````````````
Complete kits for some product software is shipped on the product distribution media. For other software, only partial kits may be available. The partial product kits are available from the FixCentral download site. For the IBM XLF and XLC Compilers, xCAT ships Ubuntu partial Kits on Sourceforge. the current redhat7.2 partial Kits, it ships on xcat.org: http://xcat.org/files/kits/hpckits/2.11/rhels7.2/ppc64le/
General Instructions for all HPC Kits
`````````````````````````````````````
This is a quick overview of the commands will use to add kits to the xCAT cluster and use them in the Linux OS images.
* Obtain the IBM HPC product kits
* If kits are partial kits, needs to build complete kits by combining the partial kit with the product packages ::
buildkit addpkgs <kit.NEED_PRODUCT_PKGS.tar.bz2> --pkgdir <product package directory>
* Add each kit to the xCAT database ::
addkit <product_kit_tarfile>
This will automatically unpack the tarfile, copy its contents to the correct locations for xCAT, and create the corresponding kit, kitcomponent, and kitrepo objects in the xCAT database.
* List the product kitcomponents that are available for the OS image ::
lsdef -t kitcomponent | grep <product>
* Kit components are typically named based on server role, product version, OS version, and optionally if it is for a minimal image (minimal images exclude documentation, includes, and other optional files to reduce the diskless image size). To list the details of a particular kit component ::
lsdef -t kitcomponent -o <kitcomponent name> -l
* The OS image must be defined with a supported serverrole in order to add a kit component to the image. To query the role assigned to an image ::
lsdef -t osimage -o <image> -i serverrole
And to change the serverrole of an image ::
chdef -t osimage -o <image> serverrole=<role>
* To add or update a kitcomponent in an osimage, first check if the kitcomponent is compatible with the image ::
chkkitcomp -i <image> <kitcomponent name>
If compatible, add the component to that image ::
addkitcomp -i <image> <kitcomponent name>
This will add various files for otherpkgs, postinstall, and postbootscripts to the OS image definition. To view some of these ::
lsdef -t osimage -l <image>
* If this is a diskless OS image, rebuild, pack, and deploy the image ::
genimage <image>
packimage <image> OR #liteimg <image>
nodeset <noderange> osimage=<image>
rpower <noderange>
* If this is a diskful OS image, the new HPC kitcomponent software may be installed either when do a new node deployment or by using the updatenode command.
Parallel Environment Runtime Edition (PE RTE)
`````````````````````````````````````````````
PE RTE software kits are available for Linux PE RTE 1.3 and newer releases on System x.
For Linux PE RTE 1.2 and older releases on System x, and for PE RTE on AIX or on System p, use the xCAT HPC Integration Support Documentation.
No special procedures are required for using the PE RTE kit. If received an incomplete kit, simply follow the previously documented process for adding the product packages and building the complete kit.
**Handle the conflict between PE RTE kit and Mellanox OFED driver install script**
PPE requires the 32-bit version of libibverbs, but the default mlnxofed_ib_install which provides by xCAT to install Mellanox OFED IB driver will remove all the old ib related packages at first including the 32-bit version of libibverbs. In this case, need to set the environment variable ``mlnxofed_options=--force`` when running the mlnxofed_ib_install.
**Installing multiple versions of PE RTE**
Starting with PE RTE 1.2.0.10, the PE RTE packages are designed so that when user upgrade the product to a newer version or release, the files from the previous version remain in the osimage along with the new version of the product.
Normally only have one version of a kitcomponent present in the xCAT osimage. When run addkitcomp to add a newer version of the kitcomponent, xCAT will first remove the old version of the kitcomponent before adding the new one. If updating a previously built diskless image or an existing diskful node with a newer version of PE RTE, run addkitcomp to add the new PE RTE kitcomponent, xCAT will replace the previous kitcomponent with the new one. For example, if current compute osimage has PE RTE 1.3.0.1 and want to upgrade to PE RTE 1.3.0.2 ::
lsdef -t osimage -o compute -i kitcomponents
kitcomponents = pperte_compute-1.3.0.1-0-rhels-6-x86_64
addkitcomp -i compute pperte_compute-1.3.0.2-0-rhels-6-x86_64
lsdef -t osimage -o compute -i kitcomponents
kitcomponents = pperte_compute-1.3.0.2-0-rhels-6-x86_64
And, running a new genimage for the previously built compute diskless image will upgrade the pperte-1.3.0.1 rpm to pperte-1.3.0.2, and will install the new ppe_rte_1302 rpm without removing the previous ppe_rte_1301 rpm.
To remove the previous version of the PE RTE product files from the osimage, need to manaully remove the rpms. In the example above, this would be something like: ::
chroot /install/netboot/rhels6/x86_64/compute/rootimg rpm -e ppe_rte_1302
If building a new diskless image or installing a diskful node, and need multiple versions of PE RTE present in the image as part of the initial install, need to have multiple versions of the corresponding kitcomponent defined in the xCAT osimage definition. To add multiple versions of PE RTE kitcomponents to an xCAT osimage, add the kitcomponent using the full name with separate addkitcomp commands and specifying the ``-n (--noupgrade)`` flag. For example, to add PE RTE 1.3.0.1 and PE RTE 1.3.0.2 to your compute osimage definition ::
addkitcomp -i compute pperte_compute-1.3.0.1-0-rhels-6-x86_64
addkitcomp -i compute -n pperte_compute-1.3.0.2-0-rhels-6-x86_64
lsdef -t osimage -o compute -i kitcomponents
kitcomponents = pperte_compute-1.3.0.1-0-rhels-6-x86_64,pperte_compute-1.3.0.2-0-rhels-6-x86_64
In this example, when building a diskless image for the first time, or when deploying a diskful node, xCAT will first install PE RTE 1.3.0.1, and then in a separate yum or zypper call, xCAT will install PE RTE 1.3.0.2. The second install will upgrade the pperte-1.3.0.1 rpm to pperte-1.3.0.2, and will install the new ppe_rte_1302 rpm without removing the previous ppe_rte_1301 rpm.
**Starting PE on cluster nodes**
The PNSD daemon is started from xinetd on compute nodes. This daemon should start automatically at node boot time. Verify that xinetd is running on nodes and PNSD daemon is active.
**POE hostlist files**
If using POE to start a parallel job, xCAT can help create the host list file. Simply run the nodels command against the desired noderange and redirect the output to a file. ::
nodels compute &gt; /tmp/hostlist
poe -hostfile /tmp/hostlist ....
**Known problems with PE RTE**
For PE RTE 1.3.0.1 to 1.3.0.6 on both System X and System P architectures, there is a known issue that when uninstall or upgrade ppe_rte_man in a diskless image, ``genimage <osimage>`` will fail and stop at the error. To workaround this problem, will need to rerun ``genimage <osimage>`` to finish the remaining work.
For PE RTE 1.3.0.7 on both System X and System P architectures, there is a known issue that when uninstall or upgrade ppe_rte_man in a diskless image, ``genimage <osimage>`` will output errors. However, the new packages are actually upgraded, so no workaround is required and the error can be ignored with risks.
Starting with PE RTE 1.3.0.7, the src rpm is no longer required. It is not recommended build a complete kit for PE RTE 1.3.0.7 or newer using a partial PE RTE 1.3.0.6 or older kit which still require the src rpm. User should download the latest partial kit for PE RTE 1.3.0.7 or newer to build the corresponding PE RTE complete kit.
Parallel Environment Developer Edition (PE DE)
``````````````````````````````````````````````
PE DE software kits are available for Linux PE DE 1.2.0.1 and newer releases on System X. Also PE DE software kits are available for Linux PE DE 1.2.0.3 and newer releases on System P.
For older Linux releases on System x and System P, and for AIX, use the xCAT HPC Integration Support Documentation.
No special procedures are required for using the PE DE kit. If you received an incomplete kit, simply follow the previously documented process for adding the product packages and building the complete kit
Engineering and Scientific Subroutine Library (ESSL)
````````````````````````````````````````````````````
ESSL software kits are available for Linux ESSL 5.2.0.1 and newer releases on System P.
For older Linux releases on System P, and for AIX, use the xCAT HPC Integration Support Documentation.
No special procedures are required for building the complete PESSL kit. If received an incomplete kit, simply follow the previously documented process for adding the product packages and building the complete kit
When building a diskless image or installing a diskful node, and want ESSL installed with compiler XLC/XLF kits, there is one change when add a ESSL kitcomponent to an xCAT osimage. To add ESSL kitcomponent to an xCAT osimage, add the kitcomponent using separate addkitcomp command and specifying the ``-n(--noupgrade)`` flag. For example, to add ESSL 5.2.0.1 kitcomponent to compute osimage definition ::
addkitcomp -i compute essl_compute-5.2.0.1-rhels-6-ppc64
lsdef -t osimage -o compute -i kitcomponents
kitcomponents = essl_compute-5.2.0.1-rhels-6-ppc64
Parallel Engineering and Scientific Subroutine Library (PESSL)
``````````````````````````````````````````````````````````````
PESSL software kits are available for Linux PESSL 4.2.0.0 and newer releases on System P.
For older Linux releases on System P, and for AIX, use the xCAT HPC Integration Support Documentation.
No special procedures are required for building the PESSL complete kit. If received an incomplete kit, simply follow the previously documented process for adding the product packages and building the complete kit
When building a diskless image or installing a diskful node, and want PESSL installed with ESSL kits, there is one change when add a PESSL kitcomponent to an xCAT osimage. To add PESSL kitcomponent to an xCAT osimage, add the kitcomponent using separate addkitcomp command and specifying the ``-n(--noupgrade)`` flag. For example, to add PESSL 4.2.0.0 kitcomponent to compute osimage definition ::
addkitcomp -i compute pessl_compute-4.2.0.0-rhels-6-ppc64
lsdef -t osimage -o compute -i kitcomponents
kitcomponents = essl_compute-4.2.0.0-rhels-6-ppc64
General Parallel File System (GPFS)
```````````````````````````````````
GPFS software kits are available for Linux GPFS 3.5.0.7 and newer releases on System x.
For Linux GPFS 3.5.0.6 and older releases on System x and for AIX or Linux on System p, use the xCAT HPC Integration Support Documentation.
The GPFS kit requires the addition of the GPFS portability layer package to be added to it. This rpm must be built on a server that matches the architecture and kernel version of all OS images that will be using this kit.
Follow this procedure before using the GPFS kit
* On a server that has the correct architecture and kernel version, manually install the GPFS rpms and build the portability layer according to the instructions documented by GPFS: General Parallel File System . After installing the GPFS rpms, check ``/usr/lpp/mmfs/src/README``. **NOTE**: Building the portability layer requires that the kernel source rpms are installed on server. For example, for SLES11, make sure the kernel-source and kernel-ppc64-devel rpms are installed. For rhels6, make sure the cpp.ppc64,gcc.ppc64,gcc-c++.ppc64,kernel-devel.ppc64 and rpm-build.ppc64 are installed.
* Copy the ``gpfs.gplbin`` rpm that have successfully created to the server that are using to complete the build of GPFS kit, placing it in the same directory as other GPFS rpms.
* Complete the kit build ::
buildkit addpkgs <gpfs-kit-NEED_PRODUCT_PKGS-tarfile> -p <gpfs-rpm-directory>
At this point follow the general instructions for working with kits to add the kit to the xCAT database and add the GPFS kitcomponents to the OS images.
IBM Compilers
`````````````
XLC and XLF software kits are available for Linux XLC 12.1.0.3 and XLF 14.1.0.3, and newer releases on System P.
For XLC 13.1.1.0 and XLF 15.1.1.0, xCAT ships partial software kits for Ubuntu at:
http://xcat.org/files/xcat/kits/hpckits/2.9/Ubuntu/ppc64_Little_Endian/
For XLC 13.1.2.0 and XLF 15.1.2.0, xCAT ships partial software kits for RHEL 7.2 at:
http://xcat.org/files/xcat/kits/hpckits/2.11/rhels7.2/ppc64le/
For older Linux releases on System P, and for AIX, use the xCAT HPC Integration Support
No special procedures are required for using the XLC/XLF kit. If received an incomplete kit, simply follow the previously documented process for adding the product packages and building the complete kit
Toolkit for Event Analysis and Logging (TEAL)
`````````````````````````````````````````````
Teal software kits are available for Linux Teal 1.2.0.1 and newer releases on System X.
For older Linux releases on System x, and for AIX or System P, use the xCAT HPC Integration Support Documentation.
No special procedures are required for using the Teal kit. If you received an incomplete kit, simply follow the previously documented process for adding the product packages and building the complete kit
Install HPC Software Kits
`````````````````````````
This section describes the process of using xCAT Software Kits to assist installing the IBM HPC software stack on a cluster managed by xCAT. The example describe the process of adding the kits and kit components to the the RedHat Enterprise Linux 7.2 operating system running on ppc64le architecture.
The following software kits are provided for the IBM HPC software stack:
* ``xlc-13.1.3-0-ppc64le.tar.bz2``
* ``xlf-15.1.3-0-ppc64le.tar.bz2``
* ``pperte-2.3.0.0-1547a-ppc64le.tar.bz2``
* ``pperte-2.3.0.2-s002a-ppc64le.tar.bz2``
* ``pessl-5.2.0-0-ppc64le.tar.bz2``
* ``essl-5.4.0-0-ppc64le.tar.bz2``
* ``ppedev-2.2.0-0.tar.bz2``
#. Using the ``addkit`` command, add each software kit package into xCAT: ::
addkit xlc-13.1.3-0-ppc64le.tar.bz2,xlf-15.1.3-0-ppc64le.tar.bz2
addkit pperte-2.3.0.0-1547a-ppc64le.tar.bz2,pperte-2.3.0.2-s002a-ppc64le.tar.bz2
addkit pessl-5.2.0-0-ppc64le.tar.bz2,essl-5.4.0-0-ppc64le.tar.bz2
addkit ppedev-2.2.0-0.tar.bz2
The ``lskit`` command can be used to view the kits after adding to xCAT.
#. Using the ``addkitcomp`` command, add the kitcomponent to the target osimage.
The order that the kit components are added to the osimage is important due to dependencies that kits may have with one another, a feature to help catch potential issues ahead of time. There are a few different types of dependencies:
* **internal kit dependencies** - kit components within the software kit have dependencies. For example, the software has a dependency on it's license component. The ``-a`` option will automatically resolve internal kit dependencies.
* **external kit dependencies** - a software kit depends on another software provided in a separate kit. The dependency kit must be added first. ``addkitcomp`` will complain if it cannot resolve the dependency.
* **runtime dependencies** - the software provided in the kit has rpm requirements for external 3rd party RPMs not shipped with the kit. The administrator needs to configure these before deploying the osimage and ``addkitcomp`` cannot detect this dependencies.
In the following examples, the ``rhels7.2-ppc64le-install-compute`` osimage is used and the ``-a`` option is specified to resolve internal dependencies.
#. Add the **XLC** kitcomponents to the osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
xlc.compiler-compute-13.1.3-0-rhels-7.2-ppc64le
#. Add the **XLF** kitcomponents to the osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
xlf.compiler-compute-15.1.3-0-rhels-7.2-ppc64le
#. Add the PE RTE GA, **pperte-1547a**, kitcomponents to the osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pperte-login-2.3.0.0-1547a-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
min-pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le
#. Add the PE RTE PTF2, **pperte-s002a**, kitcomponents to the osimage.
The PTF2 update requires the ``pperte-license`` component, which is provided by the GA software kit. The ``addkitcomp -n`` option allows for multiple versions of the same kit component to be installed into the osimage. If only the PTF2 version is intended to be installed, you can skip the previous step for adding the GA ppetre kit component, but the GA software kit must have been added to xCAT with the ``addkit`` command in order to resolve the license dependency. ::
addkitcomp -a -n -i rhels7.2-ppc64le-install-compute \
pperte-login-2.3.0.2-s002a-rhels-7.2-ppc64le
addkitcomp -a -n -i rhels7.2-ppc64le-install-compute \
pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le
addkitcomp -a -n -i rhels7.2-ppc64le-install-compute \
min-pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le
#. Add the **ESSL** kitcomponents to the osimage.
The ESSL software kit has an *external dependency* to the ``libxlf`` which is provided in the XLF software kit. Since it's already added in the above step, there is no action needed here.
If CUDA toolkit is being used, ESSL has a runtime dependency on the CUDA rpms. The adminstrator needs to create the repository for the CUDA 7.5 toolkit or a runtime error will occur when provisioning the node. See the :doc:`/advanced/gpu/nvidia/repo/index` section for more details about setting up the CUDA repository on the xCAT management node. ::
#
# Assuming that the cuda repo has been configured at:
# /install/cuda-7.5/ppc64le/cuda-core
#
chdef -t osimage rhels7.2-ppc64le-install-compute \
pkgdir=/install/rhels7.2/ppc64le,/install/cuda-7.5/ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-6464rte-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-3264rte-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-loginnode-5.4.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
essl-computenode-3264rtecuda-5.4.0-0-rhels-7.2-ppc64le
#. Add the **Parallel ESSL** kitcomponents to osimage.
*Note:* ESSL kitcomponents are required for the PESSL. ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pessl-loginnode-5.2.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pessl-computenode-5.2.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
pessl-computenode-3264rtempich-5.2.0-0-rhels-7.2-ppc64le
#. Add the **PE DE** kitcomponents to osimage: ::
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
ppedev.login-2.2.0-0-rhels-7.2-ppc64le
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
ppedev.compute-2.2.0-0-rhels-7.2-ppc64le
#. The updated osimage now contains the HPC software stack configuration using xCAT software kits: ::
lsdef -t osimage rhels7.2-ppc64le-install-compute
Object name: rhels7.2-ppc64le-install-compute
exlist=/install/osimages/rhels7.2-ppc64le-install-compute-kits/kits/KIT_COMPONENTS.exlist
imagetype=linux
kitcomponents=xlc.license-compute-13.1.3-0-rhels-7.2-ppc64le,xlc.rte-compute-13.1.3-0-rhels-7.2-ppc64le,xlc.compiler-compute-13.1.3-0-rhels-7.2-ppc64le,xlf.license-compute-15.1.3-0-rhels-7.2-ppc64le,xlf.rte-compute-15.1.3-0-rhels-7.2-ppc64le,xlf.compiler-compute-15.1.3-0-rhels-7.2-ppc64le,pperte-license-2.3.0.0-1547a-rhels-7.2-ppc64le,pperte-login-2.3.0.0-1547a-rhels-7.2-ppc64le,pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le,min-pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le,pperte-login-2.3.0.2-s002a-rhels-7.2-ppc64le,pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le,min-pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le,essl-license-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-3264rte-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-6464rte-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-5.4.0-0-rhels-7.2-ppc64le,essl-loginnode-5.4.0-0-rhels-7.2-ppc64le,essl-computenode-3264rtecuda-5.4.0-0-rhels-7.2-ppc64le,ppedev.license-2.2.0-0-rhels-7.2-ppc64le,ppedev.login-2.2.0-0-rhels-7.2-ppc64le,ppedev.compute-2.2.0-0-rhels-7.2-ppc64le,pessl-license-5.2.0-0-rhels-7.2-ppc64le,pessl-loginnode-5.2.0-0-rhels-7.2-ppc64le,pessl-computenode-5.2.0-0-rhels-7.2-ppc64le,pessl-computenode-3264rtempich-5.2.0-0-rhels-7.2-ppc64le
osarch=ppc64le
osdistroname=rhels7.2-ppc64le
osname=Linux
osvers=rhels7.2
otherpkgdir=/install/post/otherpkgs/rhels7.2/ppc64le
otherpkglist=/install/osimages/rhels7.2-ppc64le-install-compute-kits/kits/KIT_DEPLOY_PARAMS.otherpkgs.pkglist,/install/osimages/rhels7.2-ppc64le-install-compute-kits/kits/KIT_COMPONENTS.otherpkgs.pkglist
pkgdir=/install/rhels7.2/ppc64le,/install/cuda-7.5/ppc64le
pkglist=/opt/xcat/share/xcat/install/rh/compute.rhels7.pkglist
postbootscripts=KIT_pperte-login-2.3.0.0-1547a-rhels-7.2-ppc64le_pperte_postboot,KIT_pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le_pperte_postboot,KIT_min-pperte-compute-2.3.0.0-1547a-rhels-7.2-ppc64le_pperte_postboot,KIT_pperte-login-2.3.0.2-s002a-rhels-7.2-ppc64le_pperte_postboot,KIT_pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le_pperte_postboot,KIT_min-pperte-compute-2.3.0.2-s002a-rhels-7.2-ppc64le_pperte_postboot
profile=compute
provmethod=install
template=/opt/xcat/share/xcat/install/rh/compute.rhels7.tmpl
#. The osimage is now ready to deploy to the compute nodes.

View File

@ -1,15 +1,14 @@
Software Kits
===================
=============
xCAT supports a unique software bundling concept called **software kits**. Software kit combines all of the required product components (packages, license, configuration, scripts, etc) to assist the administrator in the installation of software onto machines managed by xCAT. Software kits are made up of a collection of "kit components", each of which is tailored to one specific environment for that particular version of the software product.
Prebuilt software kits are available as a tar file which can be downloaded and then added to the xCAT installation. After the kits are added to xCAT, kit components are then added to specific xCAT osimages to automatically install the software bundled with the kit during OS deployment. In some instances, software kits may be provided as partial kits. Partial kits need additional effort to complete the kit before it can be used by xCAT.
Software kits are supported for both diskful and diskless image provisionig.
.. toctree::
:maxdepth: 2
introduction.rst
buildkit/index.rst
addkit.rst
addkitcomp.rst
updatekit.rst
removekit.rst
hpckit.rst
hpc/index.rst
custom/index.rst

View File

@ -1,68 +0,0 @@
Introduction
============
Overview
--------
xCAT supports a unique software bundling concept called kits. A software kit combines all of the required product packages with configuration information, scripts, and other files to easily install a software product onto an xCAT node or in an xCAT OS image based on the role that node performs in the cluster. A software kit is made up of a collection of kit components, each of which is tailored to one specific environment for that particular version of the product.
A software kit is available as a tar file that is downloaded and added to your xCAT management node. The kit components resident in that kit can then be added to an existing xCAT OS image definition and then either be installed on a stateful node during node deployment, added to an active stateful node with the updatenode command, or built into a diskless OS image with the genimage command.
Typically, a software kit will contain all of the product package files. However, in some instances, software kits may be delivered as partial or incomplete kits, and not be bundled with all of the product packages. You will then need to obtain your product packages through your reqular distribution channels, download them to a server along with the partial kit, and run the buildkit addpkgs command to build a complete kit that can be used by xCAT.
Contents of a software Kit
--------------------------
A software kit is a tar file that contains the following
**Kit Configuration File** --- A file describing the contents of this kit and contains following information
* Kit name, version, description, supported OS distributions, license information, and deployment parameters
* Kit repository information including name, supported OS distributions, and supported architectures
* Kit component information including name, version, description, server roles, scripts, and other data
**Kit Repositories** --- A directory for each operating system version this kit is supported in. Each directory contains all of the product software packages required for that environment along with repository metadata.
**Kit Components** --- A product "meta package" built to require all of the product software dependencies and to automatically run installation and configuration scripts.
**Kit and Kit Component Files** --- Scripts, deployment parameters, exclusion lists, and other files used to install and configure the kit components and product packages.
**Docs** (for use with PCM only) --- Product documentation shipped as HTML files that can be displayed through the PCM GUI
**Plugins** (for use with PCM only) --- xCAT plugins that can be used for additional product configuration and customization during PCM image management and node management
Kit Component in a osimage
--------------------------
Software Kits are deployed to xCAT nodes through the standard xCAT OS image deployment mechanisms. Various pieces of a kit component are inserted into the attributes of a Linux OS image definition. Some of the attributes that are modified are:
* kitcomponents - A list of the kitcomponents assigned to the OS image
* serverrole - The role of this OS image that must match one of the supported serverroles of a kitcomponent
* otherpkglist - Includes kitcomponent meta package names
* postinstall - Includes kitcomponent scripts to run during genimage
* postbootscripts - Includes kitcomponent scripts
* exlist - Exclude lists for diskless images
* otherpkgdir - Kit repositories are linked as subdirectories to this directory
When a kitcomponent is added to an OS image definition, these attributes are automatically updated.
User can then use the genimage command to install the kitcomponents into the diskless OS image, the standard node deployment process for stateful nodes, or the xCAT updatenode command to update the OS on an active compute node. Since the kitcomponent meta package defines the product packages as dependencies, the OS package manager (yum, zypper, apt-get) automatically installs all the required product packages during the xCAT otherpkgs install process.
Kit Frameworks
--------------
Over time it is possible that the details of the Kit package contents and support may change. For example, there may be a need for additional information to be added etc. We refer to a particular instance of the kit support as its "framework". A particular framework is identified by a numerical value.
In order to process a kit properly it must be compatible with the level of code that was used to build the kit.
Both the kit commands and the actual kits contain the current framework they support as well as any backlevel versions also supported.
View the supported framework and compatible framework values for a command can be used the ``-v|--version`` option. ::
addkit -v
addkit - xCAT Version 2.8.3 (built Sat Aug 31 11:11:31 EDT 2013)
kitframework = 2
compatible_frameworks = 0,1,2
When a Kit is being used to update an osimage, the Kit commands will check to see if the Kit framework value is compatible. To be compatible at least one of the Kit compatible_frameworks must match one of the compatible frameworks the command supports.
If the commands you are using are not compatible with the Kit you have, have to update xCAT to get the appropriate framework. Typically this will amount to updating xCAT to the most recent release.

View File

@ -0,0 +1,372 @@
##########
buildkit.1
##########
.. highlight:: perl
****
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:
1.
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
2.
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".
1.
Change to the directory where you wish to create the Kit.
2.
Create a template directory for your kit:
\ **buildkit create mytstkit**\
3.
Change directory to the new "mytstkit" subdirectory that was just created.
\ **cd mytstkit**\
4.
Edit the buildkit configuration file for your kit:
\ **vi buildkit.conf**\
(See xCAT Kit documentation for details.)
5.
Create all required files, scripts, plugins, and packages for your kit.
6.
Validate your kit build configuration and fix any errors that are reported:
\ **buildkit chkconfig**\
7.
List the repos defined in your buildkit configuration file:
\ **buildkit listrepo**\
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.
\ **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**\
9.
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
********
1.
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**\
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:
\ **buildkit cleanrepo rhels6.3**\
3.
To clean up all kit build files, including a previously built kit tar file, run
\ **buildkit cleanall**\
4.
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)