From cf124ac1e12c947d6d3c4a5a6dbb2fe307445108 Mon Sep 17 00:00:00 2001 From: wanghuaz Date: Wed, 9 Jan 2013 10:58:51 +0000 Subject: [PATCH] Kit source files for hpc stack git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14816 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- .../partial_vacpp12-Linux/buildkit.conf | 300 +++++++++++++++ .../other_files/vacpp.exlist | 14 + .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../scripts/vacpp_license | 21 ++ .../partial_xlf14-Linux/buildkit.conf | 321 ++++++++++++++++ .../other_files/xlf.exlist | 14 + .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../partial_xlf14-Linux/scripts/xlf_license | 19 + .../compiler/vacpp12-Linux/buildkit.conf | 299 +++++++++++++++ .../vacpp12-Linux/other_files/vacpp.exlist | 14 + .../plugins/sample/imageprofile.pm | 175 +++++++++ .../vacpp12-Linux/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../vacpp12-Linux/scripts/vacpp_license | 21 ++ .../compiler/xlf14-Linux/buildkit.conf | 321 ++++++++++++++++ .../xlf14-Linux/other_files/xlf.exlist | 14 + .../plugins/sample/imageprofile.pm | 175 +++++++++ .../xlf14-Linux/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../compiler/xlf14-Linux/scripts/xlf_license | 19 + .../xcat/kit_build/essl/essl/buildkit.conf | 293 +++++++++++++++ .../kit_build/essl/essl/other_files/essl.env | 1 + .../essl/essl/other_files/essl.exlist | 6 + .../essl/essl/plugins/sample/imageprofile.pm | 175 +++++++++ .../essl/essl/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../kit_build/essl/partial_essl/buildkit.conf | 293 +++++++++++++++ .../essl/partial_essl/other_files/essl.env | 1 + .../essl/partial_essl/other_files/essl.exlist | 11 + .../plugins/sample/imageprofile.pm | 175 +++++++++ .../partial_essl/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../gpfs-3.5.0-6-Linux-ppc64/buildkit.conf | 313 ++++++++++++++++ .../other_files/gpfs.exlist | 3 + .../other_files/min-gpfs.exlist | 5 + .../other_files/sample/exclude.lst | 0 .../other_files/sample/kitdeployparams.lst | 0 .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../scripts/gpfs_mmsdrfs | 15 + .../scripts/gpfs_start | 12 + .../scripts/gpfs_updates | 84 +++++ .../scripts/gpfs_updates_storage | 84 +++++ .../scripts/sample/post.sh | 3 + .../scripts/sample/postboot.sh | 3 + .../scripts/sample/postun.sh | 3 + .../scripts/sample/postup.sh | 3 + .../scripts/sample/pre.sh | 3 + .../scripts/sample/preun.sh | 3 + .../scripts/sample/preup.sh | 3 + .../gpfs-3.5.0-6-Linux-x86_64/buildkit.conf | 313 ++++++++++++++++ .../other_files/gpfs.exlist | 3 + .../other_files/min-gpfs.exlist | 5 + .../other_files/sample/exclude.lst | 0 .../other_files/sample/kitdeployparams.lst | 0 .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../scripts/gpfs_mmsdrfs | 15 + .../scripts/gpfs_start | 12 + .../scripts/gpfs_updates | 84 +++++ .../scripts/gpfs_updates_storage | 84 +++++ .../scripts/sample/post.sh | 3 + .../scripts/sample/postboot.sh | 3 + .../scripts/sample/postun.sh | 3 + .../scripts/sample/postup.sh | 3 + .../scripts/sample/pre.sh | 3 + .../scripts/sample/preun.sh | 3 + .../scripts/sample/preup.sh | 3 + .../buildkit.conf | 305 ++++++++++++++++ .../other_files/gpfs.exlist | 3 + .../other_files/min-gpfs.exlist | 5 + .../other_files/sample/exclude.lst | 0 .../other_files/sample/kitdeployparams.lst | 0 .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../scripts/gpfs_mmsdrfs | 15 + .../scripts/gpfs_start | 12 + .../scripts/gpfs_updates | 84 +++++ .../scripts/gpfs_updates_storage | 84 +++++ .../scripts/sample/post.sh | 3 + .../scripts/sample/postboot.sh | 3 + .../scripts/sample/postun.sh | 3 + .../scripts/sample/postup.sh | 3 + .../scripts/sample/pre.sh | 3 + .../scripts/sample/preun.sh | 3 + .../scripts/sample/preup.sh | 3 + .../buildkit.conf | 305 ++++++++++++++++ .../other_files/gpfs.exlist | 3 + .../other_files/min-gpfs.exlist | 5 + .../other_files/sample/exclude.lst | 0 .../other_files/sample/kitdeployparams.lst | 0 .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../scripts/gpfs_mmsdrfs | 15 + .../scripts/gpfs_start | 12 + .../scripts/gpfs_updates | 84 +++++ .../scripts/gpfs_updates_storage | 84 +++++ .../scripts/sample/post.sh | 3 + .../scripts/sample/postboot.sh | 3 + .../scripts/sample/postun.sh | 3 + .../scripts/sample/postup.sh | 3 + .../scripts/sample/pre.sh | 3 + .../scripts/sample/preun.sh | 3 + .../scripts/sample/preup.sh | 3 + .../pessl/partial-pessl/buildkit.conf | 286 +++++++++++++++ .../other_files/min-pessl.exlist | 5 + .../pessl/partial-pessl/other_files/pessl.env | 1 + .../partial-pessl/other_files/pessl.exlist | 5 + .../plugins/sample/imageprofile.pm | 175 +++++++++ .../partial-pessl/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../xcat/kit_build/pessl/pessl/buildkit.conf | 285 +++++++++++++++ .../pessl/pessl/other_files/min-pessl.exlist | 5 + .../pessl/pessl/other_files/pessl.env | 1 + .../pessl/pessl/other_files/pessl.exlist | 5 + .../pessl/plugins/sample/imageprofile.pm | 175 +++++++++ .../pessl/pessl/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../ppe/partial-pperte-ppc64/buildkit.conf | 329 +++++++++++++++++ .../partial-pperte-ppc64/other_files/pe.env | 2 + .../other_files/pe.exlist | 11 + .../scripts/pperte_postboot | 32 ++ .../scripts/pperte_postinstall | 37 ++ .../ppe/partial-pperte-x86_64/buildkit.conf | 331 +++++++++++++++++ .../partial-pperte-x86_64/other_files/pe.env | 2 + .../other_files/pe.exlist | 11 + .../scripts/pperte_postboot | 32 ++ .../scripts/pperte_postinstall | 37 ++ .../kit_build/ppe/pperte-ppc64/buildkit.conf | 343 ++++++++++++++++++ .../ppe/pperte-ppc64/other_files/pe.env | 2 + .../ppe/pperte-ppc64/other_files/pe.exlist | 11 + .../ppe/pperte-ppc64/scripts/pperte_postboot | 32 ++ .../pperte-ppc64/scripts/pperte_postinstall | 37 ++ .../kit_build/ppe/pperte-x86_64/buildkit.conf | 343 ++++++++++++++++++ .../ppe/pperte-x86_64/other_files/pe.env | 2 + .../ppe/pperte-x86_64/other_files/pe.exlist | 11 + .../ppe/pperte-x86_64/scripts/pperte_postboot | 32 ++ .../pperte-x86_64/scripts/pperte_postinstall | 37 ++ .../ppedev/partial-ppedev-ppc64/buildkit.conf | 209 +++++++++++ .../other_files/ppedev.env | 1 + .../partial-ppedev-x86_64/buildkit.conf | 281 ++++++++++++++ .../other_files/ppedev.env | 1 + .../ppedev/ppedev-ppc64/buildkit.conf | 211 +++++++++++ .../ppedev-ppc64/other_files/ppedev.env | 1 + .../ppedev/ppedev-x86_64/buildkit.conf | 281 ++++++++++++++ .../ppedev-x86_64/other_files/ppedev.env | 1 + .../teal/partial-teal-ppc64/buildkit.conf | 306 ++++++++++++++++ .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../teal/partial-teal-x86_64/buildkit.conf | 306 ++++++++++++++++ .../plugins/sample/imageprofile.pm | 175 +++++++++ .../plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../kit_build/teal/teal-ppc64/buildkit.conf | 306 ++++++++++++++++ .../teal-ppc64/plugins/sample/imageprofile.pm | 175 +++++++++ .../teal-ppc64/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../kit_build/teal/teal-x86_64/buildkit.conf | 306 ++++++++++++++++ .../plugins/sample/imageprofile.pm | 175 +++++++++ .../teal-x86_64/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../xcat/kit_build/template/buildkit.conf | 204 +++++++++++ .../template/other_files/sample/exclude.lst | 0 .../other_files/sample/kitdeployparams.lst | 0 .../template/plugins/sample/imageprofile.pm | 175 +++++++++ .../template/plugins/sample/nodemgmt.pm | 251 +++++++++++++ .../kit_build/template/scripts/sample/post.sh | 3 + .../template/scripts/sample/postboot.sh | 3 + .../template/scripts/sample/postun.sh | 3 + .../template/scripts/sample/postup.sh | 3 + .../kit_build/template/scripts/sample/pre.sh | 3 + .../template/scripts/sample/preun.sh | 3 + .../template/scripts/sample/preup.sh | 3 + .../sample/pkg1/pkg1-1-1.noarch.rpm | Bin 0 -> 3212 bytes .../source_packages/sample/pkg2/pkg2.spec | 76 ++++ .../sample/pkg2/pkg2/cfg/pkg2.cfg | 3 + .../sample/pkg2/pkg2/files/pkg2.file1 | 1 + .../sample/pkg2/pkg2/files/pkg2.file2 | 2 + .../source_packages/sample/pkg3/pkg3.spec | 76 ++++ .../source_packages/sample/pkg3/pkg3.tar.gz | Bin 0 -> 271 bytes .../sample/pkg4/pkg4-1-1.src.rpm | Bin 0 -> 2516 bytes 174 files changed, 16216 insertions(+) create mode 100644 xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/other_files/vacpp.exlist create mode 100644 xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/scripts/vacpp_license create mode 100644 xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/other_files/xlf.exlist create mode 100644 xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/scripts/xlf_license create mode 100644 xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/other_files/vacpp.exlist create mode 100644 xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/scripts/vacpp_license create mode 100644 xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/other_files/xlf.exlist create mode 100644 xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/scripts/xlf_license create mode 100644 xCAT-server/share/xcat/kit_build/essl/essl/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.env create mode 100755 xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.exlist create mode 100644 xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/essl/partial_essl/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.env create mode 100755 xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.exlist create mode 100644 xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/sample/exclude.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/sample/kitdeployparams.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/sample/exclude.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/sample/kitdeployparams.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/sample/exclude.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/sample/kitdeployparams.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/sample/exclude.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/sample/kitdeployparams.lst create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates create mode 100755 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh create mode 100644 xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh create mode 100644 xCAT-server/share/xcat/kit_build/pessl/partial-pessl/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/min-pessl.exlist create mode 100644 xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.env create mode 100755 xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.exlist create mode 100644 xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/pessl/pessl/buildkit.conf create mode 100755 xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/min-pessl.exlist create mode 100644 xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.env create mode 100755 xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.exlist create mode 100644 xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.env create mode 100755 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.exlist create mode 100755 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postboot create mode 100755 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postinstall create mode 100644 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.env create mode 100755 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.exlist create mode 100755 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postboot create mode 100755 xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postinstall create mode 100644 xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.env create mode 100755 xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.exlist create mode 100755 xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postboot create mode 100755 xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postinstall create mode 100644 xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.env create mode 100644 xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.exlist create mode 100755 xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postboot create mode 100755 xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postinstall create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/other_files/ppedev.env create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/other_files/ppedev.env create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/other_files/ppedev.env create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/other_files/ppedev.env create mode 100644 xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/teal/teal-ppc64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/teal/teal-x86_64/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/template/buildkit.conf create mode 100644 xCAT-server/share/xcat/kit_build/template/other_files/sample/exclude.lst create mode 100644 xCAT-server/share/xcat/kit_build/template/other_files/sample/kitdeployparams.lst create mode 100644 xCAT-server/share/xcat/kit_build/template/plugins/sample/imageprofile.pm create mode 100644 xCAT-server/share/xcat/kit_build/template/plugins/sample/nodemgmt.pm create mode 100644 xCAT-server/share/xcat/kit_build/template/scripts/sample/post.sh create mode 100644 xCAT-server/share/xcat/kit_build/template/scripts/sample/postboot.sh create mode 100644 xCAT-server/share/xcat/kit_build/template/scripts/sample/postun.sh create mode 100644 xCAT-server/share/xcat/kit_build/template/scripts/sample/postup.sh create mode 100644 xCAT-server/share/xcat/kit_build/template/scripts/sample/pre.sh create mode 100644 xCAT-server/share/xcat/kit_build/template/scripts/sample/preun.sh create mode 100644 xCAT-server/share/xcat/kit_build/template/scripts/sample/preup.sh create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg1/pkg1-1-1.noarch.rpm create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg2/pkg2.spec create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg2/pkg2/cfg/pkg2.cfg create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg2/pkg2/files/pkg2.file1 create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg2/pkg2/files/pkg2.file2 create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg3/pkg3.spec create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg3/pkg3.tar.gz create mode 100644 xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg4/pkg4-1-1.src.rpm diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/buildkit.conf b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/buildkit.conf new file mode 100644 index 000000000..94a5bff70 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/buildkit.conf @@ -0,0 +1,300 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=vacpp + description=VACPP12 for Linux + version=12.1.0.0 + ostype=Linux +# kitdeployparams=sample/kitdeployparams.lst + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdpes=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64) (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=vacpp_compute + description=VACPP12 for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdpes=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=vacpp_loginnode + description=VACPP12 for login nodes + version=12.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdpes=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=min_vacpp_compute + description=Minimal VACPP12 packages for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdpes=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=vacpp_compute + description=VACPP12 for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdpes=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=vacpp_loginnode + description=VACPP12 for login nodes + version=12.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdpes=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=min_vacpp_compute + description=Minimal VACPP12 packages for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdpes=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=vac.cmp-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vac.lib-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vac.lic-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vacpp.cmp-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vacpp.help.pdf-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vacpp.lib-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vacpp.man-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vacpp.rte-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vacpp.rte.lnk-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=vacpp.samples-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/other_files/vacpp.exlist b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/other_files/vacpp.exlist new file mode 100755 index 000000000..18b4e5c98 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/other_files/vacpp.exlist @@ -0,0 +1,14 @@ +./opt/ibmcmp/msg/* ++./opt/ibmcmp/msg/en_US* + +./opt/ibmcmp/vac/*/crt/include* +./opt/ibmcmp/vac/*/include* +./opt/ibmcmp/vac/*/msg/* ++./opt/ibmcmp/vac/*/msg/en_US* +./opt/ibmcmp/vac/*/lap/LI_* +./opt/ibmcmp/vac/*/lap/LA_* +./opt/ibmcmp/vac/*/lap/license/*.txt + +./opt/ibmcmp/vacpp/*/include* +./opt/ibmcmp/vacpp/*/msg/* ++./opt/ibmcmp/vacpp/*/msg/en_US* diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/scripts/vacpp_license b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/scripts/vacpp_license new file mode 100755 index 000000000..fe59c8ba4 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_vacpp12-Linux/scripts/vacpp_license @@ -0,0 +1,21 @@ +#!/bin/sh + +# +# Sample script to accept licenses for the IBM vacpp and xlf compilers +# For AIX: +# do nothing, license accepted with installp -Y flag +# For Linux: +# Assumes all compiler software has been installed + + +OS=`uname` +if [ $OS != "AIX" ]; then + vacpp_script=`find /opt/ibmcmp/vacpp -name new_install -print` + + if [ -n "$vacpp_script" ] ; then + echo 1 | $vacpp_script + fi + +fi + + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/buildkit.conf b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/buildkit.conf new file mode 100644 index 000000000..28c895326 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/buildkit.conf @@ -0,0 +1,321 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=xlf + description=XLF14 for Linux + version=14.1.0.0 + ostype=Linux +# kitdeployparams=sample/kitdeployparams.lst + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=xlf_compute + description=XLF14 for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=xlf_loginnode + description=XLF14 for login nodes + version=14.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=min_xlf_compute + description=Minimal XLF14 packages for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00 + exlist=xlf.exlist + postbootscripts=xlf_license + + +kitcomponent: + basename=xlf_compute + description=XLF14 for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=xlf_loginnode + description=XLF14 for login nodes + version=14.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=min_xlf_compute + description=Minimal XLF14 packages for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00 + exlist=xlf.exlist + postbootscripts=xlf_license + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=xlf.cmp-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.help.pdf-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.lib-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.lic-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.man-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.msg.rte-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.rte-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.rte.lnk-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlf.samples-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlmass.lib-7.1.0.0-120322.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlsmp.lib-3.1.0.0-120315a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlsmp.msg.rte-3.1.0.0-120315a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=xlsmp.rte-3.1.0.0-120315a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/other_files/xlf.exlist b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/other_files/xlf.exlist new file mode 100755 index 000000000..e5cfe3931 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/other_files/xlf.exlist @@ -0,0 +1,14 @@ +./opt/ibmcmp/msg/* ++./opt/ibmcmp/msg/en_US* + +./opt/ibmcmp/xlmass/*/include* +./opt/ibmcmp/xlsmp/*/include* +./opt/ibmcmp/xlhelp* + +./opt/ibmcmp/xlf/*/include* +./opt/ibmcmp/xlf/*/msg/* ++./opt/ibmcmp/xlf/*/msg/en_US* +./opt/ibmcmp/xlf/*/lap/LA_* +./opt/ibmcmp/xlf/*/lap/LI_* +./opt/ibmcmp/xlf/*/lap/license/*.txt + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/scripts/xlf_license b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/scripts/xlf_license new file mode 100755 index 000000000..9711ed972 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/partial_xlf14-Linux/scripts/xlf_license @@ -0,0 +1,19 @@ +#!/bin/sh + +# +# Sample script to accept licenses for the IBM vacpp and xlf compilers +# For Linux: +# Assumes all compiler software has been installed + +OS=`uname` +if [ $OS != "AIX" ]; then + xlf_script=`find /opt/ibmcmp/xlf -name new_install -print` + + # Being run from a stateful install postscript or stateless postbootscript. + if [ -n "$xlf_script" ] ; then + echo 1 | $xlf_script + fi + +fi + + diff --git a/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/buildkit.conf b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/buildkit.conf new file mode 100644 index 000000000..328fc0fd2 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/buildkit.conf @@ -0,0 +1,299 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=vacpp + description=VACPP12 for Linux + version=12.1.0.0 + ostype=Linux +# kitdeployparams=sample/kitdeployparams.lst + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=vacpp_compute + description=VACPP12 for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64) + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=vacpp_loginnode + description=VACPP12 for login nodes + version=12.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64) + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=min_vacpp_compute + description=Minimal VACPP12 packages for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64) + kitpkgdeps=vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=vacpp_compute + description=VACPP12 for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64) + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=vacpp_loginnode + description=VACPP12 for login nodes + version=12.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64) + kitpkgdeps=vac.cmp >= 12.1.0.0,vac.lib >= 12.1.0.0,vac.lic >= 12.1.0.0,vacpp.cmp >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + +kitcomponent: + basename=min_vacpp_compute + description=Minimal VACPP12 packages for compute nodes + version=12.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64) + kitpkgdeps=vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0 + exlist=vacpp.exlist + postbootscripts=vacpp_license + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=vac.cmp-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vac.lib-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vac.lic-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vacpp.cmp-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vacpp.help.pdf-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vacpp.lib-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vacpp.man-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vacpp.rte-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vacpp.rte.lnk-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=vacpp.samples-12.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= diff --git a/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/other_files/vacpp.exlist b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/other_files/vacpp.exlist new file mode 100755 index 000000000..18b4e5c98 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/other_files/vacpp.exlist @@ -0,0 +1,14 @@ +./opt/ibmcmp/msg/* ++./opt/ibmcmp/msg/en_US* + +./opt/ibmcmp/vac/*/crt/include* +./opt/ibmcmp/vac/*/include* +./opt/ibmcmp/vac/*/msg/* ++./opt/ibmcmp/vac/*/msg/en_US* +./opt/ibmcmp/vac/*/lap/LI_* +./opt/ibmcmp/vac/*/lap/LA_* +./opt/ibmcmp/vac/*/lap/license/*.txt + +./opt/ibmcmp/vacpp/*/include* +./opt/ibmcmp/vacpp/*/msg/* ++./opt/ibmcmp/vacpp/*/msg/en_US* diff --git a/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/scripts/vacpp_license b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/scripts/vacpp_license new file mode 100755 index 000000000..fe59c8ba4 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/vacpp12-Linux/scripts/vacpp_license @@ -0,0 +1,21 @@ +#!/bin/sh + +# +# Sample script to accept licenses for the IBM vacpp and xlf compilers +# For AIX: +# do nothing, license accepted with installp -Y flag +# For Linux: +# Assumes all compiler software has been installed + + +OS=`uname` +if [ $OS != "AIX" ]; then + vacpp_script=`find /opt/ibmcmp/vacpp -name new_install -print` + + if [ -n "$vacpp_script" ] ; then + echo 1 | $vacpp_script + fi + +fi + + diff --git a/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/buildkit.conf b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/buildkit.conf new file mode 100644 index 000000000..6a244ffad --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/buildkit.conf @@ -0,0 +1,321 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=xlf + description=XLF14 for Linux + version=14.1.0.0 + ostype=Linux +# kitdeployparams=sample/kitdeployparams.lst + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=xlf_compute + description=XLF14 for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=xlf_loginnode + description=XLF14 for login nodes + version=14.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=min_xlf_compute + description=Minimal XLF14 packages for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00 + exlist=xlf.exlist + postbootscripts=xlf_license + + +kitcomponent: + basename=xlf_compute + description=XLF14 for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=xlf_loginnode + description=XLF14 for login nodes + version=14.1.0.0 + release=120323 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.lib >= 14.1.0.0,xlf.cmp >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0 + exlist=xlf.exlist + postbootscripts=xlf_license + +kitcomponent: + basename=min_xlf_compute + description=Minimal XLF14 packages for compute nodes + version=14.1.0.0 + release=120323 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=libstdc++.ppc,libstdc++.ppc64,libstdc++-devel.ppc,libstdc++-devel.ppc64 + kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00 + exlist=xlf.exlist + postbootscripts=xlf_license + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=xlf.cmp-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.help.pdf-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.lib-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.lic-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.man-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.msg.rte-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.rte-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.rte.lnk-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlf.samples-14.1.0.0-120323.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlmass.lib-7.1.0.0-120322.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlsmp.lib-3.1.0.0-120315a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlsmp.msg.rte-3.1.0.0-120315a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=xlsmp.rte-3.1.0.0-120315a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= diff --git a/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/other_files/xlf.exlist b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/other_files/xlf.exlist new file mode 100755 index 000000000..e5cfe3931 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/other_files/xlf.exlist @@ -0,0 +1,14 @@ +./opt/ibmcmp/msg/* ++./opt/ibmcmp/msg/en_US* + +./opt/ibmcmp/xlmass/*/include* +./opt/ibmcmp/xlsmp/*/include* +./opt/ibmcmp/xlhelp* + +./opt/ibmcmp/xlf/*/include* +./opt/ibmcmp/xlf/*/msg/* ++./opt/ibmcmp/xlf/*/msg/en_US* +./opt/ibmcmp/xlf/*/lap/LA_* +./opt/ibmcmp/xlf/*/lap/LI_* +./opt/ibmcmp/xlf/*/lap/license/*.txt + diff --git a/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/scripts/xlf_license b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/scripts/xlf_license new file mode 100755 index 000000000..9711ed972 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/compiler/xlf14-Linux/scripts/xlf_license @@ -0,0 +1,19 @@ +#!/bin/sh + +# +# Sample script to accept licenses for the IBM vacpp and xlf compilers +# For Linux: +# Assumes all compiler software has been installed + +OS=`uname` +if [ $OS != "AIX" ]; then + xlf_script=`find /opt/ibmcmp/xlf -name new_install -print` + + # Being run from a stateful install postscript or stateless postbootscript. + if [ -n "$xlf_script" ] ; then + echo 1 | $xlf_script + fi + +fi + + diff --git a/xCAT-server/share/xcat/kit_build/essl/essl/buildkit.conf b/xCAT-server/share/xcat/kit_build/essl/essl/buildkit.conf new file mode 100644 index 000000000..2209e6f58 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/essl/buildkit.conf @@ -0,0 +1,293 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=essl + description=essl for Linux + version=5.1.1 + ostype=Linux + kitdeployparams=essl.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=essl_compute + description=essl for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=essl_loginnode + description=essl for login nodes + version=5.1.1 + release=0 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=min_essl_compute + description=Minimal essl packages for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=essl_compute + description=essl for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=essl_loginnode + description=essl for compute nodes + version=5.1.1 + release=0 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=min_essl_compute + description=Minimal essl packages for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=essl.3232.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.3264.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.6464.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.bg.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.common-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.license-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.man-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.msg-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=essl.rte.common-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= diff --git a/xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.env b/xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.env new file mode 100644 index 000000000..c7198f9a0 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.env @@ -0,0 +1 @@ +#ENV:IBM_ESSL_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.exlist b/xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.exlist new file mode 100755 index 000000000..71d38cfb9 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/essl/other_files/essl.exlist @@ -0,0 +1,6 @@ +./opt/ibmmath/essl/*/FFTW3/include* +./opt/ibmmath/essl/*/include* +./opt/ibmmath/essl/*/lap/license/*.txt +./opt/ibmmath/essl/*/lap/LI_* +./opt/ibmmath/essl/*/lap/LA_* + diff --git a/xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/essl/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/essl/partial_essl/buildkit.conf b/xCAT-server/share/xcat/kit_build/essl/partial_essl/buildkit.conf new file mode 100644 index 000000000..ac5153909 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/partial_essl/buildkit.conf @@ -0,0 +1,293 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=essl + description=essl for Linux + version=5.1.1 + ostype=Linux + kitdeployparams=essl.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=essl_compute + description=essl for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=essl_loginnode + description=essl for login nodes + version=5.1.1 + release=0 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=min_essl_compute + description=Minimal essl packages for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=essl_compute + description=essl for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=essl_loginnode + description=essl for login nodes + version=5.1.1 + release=0 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + +kitcomponent: + basename=min_essl_compute + description=Minimal essl packages for compute nodes + version=5.1.1 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1 + exlist=essl.exlist + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=essl.3232.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.3264.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.6464.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.bg.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.common-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.license-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.man-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.msg-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.rte-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=essl.rte.common-5.1.1-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.env b/xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.env new file mode 100644 index 000000000..c7198f9a0 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.env @@ -0,0 +1 @@ +#ENV:IBM_ESSL_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.exlist b/xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.exlist new file mode 100755 index 000000000..5d25e2fae --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/partial_essl/other_files/essl.exlist @@ -0,0 +1,11 @@ +./opt/ibmmath/essl/*/FFTW3/include* +./opt/ibmmath/essl/*/include* +./opt/ibmmath/essl/*/lap/license/*.txt +./opt/ibmmath/essl/*/lap/LI_* +./opt/ibmmath/essl/*/lap/LA_* + +./opt/ibmmath/pessl/*/lap/LA_* +./opt/ibmmath/pessl/*/lap/LI_* +./opt/ibmmath/pessl/*/lap/*.jar + + diff --git a/xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/essl/partial_essl/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/buildkit.conf new file mode 100644 index 000000000..a7a793398 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/buildkit.conf @@ -0,0 +1,313 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=gpfs + description=General Parallel File System + version=3.5.0 + ostype=Linux + #kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + + #compat_osbasenames= + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=gpfs.base-3.5.0-6.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.gpl-3.5.0-6.noarch.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.docs-3.5.0-6.noarch.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.msg.en_US-3.5.0-6.noarch.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.gplbin-3.5.0-6.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist new file mode 100755 index 000000000..e019951c7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist @@ -0,0 +1,3 @@ +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist new file mode 100755 index 000000000..ccb5ebe96 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist @@ -0,0 +1,5 @@ +# Exclude list for building a minimal diskless image + +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* +./usr/lpp/mmfs/src* diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/sample/exclude.lst b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/sample/exclude.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/sample/kitdeployparams.lst b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/other_files/sample/kitdeployparams.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs new file mode 100755 index 000000000..fa4dab455 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs @@ -0,0 +1,15 @@ +#!/bin/sh +# xCAT postscript to configure GPFS on a stateless node. +# Before booting nodes with this postscript, gpfs must be up and configured correctly on the node +# pointed to by the -p flag below. The $MASTER environment variable will be set by xCAT to +# the service node or management node of this booting node. If you want the nodes to get their +# GPFS configuration from a different node, replace $MASTER with that IP address. +cmd="/usr/lpp/mmfs/bin/mmsdrrestore -p $MASTER -R /usr/bin/scp" +$cmd > /dev/null 2>&1 +if [[ $? != 0 ]] +then + echo "mmsdrrestore failed!" + exit 2 +else + echo "mmsdrrestore succeeded" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start new file mode 100755 index 000000000..21f50dd00 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start @@ -0,0 +1,12 @@ +#!/bin/sh + +# Run this script as a postscript on any node (stateless, statefull, +# full-disk install, AIX, Linux) to start the GPFS daemon +# + +# If you have any special network dependencies, you may want to add code +# to check them first + +/usr/lpp/mmfs/bin/mmsdrrestore +/usr/lpp/mmfs/bin/mmstartup + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates new file mode 100755 index 000000000..382a9fd25 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +# Create an empty nsddevices script for GPFS +# This assumes that the node is NOT an NSD server +if [ $OS != "AIX" ]; then + # Create the script on the node + mkdir -p /var/mmfs/etc + echo 'return 0' > /var/mmfs/etc/nsddevices + chmod 744 /var/mmfs/etc/nsddevices +fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage new file mode 100755 index 000000000..94b7891cd --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +## Create an empty nsddevices script for GPFS +## This assumes that the node is NOT an NSD server +#if [ $OS != "AIX" ]; then +# # Create the script on the node +# mkdir -p /var/mmfs/etc +# echo 'return 0' > /var/mmfs/etc/nsddevices +# chmod 744 /var/mmfs/etc/nsddevices +#fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh new file mode 100644 index 000000000..2fa3d84e1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 post script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh new file mode 100644 index 000000000..abbcb3e56 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh @@ -0,0 +1,3 @@ +#!/bin/sh +echo "running sample-comp1 postboot script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh new file mode 100644 index 000000000..a5596e931 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh new file mode 100644 index 000000000..a4ad3c500 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postup script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh new file mode 100644 index 000000000..36a88c970 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 pre script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh new file mode 100644 index 000000000..e94c3aa8e --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh new file mode 100644 index 000000000..bf2248496 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preup script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/buildkit.conf new file mode 100644 index 000000000..33d186f81 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/buildkit.conf @@ -0,0 +1,313 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=gpfs + description=General Parallel File System + version=3.5.0 + ostype=Linux + #kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + + #compat_osbasenames= + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=gpfs.base-3.5.0-6.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.gpl-3.5.0-6.noarch.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.docs-3.5.0-6.noarch.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.msg.en_US-3.5.0-6.noarch.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=base + +kitpackage: + filename=gpfs.gplbin-3.5.0-6.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist new file mode 100755 index 000000000..e019951c7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist @@ -0,0 +1,3 @@ +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist new file mode 100755 index 000000000..ccb5ebe96 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist @@ -0,0 +1,5 @@ +# Exclude list for building a minimal diskless image + +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* +./usr/lpp/mmfs/src* diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/sample/exclude.lst b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/sample/exclude.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/sample/kitdeployparams.lst b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/other_files/sample/kitdeployparams.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs new file mode 100755 index 000000000..fa4dab455 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs @@ -0,0 +1,15 @@ +#!/bin/sh +# xCAT postscript to configure GPFS on a stateless node. +# Before booting nodes with this postscript, gpfs must be up and configured correctly on the node +# pointed to by the -p flag below. The $MASTER environment variable will be set by xCAT to +# the service node or management node of this booting node. If you want the nodes to get their +# GPFS configuration from a different node, replace $MASTER with that IP address. +cmd="/usr/lpp/mmfs/bin/mmsdrrestore -p $MASTER -R /usr/bin/scp" +$cmd > /dev/null 2>&1 +if [[ $? != 0 ]] +then + echo "mmsdrrestore failed!" + exit 2 +else + echo "mmsdrrestore succeeded" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start new file mode 100755 index 000000000..21f50dd00 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start @@ -0,0 +1,12 @@ +#!/bin/sh + +# Run this script as a postscript on any node (stateless, statefull, +# full-disk install, AIX, Linux) to start the GPFS daemon +# + +# If you have any special network dependencies, you may want to add code +# to check them first + +/usr/lpp/mmfs/bin/mmsdrrestore +/usr/lpp/mmfs/bin/mmstartup + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates new file mode 100755 index 000000000..382a9fd25 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +# Create an empty nsddevices script for GPFS +# This assumes that the node is NOT an NSD server +if [ $OS != "AIX" ]; then + # Create the script on the node + mkdir -p /var/mmfs/etc + echo 'return 0' > /var/mmfs/etc/nsddevices + chmod 744 /var/mmfs/etc/nsddevices +fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage new file mode 100755 index 000000000..94b7891cd --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +## Create an empty nsddevices script for GPFS +## This assumes that the node is NOT an NSD server +#if [ $OS != "AIX" ]; then +# # Create the script on the node +# mkdir -p /var/mmfs/etc +# echo 'return 0' > /var/mmfs/etc/nsddevices +# chmod 744 /var/mmfs/etc/nsddevices +#fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh new file mode 100644 index 000000000..2fa3d84e1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 post script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh new file mode 100644 index 000000000..abbcb3e56 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh @@ -0,0 +1,3 @@ +#!/bin/sh +echo "running sample-comp1 postboot script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh new file mode 100644 index 000000000..a5596e931 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh new file mode 100644 index 000000000..a4ad3c500 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postup script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh new file mode 100644 index 000000000..36a88c970 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 pre script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh new file mode 100644 index 000000000..e94c3aa8e --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh new file mode 100644 index 000000000..bf2248496 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preup script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/buildkit.conf new file mode 100644 index 000000000..cb5dfd038 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/buildkit.conf @@ -0,0 +1,305 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=gpfs + description=General Parallel File System + version=3.5.0 + ostype=Linux + #kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + + #compat_osbasenames= + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=sles11_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=gpfs.base-3.5.0-6.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.gpl-3.5.0-6.noarch.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.docs-3.5.0-6.noarch.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.msg.en_US-3.5.0-6.noarch.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.gplbin-3.5.0-6.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist new file mode 100755 index 000000000..e019951c7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/gpfs.exlist @@ -0,0 +1,3 @@ +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist new file mode 100755 index 000000000..ccb5ebe96 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/min-gpfs.exlist @@ -0,0 +1,5 @@ +# Exclude list for building a minimal diskless image + +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* +./usr/lpp/mmfs/src* diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/sample/exclude.lst b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/sample/exclude.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/sample/kitdeployparams.lst b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/other_files/sample/kitdeployparams.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs new file mode 100755 index 000000000..fa4dab455 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_mmsdrfs @@ -0,0 +1,15 @@ +#!/bin/sh +# xCAT postscript to configure GPFS on a stateless node. +# Before booting nodes with this postscript, gpfs must be up and configured correctly on the node +# pointed to by the -p flag below. The $MASTER environment variable will be set by xCAT to +# the service node or management node of this booting node. If you want the nodes to get their +# GPFS configuration from a different node, replace $MASTER with that IP address. +cmd="/usr/lpp/mmfs/bin/mmsdrrestore -p $MASTER -R /usr/bin/scp" +$cmd > /dev/null 2>&1 +if [[ $? != 0 ]] +then + echo "mmsdrrestore failed!" + exit 2 +else + echo "mmsdrrestore succeeded" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start new file mode 100755 index 000000000..21f50dd00 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_start @@ -0,0 +1,12 @@ +#!/bin/sh + +# Run this script as a postscript on any node (stateless, statefull, +# full-disk install, AIX, Linux) to start the GPFS daemon +# + +# If you have any special network dependencies, you may want to add code +# to check them first + +/usr/lpp/mmfs/bin/mmsdrrestore +/usr/lpp/mmfs/bin/mmstartup + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates new file mode 100755 index 000000000..382a9fd25 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +# Create an empty nsddevices script for GPFS +# This assumes that the node is NOT an NSD server +if [ $OS != "AIX" ]; then + # Create the script on the node + mkdir -p /var/mmfs/etc + echo 'return 0' > /var/mmfs/etc/nsddevices + chmod 744 /var/mmfs/etc/nsddevices +fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage new file mode 100755 index 000000000..94b7891cd --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/gpfs_updates_storage @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +## Create an empty nsddevices script for GPFS +## This assumes that the node is NOT an NSD server +#if [ $OS != "AIX" ]; then +# # Create the script on the node +# mkdir -p /var/mmfs/etc +# echo 'return 0' > /var/mmfs/etc/nsddevices +# chmod 744 /var/mmfs/etc/nsddevices +#fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh new file mode 100644 index 000000000..2fa3d84e1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/post.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 post script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh new file mode 100644 index 000000000..abbcb3e56 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postboot.sh @@ -0,0 +1,3 @@ +#!/bin/sh +echo "running sample-comp1 postboot script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh new file mode 100644 index 000000000..a5596e931 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh new file mode 100644 index 000000000..a4ad3c500 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/postup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postup script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh new file mode 100644 index 000000000..36a88c970 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/pre.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 pre script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh new file mode 100644 index 000000000..e94c3aa8e --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh new file mode 100644 index 000000000..bf2248496 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-ppc64/scripts/sample/preup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preup script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/buildkit.conf new file mode 100644 index 000000000..d4169ddc7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/buildkit.conf @@ -0,0 +1,305 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=gpfs + description=General Parallel File System + version=3.5.0 + ostype=Linux + #kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + + #compat_osbasenames= + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0,gpfs.docs >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + +kitcomponent: + basename=gpfs_compute + description=GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=min_gpfs_compute + description=Minimal GPFS for compute nodes + version=3.5.0 + release=s009 + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_loginnode + description=GPFS for login nodes + version=3.5.0 + release=s009 + serverroles=loginnode + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.5.0,gpfs.gpl >= 3.5.0,gpfs.msg.en_US >= 3.5.0,gpfs.gplbin >= 3.5.0,gpfs.docs >= 3.5.0 + #non_native_pkgs= + #driverpacks= + exlist=gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates + +kitcomponent: + basename=gpfs_storagenode + description=GPFS for storage nodes + version=3.5.0 + release=s009 + serverroles=storagenode + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=gpfs.base >= 3.4.0,gpfs.gpl >= 3.4.0,gpfs.msg.en_US >= 3.4.0,gpfs.gplbin >= 3.4.0 + #non_native_pkgs= + #driverpacks= + exlist=min-gpfs.exlist + postbootscripts=gpfs_mmsdrfs,gpfs_start,gpfs_updates_storage + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=gpfs.base-3.5.0-6.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.gpl-3.5.0-6.noarch.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.docs-3.5.0-6.noarch.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.msg.en_US-3.5.0-6.noarch.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + isexternalpkg=yes + +kitpackage: + filename=gpfs.gplbin-3.5.0-6.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist new file mode 100755 index 000000000..e019951c7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/gpfs.exlist @@ -0,0 +1,3 @@ +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist new file mode 100755 index 000000000..ccb5ebe96 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/min-gpfs.exlist @@ -0,0 +1,5 @@ +# Exclude list for building a minimal diskless image + +./usr/lpp/mmfs/include* +./usr/lpp/mmfs/samples* +./usr/lpp/mmfs/src* diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/sample/exclude.lst b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/sample/exclude.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/sample/kitdeployparams.lst b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/other_files/sample/kitdeployparams.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs new file mode 100755 index 000000000..fa4dab455 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_mmsdrfs @@ -0,0 +1,15 @@ +#!/bin/sh +# xCAT postscript to configure GPFS on a stateless node. +# Before booting nodes with this postscript, gpfs must be up and configured correctly on the node +# pointed to by the -p flag below. The $MASTER environment variable will be set by xCAT to +# the service node or management node of this booting node. If you want the nodes to get their +# GPFS configuration from a different node, replace $MASTER with that IP address. +cmd="/usr/lpp/mmfs/bin/mmsdrrestore -p $MASTER -R /usr/bin/scp" +$cmd > /dev/null 2>&1 +if [[ $? != 0 ]] +then + echo "mmsdrrestore failed!" + exit 2 +else + echo "mmsdrrestore succeeded" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start new file mode 100755 index 000000000..21f50dd00 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_start @@ -0,0 +1,12 @@ +#!/bin/sh + +# Run this script as a postscript on any node (stateless, statefull, +# full-disk install, AIX, Linux) to start the GPFS daemon +# + +# If you have any special network dependencies, you may want to add code +# to check them first + +/usr/lpp/mmfs/bin/mmsdrrestore +/usr/lpp/mmfs/bin/mmstartup + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates new file mode 100755 index 000000000..382a9fd25 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +# Create an empty nsddevices script for GPFS +# This assumes that the node is NOT an NSD server +if [ $OS != "AIX" ]; then + # Create the script on the node + mkdir -p /var/mmfs/etc + echo 'return 0' > /var/mmfs/etc/nsddevices + chmod 744 /var/mmfs/etc/nsddevices +fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage new file mode 100755 index 000000000..94b7891cd --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/gpfs_updates_storage @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Sample script to install and configure GPFS +# For AIX: +# Assumes the GPFS filesets and updates were installed using +# xCAT bundle files or some other mechanism. This script does not +# install additional software. +# It will do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile +# For Linux: +# Assumes the base GPFS rpms were installed with the xCAT 'otherpkgs' +# postscript (stateful install) or with the otherpkgs processing of +# genimage (stateless/statelite install). This script will install any +# gpfs update rpms that exist on the xCAT management node in the +# /install/post/gpfs_updates directory. +# This is necessary because the GPFS updates can ONLY be installed +# after the base rpms have been installed, and the update rpms cannot +# exist in any rpm repositories used by xCAT otherpkgs processing +# since they will confuse rpm tools such as zypper and yum. +# This script will also do the following: +# - create /var/mmfs/etc/nsddevices that simply returns 0 +# - add GPFS paths to profile + +OS=`uname` +INSTALL_DIR='/install' +UPDATES_DIR='post/otherpkgs/gpfs_updates' + +if [ $OS != "AIX" ]; then + if [ -f "/proc/cmdline" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/gpfs_updates + rm -f -R /tmp/gpfs_updates/* + cd /tmp/gpfs_updates +# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log + if [ -n "`ls *.rpm 2> /dev/null`" ] ; then + rpm -Uvh *.rpm + fi + cd / + rm -f -R /tmp/gpfs_updates + fi +fi + +## Create an empty nsddevices script for GPFS +## This assumes that the node is NOT an NSD server +#if [ $OS != "AIX" ]; then +# # Create the script on the node +# mkdir -p /var/mmfs/etc +# echo 'return 0' > /var/mmfs/etc/nsddevices +# chmod 744 /var/mmfs/etc/nsddevices +#fi + + +# Add GPFS path to profile +if [ $OS != "AIX" ]; then + gpfsprofile=/etc/profile.d/gpfs + if [ ! -f "/proc/cmdline" ]; then + gpfsprofile=$gpfsprofile + fi + if [ ! -e $gpfsprofile.sh ]; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + # Turn off LANG support since we did not install other msg catalogs + echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh + echo 'export LC_ALL=POSIX' >> $gpfsprofile.sh + echo 'setenv LC_ALL POSIX' >> $gpfsprofile.csh + chmod 744 $gpfsprofile.sh + chmod 744 $gpfsprofile.csh + fi +fi + +# If you are using a shared home directory stored in GPFS, +# create the symbolic link +# +# GPFSHOME=/gpfs/home +# HOMEDIR=/u +# ln -s $GPFSHOME $HOMEDIR + + + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh new file mode 100644 index 000000000..2fa3d84e1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/post.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 post script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh new file mode 100644 index 000000000..abbcb3e56 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postboot.sh @@ -0,0 +1,3 @@ +#!/bin/sh +echo "running sample-comp1 postboot script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh new file mode 100644 index 000000000..a5596e931 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh new file mode 100644 index 000000000..a4ad3c500 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/postup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postup script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh new file mode 100644 index 000000000..36a88c970 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/pre.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 pre script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh new file mode 100644 index 000000000..e94c3aa8e --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preun script" + diff --git a/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh new file mode 100644 index 000000000..bf2248496 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/gpfs/partial-gpfs-3.5.0-6-Linux-x86_64/scripts/sample/preup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preup script" + diff --git a/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/buildkit.conf b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/buildkit.conf new file mode 100644 index 000000000..5f980187c --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/buildkit.conf @@ -0,0 +1,286 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=pessl + description=pessl for Linux + version=4.2.0 + ostype=Linux + kitdeployparams=pessl.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=pessl_compute + description=pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=pessl_loginnode + description=pessl for login nodes + version=4.2.0 + release=0 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=min_pessl_compute + description=Minimal pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=min-pessl.exlist + + +kitcomponent: + basename=pessl_compute + description=pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=essl_loginnode + description=pessl for login nodes + version=4.2.0 + release=0 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=min_pessl_compute + description=Minimal pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=min-pessl.exlist + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=pessl.3232.rte.mpich-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=pessl.3232.rte.ppe-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=pessl.3264.rte.mpich-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=pessl.3264.rte.ppe-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=pessl.common-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=pessl.license-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=pessl.man-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=pessl.msg-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=pessl.rte.common-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/min-pessl.exlist b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/min-pessl.exlist new file mode 100755 index 000000000..903c93802 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/min-pessl.exlist @@ -0,0 +1,5 @@ +./opt/ibmmath/pessl/*/lap/LA_* +./opt/ibmmath/pessl/*/lap/LI_* +./opt/ibmmath/pessl/*/lap/*.jar +./opt/ibmmath/pessl/*/example* + diff --git a/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.env b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.env new file mode 100644 index 000000000..90146f379 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.env @@ -0,0 +1 @@ +#ENV:IBM_PESSL_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.exlist b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.exlist new file mode 100755 index 000000000..4ef49f9c7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/other_files/pessl.exlist @@ -0,0 +1,5 @@ +./opt/ibmmath/pessl/*/lap/LA_* +./opt/ibmmath/pessl/*/lap/LI_* +./opt/ibmmath/pessl/*/lap/*.jar + + diff --git a/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/partial-pessl/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/pessl/pessl/buildkit.conf b/xCAT-server/share/xcat/kit_build/pessl/pessl/buildkit.conf new file mode 100644 index 000000000..05eec2328 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/pessl/buildkit.conf @@ -0,0 +1,285 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=pessl + description=pessl for Linux + version=4.2.0 + ostype=Linux + kitdeployparams=pessl.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=pessl_compute + description=pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=pessl_loginnode + description=pessl for login nodes + version=4.2.0 + release=0 + serverroles=loginnode + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=min_pessl_compute + description=Minimal pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=min-pessl.exlist + +kitcomponent: + basename=essl_compute + description=pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=essl_loginnode + description=pessl for login nodes + version=4.2.0 + release=0 + serverroles=loginnode + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.man >= 4.2.0,pessl.msg >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=pessl.exlist + +kitcomponent: + basename=min_essl_compute + description=Minimal pessl for compute nodes + version=4.2.0 + release=0 + serverroles=compute + kitrepoid=sles11_ppc64 + ospkgdeps=bc,xorg-x11-libXp-32bit + kitpkgdeps=pessl.3232.rte.mpich >= 4.2.0,pessl.3232.rte.ppe >= 4.2.0,pessl.3264.rte.mpich >= 4.2.0,pessl.3264.rte.ppe >= 4.2.0,pessl.common >= 4.2.0,pessl.license >= 4.2.0,pessl.rte.common >= 4.2.0 + exlist=min-pessl.exlist + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=pessl.3232.rte.mpich-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= +kitpackage: + filename=pessl.3232.rte.ppe-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=pessl.3264.rte.mpich-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=pessl.3264.rte.ppe-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=pessl.common-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=pessl.license-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=pessl.man-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=pessl.msg-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=pessl.rte.common-4.2.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= diff --git a/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/min-pessl.exlist b/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/min-pessl.exlist new file mode 100755 index 000000000..903c93802 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/min-pessl.exlist @@ -0,0 +1,5 @@ +./opt/ibmmath/pessl/*/lap/LA_* +./opt/ibmmath/pessl/*/lap/LI_* +./opt/ibmmath/pessl/*/lap/*.jar +./opt/ibmmath/pessl/*/example* + diff --git a/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.env b/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.env new file mode 100644 index 000000000..90146f379 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.env @@ -0,0 +1 @@ +#ENV:IBM_PESSL_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.exlist b/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.exlist new file mode 100755 index 000000000..4ef49f9c7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/pessl/other_files/pessl.exlist @@ -0,0 +1,5 @@ +./opt/ibmmath/pessl/*/lap/LA_* +./opt/ibmmath/pessl/*/lap/LI_* +./opt/ibmmath/pessl/*/lap/*.jar + + diff --git a/xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/pessl/pessl/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/buildkit.conf new file mode 100644 index 000000000..adba774c7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/buildkit.conf @@ -0,0 +1,329 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=pperte + description=Parallel Environment Runtime Edition + version=1.2.0.10 + ostype=Linux + kitdeployparams=pe.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=pperte_compute + description=PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=min_pperte_compute + description=Minimal PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_loginnode + description=PE RTE for login nodes + version=1.2.0.10 + release=s010a + serverroles=loginnode + kitrepoid=rhels6_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_compute + description=PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=sles11_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=min_pperte_compute + description=Minimal PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=sles11_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_loginnode + description=PE RTE for login nodes + version=1.2.0.10 + release=s010a + serverroles=loginnode + kitrepoid=sles11_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +### RH6 ppc64 rpms +kitpackage: + filename=pperterh6x-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=pperteman-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_rh6x_12010-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +### SLES11 ppc64 rpms +#kitpackage: +# filename=ppertesles11x-1.2.0.10-s010a.ppc64.rpm +# kitrepoid=sles11_ppc64 +# # Method 1: Use pre-built RPM package +# isexternalpkg=yes + +kitpackage: + filename=pperteman-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +#kitpackage: +# filename=ppe_rte_sles11x_12010-1.2.0.10-s010a.ppc64.rpm +# kitrepoid=sles11_ppc64 +# # Method 1: Use pre-built RPM package +# isexternalpkg=yes + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=src-1.3.1.1-12080.ppc.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +### License rpm gets placed in all repos +kitpackage: + filename=ppe_rte_license-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.env b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.env new file mode 100644 index 000000000..f2d982d78 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.env @@ -0,0 +1,2 @@ +#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes# + diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.exlist b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.exlist new file mode 100755 index 000000000..847caaab1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/other_files/pe.exlist @@ -0,0 +1,11 @@ +./opt/ibmhpc/lapi/include* +./opt/ibmhpc/lapi/pnsd/include* +./opt/ibmhpc/lapi/samples* + +./opt/ibmhpc/ppe.poe/include* +./opt/ibmhpc/ppe.poe/man/* +./opt/ibmhpc/ppe.poe/samples* +./opt/ibmhpc/hal/include* +./etc/opt/ibmhpc/license/*.txt + + diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postboot b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postboot new file mode 100755 index 000000000..1895a26e9 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postboot @@ -0,0 +1,32 @@ +#!/bin/sh +# +# +# For Linux: +# - Generate mpi modules +# - Generate and store checkpoint key +# - BSR support configuration + +# Generate mpi modules + gen_xlf=`grep PE_LATEST_LEVEL /etc/ppe.cfg | cut -f2 -d ' ' `/mpich2/sbin/xlf_gen_mpimod + if [ -x $gen_xlf ] ; then + $gen_xlf + fi + +#Generate checkpoint key and store it into the image, ckpt script could ust it after boot. + KEY=$(dd if=/dev/random count=1 2>/dev/null | sha1sum | awk '{print $1}') + echo $KEY > /root/.ckpt.key + chmod 400 /root/.ckpt.key + + +# BSR configuration, uncomment the following lines to enable BSR configuration on Power Linux cluster. +# groupadd bsr +# mkdir -p /var/lib/bsr +# chown root:bsr /var/lib/bsr +# chmod g+sw /var/lib/bsr + + +# pelinks script support, uncomment the following lines and change to the correct pe version that you intend to use. +#PE_VERSION=1202 +# if [ -f "/proc/cmdline" ]; then +# MP_CONFIG=$PE_VERSION /opt/ibmhpc/pe$PE_VERSION/ppe.poe/bin/pelinks +# fi diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postinstall b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postinstall new file mode 100755 index 000000000..541bd3ad1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-ppc64/scripts/pperte_postinstall @@ -0,0 +1,37 @@ +#!/bin/sh +# +# +# For Linux: +# - Create a smaller PNSD log file in /tmp +# - Configure poe.limits file +# - Generate and store checkpoint key +# - BSR support configuration + +# Configure the PNSD.cfg to use a smaller log so it doesn't use so much memory +# for a stateless image. Normally, pnsd creates this file if it does not +# exist, but it will not fill it in if it does exist. +if [ ! -f /etc/PNSD.cfg ]; then + echo "log_file = /tmp/serverlog" > /etc/PNSD.cfg + echo "log_file_size = 2097152" >> /etc/PNSD.cfg + echo "socket_file = /tmp/PNSD" >> /etc/PNSD.cfg +else + /bin/sed -i 's/log_file_size = .*/log_file_size = 2097152/g' /etc/PNSD.cfg + if [ -f "/proc/cmdline" ]; then + stopsrc -s pnsd + startsrc -s pnsd + fi +fi + +# Configure the poe.limits file +if [ ! -f /etc/poe.limits ]; then + echo "MP_POE_LAUNCH=all" > /etc/poe.limits +else + /bin/sed -i 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' /etc/poe.limits +fi + + +# POE requires rsh to be running + /bin/sed -i 's/disable.*/disable = no/g' /etc/xinetd.d/rsh + if [ -f "/proc/cmdline" ]; then + service xinetd restart + fi diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/buildkit.conf new file mode 100644 index 000000000..7a5500d37 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/buildkit.conf @@ -0,0 +1,331 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=pperte + description=Parallel Environment Runtime Edition + version=1.2.0.10 + ostype=Linux + kitdeployparams=pe.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=pperte_compute + description=PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=min_pperte_compute + description=Minimal PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_loginnode + description=PE RTE for login nodes + version=1.2.0.10 + release=s010a + serverroles=loginnode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_compute + description=PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=min_pperte_compute + description=Minimal PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10 + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_loginnode + description=PE RTE for login nodes + version=1.2.0.10 + release=s010a + serverroles=loginnode + kitrepoid=sles11_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +### RH6 x86_64 rpms +kitpackage: + filename=pperterh6x-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=pperteman-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_rh6x_12010-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +### SLES11 x86_64 rpms +kitpackage: + filename=ppertesles11x-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=pperteman-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_sles11x_12010-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + +kitpackage: + filename=src-1.3.1.1-12080.i386.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +### License rpm gets placed in all repos +kitpackage: + filename=ppe_rte_license-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.env b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.env new file mode 100644 index 000000000..f2d982d78 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.env @@ -0,0 +1,2 @@ +#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes# + diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.exlist b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.exlist new file mode 100755 index 000000000..847caaab1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/other_files/pe.exlist @@ -0,0 +1,11 @@ +./opt/ibmhpc/lapi/include* +./opt/ibmhpc/lapi/pnsd/include* +./opt/ibmhpc/lapi/samples* + +./opt/ibmhpc/ppe.poe/include* +./opt/ibmhpc/ppe.poe/man/* +./opt/ibmhpc/ppe.poe/samples* +./opt/ibmhpc/hal/include* +./etc/opt/ibmhpc/license/*.txt + + diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postboot b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postboot new file mode 100755 index 000000000..1895a26e9 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postboot @@ -0,0 +1,32 @@ +#!/bin/sh +# +# +# For Linux: +# - Generate mpi modules +# - Generate and store checkpoint key +# - BSR support configuration + +# Generate mpi modules + gen_xlf=`grep PE_LATEST_LEVEL /etc/ppe.cfg | cut -f2 -d ' ' `/mpich2/sbin/xlf_gen_mpimod + if [ -x $gen_xlf ] ; then + $gen_xlf + fi + +#Generate checkpoint key and store it into the image, ckpt script could ust it after boot. + KEY=$(dd if=/dev/random count=1 2>/dev/null | sha1sum | awk '{print $1}') + echo $KEY > /root/.ckpt.key + chmod 400 /root/.ckpt.key + + +# BSR configuration, uncomment the following lines to enable BSR configuration on Power Linux cluster. +# groupadd bsr +# mkdir -p /var/lib/bsr +# chown root:bsr /var/lib/bsr +# chmod g+sw /var/lib/bsr + + +# pelinks script support, uncomment the following lines and change to the correct pe version that you intend to use. +#PE_VERSION=1202 +# if [ -f "/proc/cmdline" ]; then +# MP_CONFIG=$PE_VERSION /opt/ibmhpc/pe$PE_VERSION/ppe.poe/bin/pelinks +# fi diff --git a/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postinstall b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postinstall new file mode 100755 index 000000000..541bd3ad1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/partial-pperte-x86_64/scripts/pperte_postinstall @@ -0,0 +1,37 @@ +#!/bin/sh +# +# +# For Linux: +# - Create a smaller PNSD log file in /tmp +# - Configure poe.limits file +# - Generate and store checkpoint key +# - BSR support configuration + +# Configure the PNSD.cfg to use a smaller log so it doesn't use so much memory +# for a stateless image. Normally, pnsd creates this file if it does not +# exist, but it will not fill it in if it does exist. +if [ ! -f /etc/PNSD.cfg ]; then + echo "log_file = /tmp/serverlog" > /etc/PNSD.cfg + echo "log_file_size = 2097152" >> /etc/PNSD.cfg + echo "socket_file = /tmp/PNSD" >> /etc/PNSD.cfg +else + /bin/sed -i 's/log_file_size = .*/log_file_size = 2097152/g' /etc/PNSD.cfg + if [ -f "/proc/cmdline" ]; then + stopsrc -s pnsd + startsrc -s pnsd + fi +fi + +# Configure the poe.limits file +if [ ! -f /etc/poe.limits ]; then + echo "MP_POE_LAUNCH=all" > /etc/poe.limits +else + /bin/sed -i 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' /etc/poe.limits +fi + + +# POE requires rsh to be running + /bin/sed -i 's/disable.*/disable = no/g' /etc/xinetd.d/rsh + if [ -f "/proc/cmdline" ]; then + service xinetd restart + fi diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/buildkit.conf new file mode 100644 index 000000000..7456909c0 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/buildkit.conf @@ -0,0 +1,343 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=pperte + description=Parallel Environment Runtime Edition + version=1.2.0.10 + ostype=Linux + kitdeployparams=pe.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=pperte_compute + description=PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,pperterh6p >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=min_pperte_compute + description=Minimal PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,pperterh6p >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_loginnode + description=PE RTE for login nodes + version=1.2.0.10 + release=s010a + serverroles=loginnode + kitrepoid=rhels6_ppc64 + #kitcompdeps= + ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) + kitpkgdeps=ppe_rte_license,pperterh6p >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +#kitcomponent: +# basename=pperte_compute +# description=PE RTE for compute nodes +# version=1.2.0.10 +# release=s010a +# serverroles=compute +# kitrepoid=sles11_ppc64 +# #kitcompdeps= +# ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) +# kitpkgdeps=ppe_rte_license,ppertesles11p >= 1.2.0.10,ppe_rte_man >= 1.2.0.10,ppe_rte_samples >= 1.2.0.10,src +# exlist=pe.exlist +# postinstall=pperte_postinstall +# postupgrade=pperte_postinstall +# postbootscripts=pperte_postboot + +#kitcomponent: +# basename=pperte_min-compute +# description=Minimal PE RTE for compute nodes +# version=1.2.0.10 +# release=s010a +# serverroles=compute +# kitrepoid=sles11_ppc64 +# #kitcompdeps= +# ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) +# kitpkgdeps=ppe_rte_license,ppertesles11p >= 1.2.0.10,ppe_rte_man >= 1.2.0.10,ppe_rte_samples >= 1.2.0.10,src +# exlist=pe.exlist +# postinstall=pperte_postinstall +# postupgrade=pperte_postinstall +# postbootscripts=pperte_postboot + +#kitcomponent: +# basename=pperte_loginnode +# description=PE RTE for login nodes +# version=1.2.0.10 +# release=s010a +# serverroles=loginnode +# kitrepoid=sles11_ppc64 +# #kitcompdeps= +# ospkgdeps=libibverbs(ppc-32),libibverbs(ppc-64) +# kitpkgdeps=ppe_rte_license,ppertesles11p >= 1.2.0.10,ppe_rte_man >= 1.2.0.10,ppe_rte_samples >= 1.2.0.10,src +# exlist=pe.exlist +# postinstall=pperte_postinstall +# postupgrade=pperte_postinstall +# postbootscripts=pperte_postboot + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +### RH6 ppc64 rpms +kitpackage: + filename=pperterh6p-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=pperteman-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppe_rte_rh6p_12010-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +### SLES11 ppc64 rpms +#kitpackage: +# filename=ppertesles11p-1.2.0.10-s010a.ppc64.rpm +# kitrepoid=sles11_ppc64 +# # Method 1: Use pre-built RPM package +# isexternalpkg=no +# rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=pperteman-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +#kitpackage: +# filename=ppe_rte_sles11p_12010-1.2.0.10-s010a.ppc64.rpm +# kitrepoid=sles11_ppc64 +# # Method 1: Use pre-built RPM package +# isexternalpkg=no +# rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.ppc64.rpm + kitrepoid=sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 +kitpackage: + filename=src-1.3.1.1-12080.ppc.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + + +### License rpm gets placed in all repos +kitpackage: + filename=ppe_rte_license-1.2.0.10-s010a.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.env b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.env new file mode 100644 index 000000000..f2d982d78 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.env @@ -0,0 +1,2 @@ +#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes# + diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.exlist b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.exlist new file mode 100755 index 000000000..847caaab1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/other_files/pe.exlist @@ -0,0 +1,11 @@ +./opt/ibmhpc/lapi/include* +./opt/ibmhpc/lapi/pnsd/include* +./opt/ibmhpc/lapi/samples* + +./opt/ibmhpc/ppe.poe/include* +./opt/ibmhpc/ppe.poe/man/* +./opt/ibmhpc/ppe.poe/samples* +./opt/ibmhpc/hal/include* +./etc/opt/ibmhpc/license/*.txt + + diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postboot b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postboot new file mode 100755 index 000000000..1895a26e9 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postboot @@ -0,0 +1,32 @@ +#!/bin/sh +# +# +# For Linux: +# - Generate mpi modules +# - Generate and store checkpoint key +# - BSR support configuration + +# Generate mpi modules + gen_xlf=`grep PE_LATEST_LEVEL /etc/ppe.cfg | cut -f2 -d ' ' `/mpich2/sbin/xlf_gen_mpimod + if [ -x $gen_xlf ] ; then + $gen_xlf + fi + +#Generate checkpoint key and store it into the image, ckpt script could ust it after boot. + KEY=$(dd if=/dev/random count=1 2>/dev/null | sha1sum | awk '{print $1}') + echo $KEY > /root/.ckpt.key + chmod 400 /root/.ckpt.key + + +# BSR configuration, uncomment the following lines to enable BSR configuration on Power Linux cluster. +# groupadd bsr +# mkdir -p /var/lib/bsr +# chown root:bsr /var/lib/bsr +# chmod g+sw /var/lib/bsr + + +# pelinks script support, uncomment the following lines and change to the correct pe version that you intend to use. +#PE_VERSION=1202 +# if [ -f "/proc/cmdline" ]; then +# MP_CONFIG=$PE_VERSION /opt/ibmhpc/pe$PE_VERSION/ppe.poe/bin/pelinks +# fi diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postinstall b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postinstall new file mode 100755 index 000000000..541bd3ad1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-ppc64/scripts/pperte_postinstall @@ -0,0 +1,37 @@ +#!/bin/sh +# +# +# For Linux: +# - Create a smaller PNSD log file in /tmp +# - Configure poe.limits file +# - Generate and store checkpoint key +# - BSR support configuration + +# Configure the PNSD.cfg to use a smaller log so it doesn't use so much memory +# for a stateless image. Normally, pnsd creates this file if it does not +# exist, but it will not fill it in if it does exist. +if [ ! -f /etc/PNSD.cfg ]; then + echo "log_file = /tmp/serverlog" > /etc/PNSD.cfg + echo "log_file_size = 2097152" >> /etc/PNSD.cfg + echo "socket_file = /tmp/PNSD" >> /etc/PNSD.cfg +else + /bin/sed -i 's/log_file_size = .*/log_file_size = 2097152/g' /etc/PNSD.cfg + if [ -f "/proc/cmdline" ]; then + stopsrc -s pnsd + startsrc -s pnsd + fi +fi + +# Configure the poe.limits file +if [ ! -f /etc/poe.limits ]; then + echo "MP_POE_LAUNCH=all" > /etc/poe.limits +else + /bin/sed -i 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' /etc/poe.limits +fi + + +# POE requires rsh to be running + /bin/sed -i 's/disable.*/disable = no/g' /etc/xinetd.d/rsh + if [ -f "/proc/cmdline" ]; then + service xinetd restart + fi diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/buildkit.conf new file mode 100644 index 000000000..601de986e --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/buildkit.conf @@ -0,0 +1,343 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=pperte + description=Parallel Environment Runtime Edition + version=1.2.0.10 + ostype=Linux + kitdeployparams=pe.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=pperte_compute + description=PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot,pperte_postinstall + +kitcomponent: + basename=min_pperte_compute + description=Minimal PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_loginnode + description=PE RTE for login nodes + version=1.2.0.10 + release=s010a + serverroles=loginnode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,pperterh6x >= 1.2.0.10,ppe_rte_man >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_compute + description=PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=min_pperte_compute + description=Minimal PE RTE for compute nodes + version=1.2.0.10 + release=s010a + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +kitcomponent: + basename=pperte_loginnode + description=PE RTE for login nodes + version=1.2.0.10 + release=s010a + serverroles=loginnode + kitrepoid=sles11_x86_64 + #kitcompdeps= + ospkgdeps=libibverbs(x86-32),libibverbs(x86-64) + kitpkgdeps=ppe_rte_license,ppertesles11x >= 1.2.0.10,pperteman >= 1.2.0.10,ppertesamples >= 1.2.0.10,src + exlist=pe.exlist + postinstall=pperte_postinstall + postupgrade=pperte_postinstall + postbootscripts=pperte_postboot + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +### RH6 x86_64 rpms +kitpackage: + filename=pperterh6x-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=pperteman-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppe_rte_rh6x_12010-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +### SLES11 x86_64 rpms +kitpackage: + filename=ppertesles11x-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=pperteman-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppertesamples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppe_rte_sles11x_12010-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppe_rte_man-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppe_rte_samples-1.2.0.10-s010a.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=src-1.3.1.1-12080.i386.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +### License rpm gets placed in all repos +kitpackage: + filename=ppe_rte_license-1.2.0.0-1208e.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.env b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.env new file mode 100644 index 000000000..f2d982d78 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.env @@ -0,0 +1,2 @@ +#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes# + diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.exlist b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.exlist new file mode 100644 index 000000000..847caaab1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/other_files/pe.exlist @@ -0,0 +1,11 @@ +./opt/ibmhpc/lapi/include* +./opt/ibmhpc/lapi/pnsd/include* +./opt/ibmhpc/lapi/samples* + +./opt/ibmhpc/ppe.poe/include* +./opt/ibmhpc/ppe.poe/man/* +./opt/ibmhpc/ppe.poe/samples* +./opt/ibmhpc/hal/include* +./etc/opt/ibmhpc/license/*.txt + + diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postboot b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postboot new file mode 100755 index 000000000..1895a26e9 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postboot @@ -0,0 +1,32 @@ +#!/bin/sh +# +# +# For Linux: +# - Generate mpi modules +# - Generate and store checkpoint key +# - BSR support configuration + +# Generate mpi modules + gen_xlf=`grep PE_LATEST_LEVEL /etc/ppe.cfg | cut -f2 -d ' ' `/mpich2/sbin/xlf_gen_mpimod + if [ -x $gen_xlf ] ; then + $gen_xlf + fi + +#Generate checkpoint key and store it into the image, ckpt script could ust it after boot. + KEY=$(dd if=/dev/random count=1 2>/dev/null | sha1sum | awk '{print $1}') + echo $KEY > /root/.ckpt.key + chmod 400 /root/.ckpt.key + + +# BSR configuration, uncomment the following lines to enable BSR configuration on Power Linux cluster. +# groupadd bsr +# mkdir -p /var/lib/bsr +# chown root:bsr /var/lib/bsr +# chmod g+sw /var/lib/bsr + + +# pelinks script support, uncomment the following lines and change to the correct pe version that you intend to use. +#PE_VERSION=1202 +# if [ -f "/proc/cmdline" ]; then +# MP_CONFIG=$PE_VERSION /opt/ibmhpc/pe$PE_VERSION/ppe.poe/bin/pelinks +# fi diff --git a/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postinstall b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postinstall new file mode 100755 index 000000000..541bd3ad1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppe/pperte-x86_64/scripts/pperte_postinstall @@ -0,0 +1,37 @@ +#!/bin/sh +# +# +# For Linux: +# - Create a smaller PNSD log file in /tmp +# - Configure poe.limits file +# - Generate and store checkpoint key +# - BSR support configuration + +# Configure the PNSD.cfg to use a smaller log so it doesn't use so much memory +# for a stateless image. Normally, pnsd creates this file if it does not +# exist, but it will not fill it in if it does exist. +if [ ! -f /etc/PNSD.cfg ]; then + echo "log_file = /tmp/serverlog" > /etc/PNSD.cfg + echo "log_file_size = 2097152" >> /etc/PNSD.cfg + echo "socket_file = /tmp/PNSD" >> /etc/PNSD.cfg +else + /bin/sed -i 's/log_file_size = .*/log_file_size = 2097152/g' /etc/PNSD.cfg + if [ -f "/proc/cmdline" ]; then + stopsrc -s pnsd + startsrc -s pnsd + fi +fi + +# Configure the poe.limits file +if [ ! -f /etc/poe.limits ]; then + echo "MP_POE_LAUNCH=all" > /etc/poe.limits +else + /bin/sed -i 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' /etc/poe.limits +fi + + +# POE requires rsh to be running + /bin/sed -i 's/disable.*/disable = no/g' /etc/xinetd.d/rsh + if [ -f "/proc/cmdline" ]; then + service xinetd restart + fi diff --git a/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/buildkit.conf new file mode 100644 index 000000000..0b459d33e --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/buildkit.conf @@ -0,0 +1,209 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=ppedev + description=Parallel Environment Developer Edition + version=1.3.0 + ostype=Linux + kitdeployparams=ppedev.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=ppedev_compute + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6p >= 1.3.0-0,ppedev_ptp_rte_rh6p >= 1.3.0-0,ppedev_runtime_rh6p >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6p >= 1.3.0-0 + +kitcomponent: + basename=ppedev_loginnode + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6p >= 1.3.0-0,ppedev_ptp_rte_rh6p >= 1.3.0-0,ppedev_runtime_rh6p >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6p >= 1.3.0-0 + + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +kitpackage: + filename=ppedev_hpct_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_license-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_ptp_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_ptp_rte_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_runtime_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/other_files/ppedev.env b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/other_files/ppedev.env new file mode 100644 index 000000000..524c8af4a --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-ppc64/other_files/ppedev.env @@ -0,0 +1 @@ +#ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/buildkit.conf new file mode 100644 index 000000000..a92db692c --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/buildkit.conf @@ -0,0 +1,281 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=ppedev + description=Parallel Environment Developer Edition + version=1.3.0 + ostype=Linux + kitdeployparams=ppedev.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=ppedev_compute + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6x >= 1.3.0-0,ppedev_ptp_rte_rh6x >= 1.3.0-0,ppedev_runtime_rh6x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6x >= 1.3.0-0 + +kitcomponent: + basename=ppedev_loginnode + description=ppe developer edition for login node + version=1.3.0 + release=0 + serverroles=loginnode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6x >= 1.3.0-0,ppedev_ptp_rte_rh6x >= 1.3.0-0,ppedev_runtime_rh6x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6x >= 1.3.0-0 + +kitcomponent: + basename=ppedev_compute + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_sles11x >= 1.3.0-0,ppedev_ptp_rte_sles11x >= 1.3.0-0,ppedev_runtime_sles11x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_sles11x >= 1.3.0-0 + +kitcomponent: + basename=ppedev_loginnode + description=ppe developer edition for login node + version=1.3.0 + release=0 + serverroles=loginnode + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_sles11x >= 1.3.0-0,ppedev_ptp_rte_sles11x >= 1.3.0-0,ppedev_runtime_sles11x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_sles11x >= 1.3.0-0 + + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +kitpackage: + filename=ppedev_hpct_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_license-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_ptp_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_ptp_rte_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_runtime_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_license-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=ppedev_ptp_rte_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + + +kitpackage: + filename=ppedev_ptp_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + + +kitpackage: + filename=ppedev_hpct_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + + +kitpackage: + filename=ppedev_runtime_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + + diff --git a/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/other_files/ppedev.env b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/other_files/ppedev.env new file mode 100644 index 000000000..524c8af4a --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/partial-ppedev-x86_64/other_files/ppedev.env @@ -0,0 +1 @@ +#ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/buildkit.conf new file mode 100644 index 000000000..06ce830af --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/buildkit.conf @@ -0,0 +1,211 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=ppedev + description=Parallel Environment Developer Edition + version=1.3.0 + ostype=Linux + kitdeployparams=ppedev.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=ppedev_compute + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6p >= 1.3.0-0,ppedev_ptp_rte_rh6p >= 1.3.0-0,ppedev_runtime_rh6p >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6p >= 1.3.0-0 + +kitcomponent: + basename=ppedev_loginnode + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=rhels6_ppc64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6p >= 1.3.0-0,ppedev_ptp_rte_rh6p >= 1.3.0-0,ppedev_runtime_rh6p >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6p >= 1.3.0-0 + + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +kitpackage: + filename=ppedev_hpct_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=pwr64_redhat_6.0.0 + +kitpackage: + filename=ppedev_license-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=pwr64_redhat_6.0.0 + +kitpackage: + filename=ppedev_ptp_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=pwr64_redhat_6.0.0 + +kitpackage: + filename=ppedev_ptp_rte_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=pwr64_redhat_6.0.0 + +kitpackage: + filename=ppedev_runtime_rh6p-1.3.0-0.ppc64.rpm + kitrepoid=rhels6_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=pwr64_redhat_6.0.0 diff --git a/xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/other_files/ppedev.env b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/other_files/ppedev.env new file mode 100644 index 000000000..524c8af4a --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-ppc64/other_files/ppedev.env @@ -0,0 +1 @@ +#ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/buildkit.conf new file mode 100644 index 000000000..05d714d95 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/buildkit.conf @@ -0,0 +1,281 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=ppedev + description=Parallel Environment Developer Edition + version=1.3.0 + ostype=Linux + kitdeployparams=ppedev.env + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=ppedev_compute + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6x >= 1.3.0-0,ppedev_ptp_rte_rh6x >= 1.3.0-0,ppedev_runtime_rh6x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6x >= 1.3.0-0 + +kitcomponent: + basename=ppedev_loginnode + description=ppe developer edition for login node + version=1.3.0 + release=0 + serverroles=loginnode + kitrepoid=rhels6_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_rh6x >= 1.3.0-0,ppedev_ptp_rte_rh6x >= 1.3.0-0,ppedev_runtime_rh6x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_rh6x >= 1.3.0-0 + +kitcomponent: + basename=ppedev_compute + description=ppe developer edition for compute node + version=1.3.0 + release=0 + serverroles=compute + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_sles11x >= 1.3.0-0,ppedev_ptp_rte_sles11x >= 1.3.0-0,ppedev_runtime_sles11x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_sles11x >= 1.3.0-0 + +kitcomponent: + basename=ppedev_loginnode + description=ppe developer edition for login node + version=1.3.0 + release=0 + serverroles=loginnode + kitrepoid=sles11_x86_64 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=ppedev_hpct_sles11x >= 1.3.0-0,ppedev_ptp_rte_sles11x >= 1.3.0-0,ppedev_runtime_sles11x >= 1.3.0-0,ppedev_license >= 1.3.0-0,ppedev_ptp_sles11x >= 1.3.0-0 + + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. + +kitpackage: + filename=ppedev_hpct_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppedev_license-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppedev_ptp_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppedev_ptp_rte_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppedev_runtime_rh6x-1.3.0-0.x86_64.rpm + kitrepoid=rhels6_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_redhat_6.0.0 + +kitpackage: + filename=ppedev_license-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + +kitpackage: + filename=ppedev_ptp_rte_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + + +kitpackage: + filename=ppedev_ptp_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + + +kitpackage: + filename=ppedev_hpct_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + + +kitpackage: + filename=ppedev_runtime_sles11x-1.3.0-0.x86_64.rpm + kitrepoid=sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=amd64_sles_11.0.0 + + diff --git a/xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/other_files/ppedev.env b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/other_files/ppedev.env new file mode 100644 index 000000000..524c8af4a --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/ppedev/ppedev-x86_64/other_files/ppedev.env @@ -0,0 +1 @@ +#ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes# diff --git a/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/buildkit.conf new file mode 100644 index 000000000..cdc58e78f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/buildkit.conf @@ -0,0 +1,306 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=teal + description=teal for Linux + version=1.2.0.2 + ostype=Linux +# kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,mgtnode,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-test >= 1.2.0.2 + +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-test >= 1.2.0.2 + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=teal-base-1.2.0.2-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-isnm-1.2.0.1-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-ll-1.2.0.0-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-pnsd-1.2.0.0-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-sfp-1.2.0.0-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-test-1.2.0.2-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/partial-teal-ppc64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/buildkit.conf new file mode 100644 index 000000000..30f47a85b --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/buildkit.conf @@ -0,0 +1,306 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=teal + description=teal for Linux + version=1.2.0.2 + ostype=Linux +# kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,mgtnode,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-test >= 1.2.0.2 + +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-test >= 1.2.0.2 + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=yes, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=teal-base-1.2.0.2-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-isnm-1.2.0.1-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-ll-1.2.0.0-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-pnsd-1.2.0.0-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-sfp-1.2.0.0-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + + +kitpackage: + filename=teal-test-1.2.0.2-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=yes + diff --git a/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/partial-teal-x86_64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/buildkit.conf b/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/buildkit.conf new file mode 100644 index 000000000..c3a11b39b --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/buildkit.conf @@ -0,0 +1,306 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=teal + description=teal for Linux + version=1.2.0.2 + ostype=Linux +# kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 ppc64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., ppc64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_ppc64 + osbasename=rhels + osmajorversion=6 + osarch=ppc64 + +kitrepo: + kitrepoid=sles11_ppc64 + osbasename=sles + osmajorversion=11 + osarch=ppc64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,mgtnode,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_ppc64 + kitpkgdeps=teal-test >= 1.2.0.2 + +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_ppc64 + kitpkgdeps=teal-test >= 1.2.0.2 + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=teal-base-1.2.0.2-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-isnm-1.2.0.1-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-ll-1.2.0.0-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-pnsd-1.2.0.0-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-sfp-1.2.0.0-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-test-1.2.0.2-1.ppc64.rpm + kitrepoid=rhels6_ppc64,sles11_ppc64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= diff --git a/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/teal-ppc64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/buildkit.conf b/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/buildkit.conf new file mode 100644 index 000000000..75807ca61 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/buildkit.conf @@ -0,0 +1,306 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=teal + description=teal for Linux + version=1.2.0.2 + ostype=Linux +# kitdeployparams= + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6_x86_64 + osbasename=rhels + osmajorversion=6 + osarch=x86_64 + +kitrepo: + kitrepoid=sles11_x86_64 + osbasename=sles + osmajorversion=11 + osarch=x86_64 + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,mgtnode,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=rhels6_x86_64 + kitpkgdeps=teal-test >= 1.2.0.2 + +kitcomponent: + basename=teal-base + description=teal for management nodes + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-base >= 1.2.0.2 + +kitcomponent: + basename=teal-isnm + description=teal for isnm + version=1.2.0.1 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.1 + +kitcomponent: + basename=teal-ll + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-isnm >= 1.2.0.0 + +kitcomponent: + basename=teal-pnsd + description=teal for pnsd + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-pnsd >= 1.2.0.0 + +kitcomponent: + basename=teal-sfp + description=teal for sfp + version=1.2.0.0 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-sfp >= 1.2.0.0 + +kitcomponent: + basename=teal-test + description=teal test + version=1.2.0.2 + release=1 + serverroles=mgtnode + kitrepoid=sles11_x86_64 + kitpkgdeps=teal-test >= 1.2.0.2 + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=teal-base-1.2.0.2-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-isnm-1.2.0.1-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-ll-1.2.0.0-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-pnsd-1.2.0.0-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-sfp-1.2.0.0-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= + +kitpackage: + filename=teal-test-1.2.0.2-1.x86_64.rpm + kitrepoid=rhels6_x86_64,sles11_x86_64 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir= diff --git a/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/teal/teal-x86_64/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/template/buildkit.conf b/xCAT-server/share/xcat/kit_build/template/buildkit.conf new file mode 100644 index 000000000..55d29e4c3 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/buildkit.conf @@ -0,0 +1,204 @@ +# Kit Build File +# +# This file was initially auto-generated by the buildkit CLI command. +# To create a new kit, the user should modify this file accordingly. +# Refer to the buildkit manpage for further details. +# + +# kit: This section defines general info for the Kit. +# There must be exactly one kit section in a kit build file. +# +# kit attributes: +# basename (mandatory) Kit base name. e.g., kit-lsf +# description (optional) Kit description. +# version (mandatory) Kit version. e.g., 1.0 +# ostype (mandatory) Kit OS type. Must be Linux. +# AIX is currently not supported. +# isinternal (optional) PCM use only. +# Indicate if Kit is for internal use. +# Use 1 for yes, 0 for no. Default: 0 +# kitdeployparams (optional) Filename containing a list of kit deployment +# parameters, relative to +# /other_files +kit: + basename=template + description=description for template + version=1.0 + ostype=Linux + kitdeployparams=sample/kitdeployparams.lst + + +# kitrepo: This section defines a Kit Package Repository. +# There must be at least one kitrepo section in a kit build file. +# If you want to support multiple OSes, you should create a separate +# repo for each OS. Also, no two repos can be defined with the same +# OS name, major/minor version and arch. For example, you cannot have +# two repos for RHEL 6.2 x86_64 in the same kit. +# +# kitrepo attributes: +# kitrepoid (mandatory) Kit package repository ID. +# Must be unique within this file. +# osbasename (mandatory) OS distro base name. e.g., rhels. +# osmajorversion (mandatory) OS major version. e.g., 6 +# osminorversion (optional) OS minor version. +# osarch (mandatory) OS architecture. e.g., x86_64 +# compat_osbasenames (optional) Comma-separated list of compatible +# OS distro base names. e.g., centos + +kitrepo: + kitrepoid=rhels6.3 + osbasename=rhels + osmajorversion=6 + osminorversion=3 + osarch=x86_64 + + #compat_osbasenames= + + +# kitcomponent: This section defines one Kit Component. +# There can be zero or more kitcomponent sections. +# If you want to build a component which supports multiple OSes, +# you should create one kitcomponent section for each OS. +# Also, no two components in a kit can be defined with the same +# base name. +# You can define multiple kit components with the same base name +# only if each kit component using this base name meets these +# requirements: +# - Each kit component must be defined with the same version +# and release number +# - Each kit component must be defined with a unique kitrepoid + +# +# kitcomponent attributes: +# basename (mandatory) Kit component base name +# description (optional) Kit component description +# version (mandatory) Kit component version +# release (mandatory) Kit component release +# serverroles (mandatory) Comma-separated list of servers that this +# component can install on. Valid values: +# mgtnode,servicenode,compute,loginnode,storagenode +# kitrepoid (mandatory) The ID of the kit package repository this +# component belongs to +# kitcompdeps (optional) Comma-separated list of kit component +# dependencies. These kit components can be included in +# this kit or in other kits. +# ospkgdeps (optional) Comma-separated list of OS package dependencies +# These packages must be shipped with the OS distro. +# kitpkgdeps (optional) Comma-separated list of kit package names that +# will be listed as "REQUIRES" when building this kit +# component. Each package must be defined in a separate +# kitpackage section. Each package must be in the same +# kitrepo as this kit component. +# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET! +# Comma-separated list of non-native package +# paths that will be included as files in this kit +# component. All filenames are relative to +# /source_packages +# Kit component deployment scripts must be specified +# to manage these files. +# driverpacks (optional) Comma-separated list of driver package filenames +# Each driverpack must be defined in a separate kitpackage +# section. +# exlist (optional) Exclude list file for stateless image, relative +# to /other_files +# Kit component deployment scripts (optional) Each attribute specifies +# script path relative to /scripts +# Script attributes: +# preinstall, postinstall, preuninstall, postuninstall, +# preupgrade, postupgrade, postbootscripts +kitcomponent: + basename=template_compute + description=description for component template_compute + version=1.0 + release=1 + serverroles=compute + kitrepoid=rhels6.3 + #kitcompdeps= + #ospkgdeps= + kitpkgdeps=pkg1 + #kitpkgdeps=pkg1,pkg2,pkg2,pkg4 + #non_native_pkgs= + #driverpacks= + exlist=sample/exclude.lst + preinstall=sample/pre.sh + postinstall=sample/post.sh + preuninstall=sample/preun.sh + postuninstall=sample/postun.sh + preupgrade=sample/preup.sh + postupgrade=sample/postup.sh + postbootscripts=sample/postboot.sh + + +# kitpackage: This section defines one Kit Package, and how to build it. +# There can be zero or more kitpackage sections. +# All filenames should be relative paths to +# /source_packages +# If you want to build a package which can run on multiple OSes, +# you have two options: +# 1. Build a separate package for each OS you want to support. +# For this option, you need to define one kitpackage section +# per supported OS. +# 2. Build one package that can run on multiple OSes. +# If you are building an RPM package, you are responsible for +# creating an RPM spec file that can run on multiple OSes. +# For this option, you need to define one kitpackage section +# which contains multiple kitrepoid lines. +# +# kitpackage attributes: +# filename (mandatory) Package filename +# kitrepoid (mandatory) The repo(s) this package belongs to. +# If multiple repos are defined, the package will be built for +# the first repo only. For the other repos, a symlink is created +# to the package built for the first repo. +# Package build methods (optional) +# Define how to build the packages. +# If you don't specify a build method, the default behavior is +# to assume the package is pre-built under +# /source_packages +# All files in this section are relative to +# /source_packages +# There are four methods to build packages. +# 1. Use pre-built RPM package +# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no') +# Indicates whether the RPM package will be added to the +# the kit tar file now as part of the kit build process, +# or whether the customer will need to separately +# obtain the RPM pacakage and add it to the kit tar file +# using 'buildkit addpkgs' +# rpm_prebuiltdir: If isexternalpkg=no, path to directory +# containing pre-built RPM package +# 2. Build RPM from spec + src dir +# rpm_spec: Path to spec file. +# rpm_srcdir: Path to source directory. +# 3. Build RPM from spec + src tarball +# rpm_spec: Path to spec file. +# rpm_srctarball: Path to source tarball. +# 4. Build RPM from source RPM +# rpm_srpm: Path to source RPM package. +kitpackage: + filename=pkg1-1-1.noarch.rpm + kitrepoid=rhels6.3 + # Method 1: Use pre-built RPM package + isexternalpkg=no + rpm_prebuiltdir=sample/pkg1 + +#kitpackage: +# filename=pkg2-1-1.noarch.rpm +# kitrepoid=rhels6.3 +# # Method 2: Build RPM from spec + src dir +# rpm_spec=sample/pkg2/pkg2.spec +# rpm_srcdir=sample/pkg2/pkg2 +# +#kitpackage: +# filename=pkg3-1-1.noarch.rpm +# kitrepoid=rhels6.3 +# # Method 3: Build RPM from spec + src tarball +# rpm_spec=sample/pkg3/pkg3.spec +# rpm_srctarball=sample/pkg3/pkg3.tar.gz +# +#kitpackage: +# filename=pkg4-1-1.noarch.rpm +# kitrepoid=rhels6.3 +# # Method 4: Build RPM from source RPM +# rpm_srpm=sample/pkg4/pkg4-1-1.src.rpm +# diff --git a/xCAT-server/share/xcat/kit_build/template/other_files/sample/exclude.lst b/xCAT-server/share/xcat/kit_build/template/other_files/sample/exclude.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/template/other_files/sample/kitdeployparams.lst b/xCAT-server/share/xcat/kit_build/template/other_files/sample/kitdeployparams.lst new file mode 100644 index 000000000..e69de29bb diff --git a/xCAT-server/share/xcat/kit_build/template/plugins/sample/imageprofile.pm b/xCAT-server/share/xcat/kit_build/template/plugins/sample/imageprofile.pm new file mode 100644 index 000000000..f42b70e7f --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/plugins/sample/imageprofile.pm @@ -0,0 +1,175 @@ +package xCAT_plugin::<<>>_imageprofile; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Image Profile Kit Plugin + This plugin contains commands to run custom actions + during image profile operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitimagevalidatecomps => '<<>>_imageprofile', + kitimageimport => '<<>>_imageprofile', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # This kit plugin is passed the name of an image profile. + # We need to determine which kits is used by this + # image profile to decide if this plugin should run or not. + + my $imgprofilename = $request->{arg}->[0]; + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Name of command and node list + my $command = $request->{command}->[0]; + my $args = $request->{arg}; + + if($command eq 'kitimagevalidatecomps') { + kitimagevalidatecomps($callback, $args); + } + elsif ($command eq 'kitimageimport') { + kitimageimport($callback, $args); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitimagevalidatecomps + + This command is called to validate new changes to an + image profile's kit component list before the changes + are committed. + +=cut + +#------------------------------------------------------- + +sub kitimagevalidatecomps { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + my $newcomplist = $args->[1]; + my @newcomplist = (); + if (defined($newcomplist)) { + @newcomplist = split(/,/, $newcomplist); + } + my $newosdistro = $args->[2]; + my $newosdistroupdate = $args->[3]; + + $rsp->{data}->[0] = "Running kitimagevalidatecomps"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitimageimport + + This command is called after changes to an image profile + have been committed. + +=cut + +#------------------------------------------------------- + +sub kitimageimport { + my $callback = shift; + my $args = shift; + my $rsp; + + # Parameters + my $imgprofilename = $args->[0]; + + $rsp->{data}->[0] = "Running kitimageimport"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + diff --git a/xCAT-server/share/xcat/kit_build/template/plugins/sample/nodemgmt.pm b/xCAT-server/share/xcat/kit_build/template/plugins/sample/nodemgmt.pm new file mode 100644 index 000000000..1eb766eb7 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/plugins/sample/nodemgmt.pm @@ -0,0 +1,251 @@ +package xCAT_plugin::<<>>_nodemgmt; + +use strict; +use warnings; + +require xCAT::Utils; +require xCAT::Table; +require xCAT::KitPluginUtils; + +# buildkit Processing +# In order to avoid collisions with other plugins, the package +# name for this plugin must contain the full kit name. +# The buildkit buildtar command will copy this file from your plugins +# directory to the the kit build directory, renaming the file with the +# correct kit name. All strings in this file of the form +# <<>> +# will be replaced with the full kit name. In order for buildkit to +# correctly edit this file, do not remove these strings. + +# Global Variables + +# This is the full name of the kit which this plugin belongs +# to. The kit name is used by some code in process_request() +# to determine if the plugin should run. When you are testing +# your plugin the kit name should be set to "TESTMODE" to +# bypass the plugin check in process_request(). + +our ($PLUGIN_KITNAME); +#$PLUGIN_KITNAME = "TESTMODE"; +$PLUGIN_KITNAME = "<<>>"; + + +#------------------------------------------------------- + +=head1 + + Node Management Kit Plugin + This plugin contains commands to run custom actions + during node management operations. + +=cut + +#------------------------------------------------------- + + +#------------------------------------------------------- + +=head3 handled_commands + + Return list of kit plugin commands handled by this plugin + +=cut + +#------------------------------------------------------- + +sub handled_commands { + return { + kitnodeadd => '<<>>_nodemgmt', + kitnoderemove => '<<>>_nodemgmt', + kitnodeupdate => '<<>>_nodemgmt', + kitnoderefresh => '<<>>_nodemgmt', + kitnodefinished => '<<>>_nodemgmt', + }; +} + + +#------------------------------------------------------- + +=head3 process_request + + Process the kit plugin command. + +=cut + +#------------------------------------------------------- + +sub process_request { + my $request = shift; + my $callback = shift; + + # Name of command and node list + my $command = $request->{command}->[0]; + my $nodes = $request->{node}; + + # This kit plugin is passed a list of node names. + # We need to determine which kits are used by these + # nodes to decide if this plugin should run or not. + + my $kitdata = $request->{kitdata}; + if (! defined($kitdata)) { + $kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes); + $request->{kitdata} = $kitdata; + } + + if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) { + return; + } + + # Get the nodes using this plugin's kit + $nodes = $kitdata->{$PLUGIN_KITNAME}; + + + if($command eq 'kitnodeadd') { + kitnodeadd($callback, $nodes); + } + elsif ($command eq 'kitnoderemove') { + kitnoderemove($callback, $nodes); + } + elsif ($command eq 'kitnodeupdate') { + kitnodeupdate($callback, $nodes); + } + elsif ($command eq 'kitnoderefresh') { + kitnoderefresh($callback, $nodes); + } + elsif ($command eq 'kitnodefinished') { + kitnodefinished($callback); + + } else { + my $rsp; + $rsp->{data}->[0] = "Command is not supported"; + xCAT::MsgUtils->message("E", $rsp, $callback); + } +} + + +#------------------------------------------------------- + +=head3 kitnodeadd + + This command is called when one or more nodes are added + to the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnodeadd { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeadd"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderemove + + This command is called when one or more nodes are + removed from the cluster. + +=cut + +#------------------------------------------------------- + +sub kitnoderemove { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderemove"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodeupdate + + This command is called when the configuration of one + or more nodes are updated. + +=cut + +#------------------------------------------------------- + +sub kitnodeupdate { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnodeupdate"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnoderefresh + + This command is called when node-related configuration + files are updated. + +=cut + +#------------------------------------------------------- + +sub kitnoderefresh { + my $callback = shift; + my $rsp; + + # Parameters + my $nodes = shift; + + $rsp->{data}->[0] = "Running kitnoderefresh"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + + +#------------------------------------------------------- + +=head3 kitnodefinished + + This command is called at the end of a node management + operation. + +=cut + +#------------------------------------------------------- + +sub kitnodefinished { + my $callback = shift; + my $rsp; + + $rsp->{data}->[0] = "Running kitnodefinished"; + xCAT::MsgUtils->message("I", $rsp, $callback); + + # TODO + # ... ADD YOUR CODE HERE +} + diff --git a/xCAT-server/share/xcat/kit_build/template/scripts/sample/post.sh b/xCAT-server/share/xcat/kit_build/template/scripts/sample/post.sh new file mode 100644 index 000000000..2fa3d84e1 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/scripts/sample/post.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 post script" + diff --git a/xCAT-server/share/xcat/kit_build/template/scripts/sample/postboot.sh b/xCAT-server/share/xcat/kit_build/template/scripts/sample/postboot.sh new file mode 100644 index 000000000..abbcb3e56 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/scripts/sample/postboot.sh @@ -0,0 +1,3 @@ +#!/bin/sh +echo "running sample-comp1 postboot script" + diff --git a/xCAT-server/share/xcat/kit_build/template/scripts/sample/postun.sh b/xCAT-server/share/xcat/kit_build/template/scripts/sample/postun.sh new file mode 100644 index 000000000..a5596e931 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/scripts/sample/postun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postun script" + diff --git a/xCAT-server/share/xcat/kit_build/template/scripts/sample/postup.sh b/xCAT-server/share/xcat/kit_build/template/scripts/sample/postup.sh new file mode 100644 index 000000000..a4ad3c500 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/scripts/sample/postup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 postup script" + diff --git a/xCAT-server/share/xcat/kit_build/template/scripts/sample/pre.sh b/xCAT-server/share/xcat/kit_build/template/scripts/sample/pre.sh new file mode 100644 index 000000000..36a88c970 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/scripts/sample/pre.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 pre script" + diff --git a/xCAT-server/share/xcat/kit_build/template/scripts/sample/preun.sh b/xCAT-server/share/xcat/kit_build/template/scripts/sample/preun.sh new file mode 100644 index 000000000..e94c3aa8e --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/scripts/sample/preun.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preun script" + diff --git a/xCAT-server/share/xcat/kit_build/template/scripts/sample/preup.sh b/xCAT-server/share/xcat/kit_build/template/scripts/sample/preup.sh new file mode 100644 index 000000000..bf2248496 --- /dev/null +++ b/xCAT-server/share/xcat/kit_build/template/scripts/sample/preup.sh @@ -0,0 +1,3 @@ + +echo "running sample-comp1 preup script" + diff --git a/xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg1/pkg1-1-1.noarch.rpm b/xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg1/pkg1-1-1.noarch.rpm new file mode 100644 index 0000000000000000000000000000000000000000..8bffe202d515026e040e8941ae8fa8ce222e4d62 GIT binary patch literal 3212 zcmbuB32YQq7{}jsx22R~OTbtPDPzR|%HG$kZKVgj0A;lVQ2{$U^QN7!mpi+)tzfJu zl+;jyg%|>w)PqxlgeEGQG%7;CgD9ZI6N?p)qJn7&k=E~j}P=lO5+1WI~%S(Vjjy$34dO%)wU9RA$eH%{x=J+v)=dN0&bP-jC;Cqy?EGzlse z@YSCNH9(!o_#7zuTcCo!{x?vx=R?&=)aszrM(uVhFWY&KOdXWBIy_W%xkb_DvRj=z z?-nKSg)%0(YGre*Z^iFdzUWk3n_ro^8bYlDgO*c&fB$Z1Lmz|;$$J*0R}Hs7F^{B0 zpy-1!lc8c6$Q#Fz!1xR(GUkrv_cG%?#;-B%XS^%UmDJ1O43wjQ*9NFcw1wDBAs?`20jr zv^O%&jI#mf0qxU4A--V}D8|oYd^=;@lW3p8822ACzMtry&)CDbgmD4mQc%dpPzj3t zl`&qH!V$`;RK%FsDb#;W1lxa&5DO2+kd>QCBcw(LV_ZLv5r+aXhGjDH zpku+S-I0;JFy0V1TqE2vBrC4i))>!;^n&h&R|~rF*8o3s8!Wiy-sc*3#ueKdpMZOv zL=3lDpCCOejz~B z8HCxqLY+S(Xa==RsG;5nm6h77=7lt(!fQaK*)&Xp5)Fz9K8(d~vX~t3J>)Q1;EH6| zh&NeAOlTm{f4=OT)$X)-Y`oinCpJljL61- zw5)l#;~uO0sibjA`pF+Vb1F@(txcns>@js5?>pXSU(}wEPWYAl(X5O^`sJ=nUGpW| zQ{Vma@oIf! zF+Z))P~OyZ$liM4g{eEkoKFD8!FC~9=G9dp1Ci(m6+E01mHGIH@wXgH%@}58Y`Zq>N{%YZU zJoV@K`@D&%?a0TUe|tNS*t7cA3$HO-|9aa0i(CCW)PD-0{`FY@XaIjE)PGesG5-NR zI{#T;|ICHM`7ebr|Iqzq5@C(m{%?wh{Iz37|4(6+%SE)Ms_*Kyq3}JZ`vJ#600000 V00000004mBbp@$}BI*Dr008!Zj{X1u literal 0 HcmV?d00001 diff --git a/xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg4/pkg4-1-1.src.rpm b/xCAT-server/share/xcat/kit_build/template/source_packages/sample/pkg4/pkg4-1-1.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..8833a5c555a31f164a1a6bdd3ca3bd77cbf322fd GIT binary patch literal 2516 zcmbW3d010d8pdw`F%?imP^eNu1%xq#tdIZ#ia?O1SP&_jWVwMrLP8QSP+FiAtbmGZ z>k6$%E!05~RB&MtAIk)9H>P z8ja3p0WTQDYpx~X#@5|xTB%)b*_)iu)nMv+kXWc`et!NuxCU!r*gJKDItbn1mOBVg z2jQPUp+^XU2m+2j>W2H!LOcuDtOpdX*NzzW2{6G3F??=-pJ0r58OpCg z4EqTEHi%7tLO&I;DPlHI&_5kBpwRD%_*N)gE5&M{qo1ul%^sW9J70VGeELQcWFg8bj1jdHm}Ea0icvP7jr zaH>*;OBafxsCWuWY#JsJCnl@0L>W&Zhy(L2as=hB%qqz$fwKqY2<7%kgv zATGVQGi9Ai#;38Oi@5oAepzXpKQn&QS2i{t^(DILmWI|Vi`3_v40lhFc60X_oHfm^ z_Iu#M7_HQ+dZ@M#wQiW4Ngs4sw<}+htGtVlmUfLuvI{T7tZeC(~pG+p- z8lk54?C)KC;9B9}MPf@##w4ldH1B$LNiZY)V5tw?pSY-oM_&A}G=bZFPT!-}wn*x8L7y35Dv3n}F$JiYwiC*k4CnR{z zaBZu~@Zw*Czjw|JSsa(8zpK`$CUb(l_O40ly{3qxEhjA%?)$QwRqc1o?fccNe4+ib z_?5PmlUL`j z@jCRNantYmGk?;5o$;;Z=jR$fv2X6pByvrD{5UJEyCJ(SuV%U{W|?hXLeGPAziDTq z@d+ih^XZM1$0n*TQ|$7(RF5s=2cNC*jlWy%w<91>nP71xU302u-YYu&^8D!=cQkKr zPi9P4Ucv|M=Ewgvl`WeKerR6%vSaq}NW-47&tkLhPmZ>@+x|vh|KsuL{^1pE*K-Dj zd~R&0GgK?$Cc-}&;P&kf-+a|=K6)g6Tz|)>Pu|>3{v`$>^a6fSFLf`AU zhklpc91{&n974O6I?Np?dty7Gxz*JX`FT=6@};znolhzP-c}5{A2$tiy(X_p_>fFF zAShGcSi5RXqD`?q9czPH&kXSlbag82Z9@{rB6h ey0mpx76vAduS*MdD{8wvYhm8sJXH_=ZTt?aGT|Qp literal 0 HcmV?d00001