Install Third-Party Software with a Custom Image Recipe
Create a customized image recipe for Cray nodes that includes third-party software, with a Cray-provided recipe as a subrecipe. Also summarizes other image-creation methods (cloning an image; using zypper/chroot).
- (Recommended) Create a custom image recipe for the third-party software and add a Cray-provided recipe as a subrecipe (also called extending a recipe). This method is preferred because the update to the image is persisted in the recipe.
- Clone an existing recipe, then modify the clone to add the third-party software. This method is not recommended because cloned recipes do not receive updates from patches.
- Use the image chroot command to install the software to an existing image. Software installed with this method is lost when a node image is rebuilt from a recipe. However, this approach can be useful when persistence is not important, such as when testing third-party software. The Cray image chroot command can be used to chroot into any XC system image root, regardless of architecture. (Note that using image chroot on a non-bootable image like PE or diags may result in a prompt like this because such images lack the content used to populate the prompt: [diags_cle_7.0.up00_sles_15_x86-64] I have no name!@smw:/"I have no name!" )
- Use the zypper command to install software on a node. Software installed with this method is lost the next time the node is booted. Like the image chroot method, this approach can be used when testing software that does not need to persist in the image.
- If the software is not located in RPMs, then one of the following methods is needed:
- Package the files into a cpio or tar file and use the
postbuild_copyandpostbuild_chrootsections of the recipe to copy and extract the files to the correct locations. - Build the image first and then copy or install the files by hand.
- Package the files into a cpio or tar file and use the
This procedure describes the recommended method of creating a new image recipe for third-party software that will run on Cray nodes. The procedure explains how to add a Cray-provided image recipe as a subrecipe, then add the third-party repositories, package collections, and RPMs, as well as optional non-RPM content. It then shows how to build an image root, export the image root into a boot image, push the boot image to the boot node (netroot only), test it on a single node, and assign the tested image to all applicable nodes.
For more information on image-related concepts and commands, see About the Image Management and Provisioning System (IMPS).
CREATE REPOSITORY
CREATE PACKAGE COLLECTION
CREATE RECIPE
BUILD AND PACKAGE IMAGE
TEST IMAGE
ASSIGN IMAGE TO NODES
After a recipe has been defined and tested, the imgbuilder command can be used to rebuild and package boot images.