mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-05-30 01:26:38 +00:00
commit
812088b6d9
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,4 @@
|
||||
# ignore the documentation build files
|
||||
docs/build
|
||||
# Ignore the temporary file for creating the Release version
|
||||
Release.save*
|
||||
|
24
README.rst
24
README.rst
@ -8,7 +8,7 @@ Documentation
|
||||
|
||||
xCAT documentation is available at: http://xcat-docs.readthedocs.io/en/latest/
|
||||
|
||||
|docs_latest| |docs_2123| |docs_2122| |docs_212| |docs_211|
|
||||
|docs_latest| |docs_2131| |docs_2130| |docs_212| |docs_211|
|
||||
|
||||
Open Source License
|
||||
-------------------
|
||||
@ -22,21 +22,21 @@ Developers
|
||||
Developers and prospective contributors are encouraged to read the `Developers Guide <http://xcat-docs.readthedocs.io/en/latest/developers/>`_
|
||||
In particular the `GitHub <http://xcat-docs.readthedocs.io/en/latest/developers/github/>`_ related subsection.
|
||||
|
||||
.. |docs_2123| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.12.3
|
||||
:alt: 2.12.3 documentation status
|
||||
.. |docs_2131| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.13.1
|
||||
:alt: 2.13.1 documentation status
|
||||
:scale: 100%
|
||||
:target: http://xcat-docs.readthedocs.io/en/2.12.3/
|
||||
|
||||
.. |docs_2122| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.12.2
|
||||
:alt: 2.12.2 documentation status
|
||||
:target: http://xcat-docs.readthedocs.io/en/2.13.1/
|
||||
|
||||
.. |docs_2130| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.13.0
|
||||
:alt: 2.13.0 documentation status
|
||||
:scale: 100%
|
||||
:target: http://xcat-docs.readthedocs.io/en/2.12.2/
|
||||
:target: http://xcat-docs.readthedocs.io/en/2.13.0/
|
||||
|
||||
.. |docs_212| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.12.0
|
||||
:alt: 2.12.0 documentation status
|
||||
.. |docs_212| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.12
|
||||
:alt: 2.12 documentation status
|
||||
:scale: 100%
|
||||
:target: http://xcat-docs.readthedocs.io/en/2.12.0/
|
||||
|
||||
:target: http://xcat-docs.readthedocs.io/en/2.12/
|
||||
|
||||
.. |docs_211| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.11
|
||||
:alt: 2.11 documentation status
|
||||
:scale: 100%
|
||||
|
109
build-ubunturepo
109
build-ubunturepo
@ -4,7 +4,7 @@
|
||||
# Author: Leonardo Tonetto (tonetto@linux.vnet.ibm.com)
|
||||
# Revisor: Arif Ali (aali@ocf.co.uk)
|
||||
#
|
||||
#
|
||||
#
|
||||
# Getting Started:
|
||||
# - Clone the xcat-core git repository int a directory called <rel>/src/xcat-core, where <rel>
|
||||
# is the same name as the release dir it is uploaded to xcat.org (e.g devel, 2.9, 2.10)
|
||||
@ -15,21 +15,21 @@
|
||||
# PROMOTE=1 - if the attribute "PROMOTE" is specified, means an official dot release. This does not
|
||||
# actually build xcat, just uploads the most recent snap build to http://xcat.org/files/xcat/ .
|
||||
# If not specified, a snap build is assumed, which uploads to https://xcat.org/files/xcat/
|
||||
# PREGA=1 - use this option with PROMOTE=1 on a branch that already has a released dot release, but this
|
||||
# build is a GA candidate build, not to be released yet. This will result in the tarball
|
||||
# PREGA=1 - use this option with PROMOTE=1 on a branch that already has a released dot release, but this
|
||||
# build is a GA candidate build, not to be released yet. This will result in the tarball
|
||||
# being uploaded to http://xcat.org/files/xcat/repos/apt
|
||||
# (but the tarball file name will be like a released tarball, not a snap build).
|
||||
# (but the tarball file name will be like a released tarball, not a snap build).
|
||||
# When you are ready to release this build, use PROMOTE=1 without PREGA
|
||||
# BUILDALL=1 - build all rpms, whether they changed or not. Should be used for snap builds that are in
|
||||
# BUILDALL=1 - build all rpms, whether they changed or not. Should be used for snap builds that are in
|
||||
# prep for a release.
|
||||
# UP=0 or UP=1 - override the default upload behavior
|
||||
# LOG=<filename> - provide an LOG file option to redirect some output into log file
|
||||
#
|
||||
# For the dependency packages 1. All the xcat dependency deb packages should be uploaded to
|
||||
# For the dependency packages 1. All the xcat dependency deb packages should be uploaded to
|
||||
# "pokgsa/projects/x/xcat/build/ubuntu/xcat-dep/debs/" on GSA
|
||||
# 2. run ./build-ubunturepo -d
|
||||
#
|
||||
# 3. the built xcat-dep deb packages tarball can be found in "../../xcat-dep"
|
||||
# 3. the built xcat-dep deb packages tarball can be found in "../../xcat-dep"
|
||||
# related to the path of this script
|
||||
############################
|
||||
printusage()
|
||||
@ -39,10 +39,10 @@ printusage()
|
||||
echo " -d : Create the xcat-dep repo."
|
||||
}
|
||||
# For the purpose of getting the distribution name
|
||||
if [[ ! -f /etc/lsb-release ]]; then
|
||||
if [[ ! -f /etc/lsb-release ]]; then
|
||||
echo "ERROR: Could not find /etc/lsb-release, is this script executed on a Ubuntu machine?"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
. /etc/lsb-release
|
||||
|
||||
# Check the necessary packages before starting the build
|
||||
@ -84,7 +84,7 @@ do
|
||||
r) r_flag=1
|
||||
genesis_rpm_path="$OPTARG"
|
||||
;;
|
||||
?) printusage
|
||||
?) printusage
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
@ -96,6 +96,13 @@ if [ -z "$c_flag" -a -z "$d_flag" ];then
|
||||
exit 2
|
||||
fi
|
||||
|
||||
USER="xcat"
|
||||
SERVER="xcat.org"
|
||||
FILES_PATH="files"
|
||||
FRS="/var/www/${SERVER}/${FILES_PATH}"
|
||||
APT_DIR="${FRS}/xcat"
|
||||
APT_REPO_DIR="${APT_DIR}/repos/apt"
|
||||
|
||||
if [ "$c_flag" -a "$d_flag" ];then
|
||||
printusage
|
||||
exit 2
|
||||
@ -122,7 +129,7 @@ fi
|
||||
export HOME=/root
|
||||
|
||||
WGET_CMD="wget"
|
||||
if [ ! -z ${LOG} ]; then
|
||||
if [ ! -z ${LOG} ]; then
|
||||
WGET_CMD="wget -o ${LOG}"
|
||||
fi
|
||||
|
||||
@ -204,13 +211,13 @@ then
|
||||
build_string="Snap_Build"
|
||||
cur_date=`date +%Y%m%d%H%M`
|
||||
pkg_version="${ver}-${pkg_type}${cur_date}"
|
||||
|
||||
|
||||
if [ ! -d ../../$package_dir_name ];then
|
||||
mkdir -p "../../$package_dir_name"
|
||||
fi
|
||||
packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT xCATsn xCAT-test xCAT-buildkit xCAT-vlan xCAT-confluent xCAT-probe"
|
||||
target_archs=(amd64 ppc64el)
|
||||
for file in `echo $packages`
|
||||
for file in $packages
|
||||
do
|
||||
file_low=`echo $file | tr '[A-Z]' '[a-z]'`
|
||||
if [ "$file" = "xCAT" -o "$file" = "xCAT-genesis-scripts" ]; then
|
||||
@ -218,13 +225,14 @@ then
|
||||
else
|
||||
target_archs="all"
|
||||
fi
|
||||
for target_arch in `echo $target_archs`
|
||||
for target_arch in $target_archs
|
||||
do
|
||||
if grep -q $file $update_log || [ "$BUILDALL" == 1 -o "$file" = "perl-xCAT" ]; then
|
||||
rm -f ../../$package_dir_name/${file_low}_*.$target_arch.deb
|
||||
#genesis scripts package, don't remove genesis amd64 files
|
||||
#rm -f ../../$package_dir_name/${file_low}-amd64_*.deb
|
||||
cd $file
|
||||
CURDIR=$(pwd)
|
||||
dch -v $pkg_version -b -c debian/changelog $build_string
|
||||
if [ "$target_arch" = "all" ]; then
|
||||
#xcat probe use some functions shipped by xCAT, for below reasons we need to copy files to xCAT-probe directory
|
||||
@ -232,24 +240,43 @@ then
|
||||
#2 don't maintain two files for each script
|
||||
#3 symbolic link can't work during package
|
||||
if [ $file_low = "xcat-probe" ]; then
|
||||
CURDIR=$(pwd)
|
||||
mkdir -p ${CURDIR}/lib/perl/xCAT/
|
||||
cp -f ${CURDIR}/../perl-xCAT/xCAT/NetworkUtils.pm ${CURDIR}/lib/perl/xCAT/
|
||||
cp -f ${CURDIR}/../perl-xCAT/xCAT/GlobalDef.pm ${CURDIR}/lib/perl/xCAT/
|
||||
cp -f ${CURDIR}/../perl-xCAT/xCAT/ServiceNodeUtils.pm ${CURDIR}/lib/perl/xCAT/
|
||||
fi
|
||||
dpkg-buildpackage -uc -us
|
||||
CURDIR=$(pwd)
|
||||
cp ${CURDIR}/debian/control ${CURDIR}/debian/control.save.998
|
||||
# Magic string used here
|
||||
sed -i -e "s#>= 2.13-snap000000000000#= ${pkg_version}#g" ${CURDIR}/debian/control
|
||||
dpkg-buildpackage -rfakeroot -uc -us
|
||||
mv ${CURDIR}/debian/control.save.998 ${CURDIR}/debian/control
|
||||
else
|
||||
if [ "$file" = "xCAT-genesis-scripts" ]; then
|
||||
CURDIR=$(pwd)
|
||||
echo "Rename control file to build pkg: mv ${CURDIR}/debian/control-${target_arch} ${CURDIR}/debian/control"
|
||||
mv ${CURDIR}/debian/control-${target_arch} ${CURDIR}/debian/control
|
||||
cp ${CURDIR}/debian/control-${target_arch} ${CURDIR}/debian/control
|
||||
elif [ "$file" = "xCAT" ]; then
|
||||
# shipping bmcsetup and getipmi scripts as part of postscripts
|
||||
files=("bmcsetup" "getipmi")
|
||||
for f in "${files[@]}"; do
|
||||
cp ${CURDIR}/../xCAT-genesis-scripts/bin/$f ${CURDIR}/postscripts/$f
|
||||
sed -i "s/xcat.genesis.$f/$f/g" ${CURDIR}/postscripts/$f
|
||||
done
|
||||
fi
|
||||
dpkg-buildpackage -uc -us -a$target_arch
|
||||
CURDIR=$(pwd)
|
||||
cp ${CURDIR}/debian/control ${CURDIR}/debian/control.save.998
|
||||
# Magic string used here
|
||||
sed -i -e "s#>= 2.13-snap000000000000#= ${pkg_version}#g" ${CURDIR}/debian/control
|
||||
dpkg-buildpackage -rfakeroot -uc -us -a$target_arch
|
||||
mv ${CURDIR}/debian/control.save.998 ${CURDIR}/debian/control
|
||||
if [ "$file" = "xCAT-genesis-scripts" ]; then
|
||||
CURDIR=$(pwd)
|
||||
echo "Move control file back: mv ${CURDIR}/debian/control ${CURDIR}/debian/control-${target_arch}"
|
||||
mv ${CURDIR}/debian/control ${CURDIR}/debian/control-${target_arch}
|
||||
rm ${CURDIR}/debian/control
|
||||
elif [ "$file" = "xCAT" ]; then
|
||||
files=("bmcsetup" "getipmi")
|
||||
for f in "${files[@]}"; do
|
||||
rm -f ${CURDIR}/postscripts/$f
|
||||
done
|
||||
fi
|
||||
fi
|
||||
rc=$?
|
||||
@ -310,7 +337,7 @@ Label: xcat-core bazaar repository
|
||||
Codename: $dist
|
||||
Architectures: $tmp_out_arch
|
||||
Components: main
|
||||
Description: Repository automatically genereted conf
|
||||
Description: Repository automatically genereted conf
|
||||
SignWith: yes
|
||||
|
||||
__EOF__
|
||||
@ -350,12 +377,12 @@ __EOF__
|
||||
|
||||
chmod 775 mklocalrepo.sh
|
||||
|
||||
#create the xcat-core.list file
|
||||
#create the xcat-core.list file
|
||||
|
||||
cd ../
|
||||
if ! grep xcat /etc/group ; then
|
||||
groupadd xcat
|
||||
fi
|
||||
fi
|
||||
|
||||
chgrp -R root xcat-core
|
||||
chmod -R g+w xcat-core
|
||||
@ -381,7 +408,7 @@ then
|
||||
|
||||
#the path of ubuntu xcat-dep deb packages on GSA
|
||||
GSA="/gsa/pokgsa/projects/x/xcat/build/ubuntu/xcat-dep"
|
||||
|
||||
|
||||
if [ ! -d $GSA ]; then
|
||||
echo "build-ubunturepo: It appears that you do not have gsa installed to access the xcat-dep pkgs."
|
||||
exit 1;
|
||||
@ -393,10 +420,10 @@ then
|
||||
|
||||
echo "Syncing RPMs from $GSA/ to $local_dep_repo_path/../ ..."
|
||||
rsync -ilrtpu --delete $GSA/ $local_dep_repo_path/../
|
||||
if [ $? -ne 0 ]; then
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error from rsync, cannot continue!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
#clean all old files
|
||||
if [ -e $local_dep_repo_path ];then
|
||||
@ -420,7 +447,7 @@ Label: xcat-dep bazaar repository
|
||||
Codename: $dist
|
||||
Architectures: $tmp_out_arch
|
||||
Components: main
|
||||
Description: Repository automatically genereted conf
|
||||
Description: Repository automatically genereted conf
|
||||
SignWith: yes
|
||||
|
||||
__EOF__
|
||||
@ -474,6 +501,32 @@ __EOF__
|
||||
chgrp root $dep_tar_name
|
||||
chmod g+w $dep_tar_name
|
||||
|
||||
# Decide whether to upload or not (default NOT to upload)
|
||||
if [ "$UP" != "1" ]; then
|
||||
echo "Upload not specified, Done! (rerun with UP=1, to upload)"
|
||||
cd $old_pwd
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#upload the dep packages
|
||||
i=0
|
||||
echo "Uploading debs from xcat-dep to ${APT_REPO_DIR}/xcat-dep/ ..."
|
||||
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete xcat-dep $USER@${SERVER}:${APT_REPO_DIR}/
|
||||
do : ; done
|
||||
|
||||
#upload the tarball
|
||||
i=0
|
||||
echo "Uploading $dep_tar_name to ${APT_DIR}/xcat-dep/2.x_Ubuntu/ ..."
|
||||
while [ $((i+=1)) -le 5 ] && ! rsync -v --force $dep_tar_name $USER@${SERVER}:${APT_DIR}/xcat-dep/2.x_Ubuntu/
|
||||
do : ; done
|
||||
|
||||
#upload the README file
|
||||
cd debs
|
||||
i=0
|
||||
echo "Uploading README to ${APT_DIR}/xcat-dep/2.x_Ubuntu/ ..."
|
||||
while [ $((i+=1)) -le 5 ] && ! rsync -v --force README $USER@${SERVER}:${APT_DIR}/xcat-dep/2.x_Ubuntu/
|
||||
do : ; done
|
||||
|
||||
cd $old_pwd
|
||||
exit 0
|
||||
fi
|
||||
|
159
buildcore.sh
159
buildcore.sh
@ -8,7 +8,7 @@
|
||||
# - On AIX: Install openssl and openssh installp pkgs and run updtvpkg. Install from http://www.perzl.org/aix/ :
|
||||
# apr, apr-util, bash, bzip2, db4, expat, gdbm, gettext, glib2, gmp, info, libidn, neon, openssl (won't
|
||||
# conflict with the installp version - but i don't think you need this), pcre, perl-DBD-SQLite, perl-DBI,
|
||||
# popt, python, readline, rsynce, sqlite, subversion, unixODBC, zlib.
|
||||
# popt, python, readline, rsynce, sqlite, subversion, unixODBC, zlib.
|
||||
# Install wget from http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html
|
||||
# - Run this script from the xcat-core directory. It will create the other directories that are needed.
|
||||
#
|
||||
@ -24,7 +24,7 @@
|
||||
# (but the tarball file name will be like a released tarball, not a snap build). When you are ready to
|
||||
# release this build, use PROMOTE=1 without PREGA
|
||||
# BUILDALL=1 - build all rpms, whether they changed or not. Should be used for snap builds that are in prep for a release.
|
||||
# UP=0 or UP=1 - override the default upload behavior
|
||||
# UP=0 or UP=1 - override the default upload behavior
|
||||
# GITUP=<filename> - control which rpms get built by specifying a coregitup file
|
||||
# EMBED=<embedded-environment> - the environment for which a minimal version of xcat should be built, e.g. zvm or flex
|
||||
# VERBOSE=1 - to see lots of verbose output
|
||||
@ -35,14 +35,17 @@
|
||||
# The following environment variables can be modified if you need
|
||||
#
|
||||
|
||||
SCRIPT=$(readlink -f $0)
|
||||
SCRIPTPATH=`dirname $SCRIPT`
|
||||
|
||||
UPLOADUSER=litingt
|
||||
USER=xcat
|
||||
SERVER=xcat.org
|
||||
FILES_PATH="files"
|
||||
FRS=/var/www/${SERVER}/${FILES_PATH}
|
||||
FRS="/var/www/${SERVER}/${FILES_PATH}"
|
||||
RELEASE=github.com/xcat2/xcat-core/releases
|
||||
|
||||
YUMDIR=$FRS
|
||||
YUMDIR="${FRS}"
|
||||
YUMREPOURL="http://${SERVER}/${FILES_PATH}/xcat/repos/yum"
|
||||
|
||||
if [ "$1" = "-h" ] || [ "$1" = "-help" ] || [ "$1" = "--help" ]; then
|
||||
@ -71,8 +74,8 @@ ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-test xCAT-buildkit xCAT xCATsn
|
||||
ZVMBUILD="perl-xCAT xCAT-server xCAT-UI"
|
||||
ZVMLINK="xCAT-client xCAT xCATsn"
|
||||
# xCAT and xCATsn have PCM specific configuration - conserver-xcat, syslinux-xcat
|
||||
# xCAT-server has PCM specific configuration - RESTAPI(perl-JSON)
|
||||
# xCAT-client has PCM specific configuration - getxcatdocs(perl-JSON)
|
||||
# xCAT-server has PCM specific configuration - RESTAPI(perl-JSON)
|
||||
# xCAT-client has PCM specific configuration - getxcatdocs(perl-JSON)
|
||||
PCMBUILD="xCAT xCAT-server xCAT-client xCATsn"
|
||||
PCMLINK="perl-xCAT xCAT-buildkit xCAT-genesis-scripts-x86_64 xCAT-genesis-scripts-ppc64 xCAT-vlan xCAT-probe"
|
||||
# Note: for FSM, the FlexCAT rpm is built separately from gsa/git
|
||||
@ -103,7 +106,7 @@ OSNAME=$(uname)
|
||||
|
||||
if [ "$OSNAME" != "AIX" ]; then
|
||||
GSA=http://pokgsa.ibm.com/projects/x/xcat/build/linux
|
||||
|
||||
|
||||
if [ "$(id -u)" == "0" ]; then
|
||||
# Get a lock, so can not do 2 builds at once
|
||||
exec 8>/var/lock/xcatbld-$REL.lock
|
||||
@ -180,16 +183,42 @@ function setversionvars {
|
||||
VER=`cat Version`
|
||||
fi
|
||||
XCATVER=$VER
|
||||
export XCATVER
|
||||
#export XCATVER
|
||||
SHORTVER=`echo $VER|cut -d. -f 1,2`
|
||||
SHORTSHORTVER=`echo $VER|cut -d. -f 1`
|
||||
BUILD_TIME=`date`
|
||||
BUILD_MACHINE=`hostname`
|
||||
COMMIT_ID=`git rev-parse --short HEAD`
|
||||
XCAT_RELEASE="snap$(date '+%Y%m%d%H%M')"
|
||||
echo "$XCAT_RELEASE" >Release
|
||||
}
|
||||
|
||||
RELEASE_FILE="${SCRIPTPATH}/Release"
|
||||
RELEASE_FILE_SAVE="${RELEASE_FILE}.save.998"
|
||||
|
||||
if [ "$PROMOTE" != 1 ]; then # very long if statement to not do builds if we are promoting
|
||||
function internal_backup()
|
||||
{
|
||||
# Create a backup for file `Release'
|
||||
if [ ! -f "${RELEASE_FILE_SAVE}" ]
|
||||
then
|
||||
mv "${RELEASE_FILE}" "${RELEASE_FILE_SAVE}"
|
||||
cp "${RELEASE_FILE_SAVE}" "${RELEASE_FILE}"
|
||||
fi
|
||||
}
|
||||
|
||||
function internal_cleanup()
|
||||
{
|
||||
# Restore file `Release'
|
||||
if [ -f "${RELEASE_FILE_SAVE}" ]
|
||||
then
|
||||
mv "${RELEASE_FILE_SAVE}" "${RELEASE_FILE}"
|
||||
fi
|
||||
}
|
||||
|
||||
internal_backup
|
||||
trap internal_cleanup 0
|
||||
|
||||
if [ "$PROMOTE" != 1 ]; then # very long if statement to not do builds if we are promoting ### @LINE460 ###
|
||||
# we are doing a snap build
|
||||
CORE="core-snap"
|
||||
if [ "$OSNAME" = "AIX" ]; then
|
||||
@ -214,33 +243,27 @@ else
|
||||
echo "Error: Could not determine rpmbuild's root directory."
|
||||
exit 2
|
||||
fi
|
||||
#echo "source=$source"
|
||||
fi
|
||||
|
||||
#
|
||||
# If no pre-defined update file is provided, do a "git pull" to try and detect
|
||||
#
|
||||
# If no pre-defined update file is provided, do a "git pull" to try and detect
|
||||
# if anything has changed in the source directories
|
||||
#
|
||||
#
|
||||
SOMETHINGCHANGED=0
|
||||
if [ "$GIT" = "1" ]; then
|
||||
#
|
||||
# To enable local sandbox build, GITPULL is disabled by default.
|
||||
#
|
||||
# To enable local sandbox build, GITPULL is disabled by default.
|
||||
#
|
||||
if [ "$GITPULL" = "1" ] || [ ${PWD} == *"autobuild"* ]; then
|
||||
# TODO: This is really not necessary since the autobuild scripts
|
||||
# are building the xcat code in a new directory each time
|
||||
# Do some checking for modified files
|
||||
MODIFIED_FILES=`git ls-files --modified | tr '\n' ', '`
|
||||
if [ $MODIFIED_FILES ]; then
|
||||
echo "The following files have been modified in the local repository: $MODIFIED_FILES..."
|
||||
echo "Not a clean build, aborting..."
|
||||
exit 3
|
||||
echo "WARNING: The following files have been modified in the local repository: $MODIFIED_FILES..."
|
||||
fi
|
||||
# check if there's any modifications to git current repo
|
||||
# Do some checking for untracked files
|
||||
UNTRACKED_FILES=`git ls-files --others | tr '\n' ', '`
|
||||
if [ -n "$UNTRACKED_FILES" ]; then
|
||||
echo "The following files are not tracked in git: $UNTRACKED_FILES..."
|
||||
echo "Not a clean build, aborting..."
|
||||
exit 3
|
||||
echo "WARNING: The following files are not tracked in git: $UNTRACKED_FILES..."
|
||||
fi
|
||||
if [ -z "$GITUP" ]; then
|
||||
if [ ! -z "$COMMITID" ]; then
|
||||
@ -339,7 +362,7 @@ if [ "$OSNAME" != "AIX" ]; then
|
||||
fi
|
||||
|
||||
# Build the xCAT and xCATsn rpms for all platforms
|
||||
for rpmname in xCAT xCATsn; do
|
||||
for rpmname in xCAT xCATsn; do
|
||||
if [[ " $EMBEDBUILD " != *\ $rpmname\ * ]]; then continue; fi
|
||||
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # used to be: if $GREP -E "^[UAD] +$rpmname/" $GITUP; then
|
||||
UPLOAD=1
|
||||
@ -402,48 +425,49 @@ fi
|
||||
|
||||
# Prepare the RPMs for pkging and upload
|
||||
WGET_CMD="wget"
|
||||
if [ ! -z ${LOG} ]; then
|
||||
if [ ! -z ${LOG} ]; then
|
||||
WGET_CMD="wget -o ${LOG}"
|
||||
fi
|
||||
|
||||
# get gpg keys in place
|
||||
if [ "$OSNAME" != "AIX" ]; then
|
||||
if [ -z "$RPMSIGN" -o "$RPMSIGN" == "1" ]; then
|
||||
mkdir -p $HOME/.gnupg
|
||||
for i in pubring.gpg secring.gpg trustdb.gpg; do
|
||||
if [ ! -f $HOME/.gnupg/$i ] || [ `wc -c $HOME/.gnupg/$i|cut -f 1 -d' '` == 0 ]; then
|
||||
rm -f $HOME/.gnupg/$i
|
||||
${WGET_CMD} -P $HOME/.gnupg $GSA/keys/$i
|
||||
chmod 600 $HOME/.gnupg/$i
|
||||
mkdir -p $HOME/.gnupg
|
||||
for i in pubring.gpg secring.gpg trustdb.gpg; do
|
||||
if [ ! -f $HOME/.gnupg/$i ] ||
|
||||
[ `wc -c $HOME/.gnupg/$i|cut -f 1 -d' '` == 0 ]; then
|
||||
rm -f $HOME/.gnupg/$i
|
||||
${WGET_CMD} -P $HOME/.gnupg $GSA/keys/$i
|
||||
chmod 600 $HOME/.gnupg/$i
|
||||
fi
|
||||
done
|
||||
# tell rpm to use gpg to sign
|
||||
MACROS=$HOME/.rpmmacros
|
||||
if ! $GREP '%_signature gpg' $MACROS 2>/dev/null; then
|
||||
echo '%_signature gpg' >> $MACROS
|
||||
fi
|
||||
done
|
||||
# tell rpm to use gpg to sign
|
||||
MACROS=$HOME/.rpmmacros
|
||||
if ! $GREP '%_signature gpg' $MACROS 2>/dev/null; then
|
||||
echo '%_signature gpg' >> $MACROS
|
||||
if ! $GREP '%_gpg_name' $MACROS 2>/dev/null; then
|
||||
echo '%_gpg_name xCAT Security Key' >> $MACROS
|
||||
fi
|
||||
echo "Signing RPMs..."
|
||||
build-utils/rpmsign.exp `find $DESTDIR -type f -name '*.rpm'` | grep -v -E '(already contains identical signature|was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
|
||||
build-utils/rpmsign.exp $SRCDIR/*rpm | grep -v -E '(already contains identical signature|was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
|
||||
createrepo --checksum sha $DESTDIR # specifying checksum so the repo will work on rhel5
|
||||
createrepo --checksum sha $SRCDIR
|
||||
rm -f $SRCDIR/repodata/repomd.xml.asc
|
||||
rm -f $DESTDIR/repodata/repomd.xml.asc
|
||||
gpg -a --detach-sign $DESTDIR/repodata/repomd.xml
|
||||
gpg -a --detach-sign $SRCDIR/repodata/repomd.xml
|
||||
if [ ! -f $DESTDIR/repodata/repomd.xml.key ]; then
|
||||
${WGET_CMD} -q -P $DESTDIR/repodata $GSA/keys/repomd.xml.key
|
||||
fi
|
||||
if [ ! -f $SRCDIR/repodata/repomd.xml.key ]; then
|
||||
${WGET_CMD} -P $SRCDIR/repodata $GSA/keys/repomd.xml.key
|
||||
fi
|
||||
else
|
||||
createrepo --checksum sha $DESTDIR
|
||||
createrepo --checksum sha $SRCDIR
|
||||
fi
|
||||
if ! $GREP '%_gpg_name' $MACROS 2>/dev/null; then
|
||||
echo '%_gpg_name xCAT Security Key' >> $MACROS
|
||||
fi
|
||||
echo "Signing RPMs..."
|
||||
build-utils/rpmsign.exp `find $DESTDIR -type f -name '*.rpm'` | grep -v -E '(already contains identical signature|was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
|
||||
build-utils/rpmsign.exp $SRCDIR/*rpm | grep -v -E '(already contains identical signature|was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
|
||||
createrepo --checksum sha $DESTDIR # specifying checksum so the repo will work on rhel5
|
||||
createrepo --checksum sha $SRCDIR
|
||||
rm -f $SRCDIR/repodata/repomd.xml.asc
|
||||
rm -f $DESTDIR/repodata/repomd.xml.asc
|
||||
gpg -a --detach-sign $DESTDIR/repodata/repomd.xml
|
||||
gpg -a --detach-sign $SRCDIR/repodata/repomd.xml
|
||||
if [ ! -f $DESTDIR/repodata/repomd.xml.key ]; then
|
||||
${WGET_CMD} -q -P $DESTDIR/repodata $GSA/keys/repomd.xml.key
|
||||
fi
|
||||
if [ ! -f $SRCDIR/repodata/repomd.xml.key ]; then
|
||||
${WGET_CMD} -P $SRCDIR/repodata $GSA/keys/repomd.xml.key
|
||||
fi
|
||||
else
|
||||
createrepo --checksum sha $DESTDIR
|
||||
createrepo --checksum sha $SRCDIR
|
||||
fi
|
||||
fi
|
||||
|
||||
# set group and permissions correctly on the built rpms
|
||||
@ -455,7 +479,7 @@ chmod -R g+w $DESTDIR
|
||||
chgrp -R $SYSGRP $SRCDIR
|
||||
chmod -R g+w $SRCDIR
|
||||
|
||||
else # end of very long if-not-promote
|
||||
else # end of very long if-not-promote ### @LINE193 ###
|
||||
# we are only promoting (not building)
|
||||
setversionvars
|
||||
setbranch
|
||||
@ -490,7 +514,7 @@ EOF
|
||||
#!/bin/sh
|
||||
cd `dirname $0`
|
||||
REPOFILE=`basename xCAT-*.repo`
|
||||
if [[ $REPOFILE == "xCAT-*.repo" ]]; then
|
||||
if [[ $REPOFILE == "xCAT-*.repo" ]]; then
|
||||
echo "ERROR: For xcat-dep, please execute $0 in the correct <os>/<arch> subdirectory"
|
||||
exit 1
|
||||
fi
|
||||
@ -498,10 +522,10 @@ fi
|
||||
# default to RHEL yum, if doesn't exist try Zypper
|
||||
#
|
||||
DIRECTORY="/etc/yum.repos.d"
|
||||
if [[ ! -d ${DIRECTORY} ]]; then
|
||||
DIRECTORY="/etc/zypp/repos.d"
|
||||
if [ ! -d "$DIRECTORY" ]; then
|
||||
DIRECTORY="/etc/zypp/repos.d"
|
||||
fi
|
||||
sed -e 's|baseurl=.*|baseurl=file://'"`pwd`"'|' $REPOFILE | sed -e 's|gpgkey=.*|gpgkey=file://'"`pwd`"'/repodata/repomd.xml.key|' > ${DIRECTORY}/$REPOFILE
|
||||
sed -e 's|baseurl=.*|baseurl=file://'"`pwd`"'|' $REPOFILE | sed -e 's|gpgkey=.*|gpgkey=file://'"`pwd`"'/repodata/repomd.xml.key|' > "$DIRECTORY/$REPOFILE"
|
||||
cd -
|
||||
EOF2
|
||||
chmod 775 mklocalrepo.sh
|
||||
@ -521,6 +545,7 @@ fi
|
||||
#
|
||||
BUILDINFO=$XCATCORE/buildinfo
|
||||
echo "VERSION=$VER" > $BUILDINFO
|
||||
echo "RELEASE=$XCAT_RELEASE" >> $BUILDINFO
|
||||
echo "BUILD_TIME=$BUILD_TIME" >> $BUILDINFO
|
||||
echo "BUILD_MACHINE=$BUILD_MACHINE" >> $BUILDINFO
|
||||
echo "COMMIT_ID=$COMMIT_ID" >> $BUILDINFO
|
||||
@ -545,7 +570,7 @@ if [ -n "$UP" ] && [ "$UP" == 0 ]; then
|
||||
fi
|
||||
#else we will continue
|
||||
|
||||
# Upload the individual RPMs to xcat.org
|
||||
# Upload the individual RPMs to xcat.org
|
||||
if [ "$OSNAME" = "AIX" ]; then
|
||||
YUM=aix
|
||||
else
|
||||
@ -561,13 +586,13 @@ if [ "$REL" = "devel" -o "$PREGA" != 1 ]; then
|
||||
do : ; done
|
||||
fi
|
||||
|
||||
# Upload the individual source RPMs to xcat.org
|
||||
# Upload the individual source RPMs to xcat.org
|
||||
i=0
|
||||
echo "Uploading src RPMs from $SRCD to $YUMDIR/$YUM/$REL$EMBEDDIR/ ..."
|
||||
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete $SRCD $USER@$SERVER:$YUMDIR/$YUM/$REL$EMBEDDIR/
|
||||
do : ; done
|
||||
|
||||
# Upload the tarball to xcat.org
|
||||
# Upload the tarball to xcat.org
|
||||
if [ "$PROMOTE" = 1 -a "$REL" != "devel" -a "$PREGA" != 1 ]; then
|
||||
# upload tarball to FRS area
|
||||
i=0
|
||||
|
@ -56,7 +56,7 @@ The ``buildkit.conf`` file is a sample file that contains a description of all t
|
||||
kitlicense=ILAN <== the default kit license string is "EPL"
|
||||
kitdeployparams=pe.env <== pe.env has to define in the other_files dir.
|
||||
|
||||
**kitrepo** --- This stanza defines a Kit Package Repository. There must be at least one kitrepo stanza in a kit build file. If this kit need to support multiple OSes, user should create a separate repository for each OS. Also, no two repositories can be defined with the same OS name, major/minor version, and arch. ::
|
||||
**kitrepo** --- This stanza defines a Kit Package Repository. There must be at least one kitrepo stanza in a kit build file. If this kit need to support multiple OSes, user should create a separate repository for each OS. Also, no two repositories can be defined with the same OS name, major version, and arch. ::
|
||||
|
||||
kitrepo:
|
||||
kitrepoid=rhels6_x86_64
|
||||
@ -70,6 +70,14 @@ The ``buildkit.conf`` file is a sample file that contains a description of all t
|
||||
osmajorversion=11
|
||||
osarch=x86_64
|
||||
|
||||
minor version can be support following format: ::
|
||||
|
||||
osminorversion=2 <<-- minor version has to be exactly matched to 2
|
||||
osminorversion=>=2 <<-- minor version can be 2 or greater than 2
|
||||
osminorversion=<=2 <<-- minor version can be 2 or less than 2
|
||||
osminorversion=>2 <<-- minor version has to be greater than 2
|
||||
osminorversion=<2 <<-- minor version has to be less than 2
|
||||
|
||||
**kitcomponent** --- This stanza defines one Kit Component. A kitcomponent definition is a way of specifying a subset of the product Kit that may be installed into an xCAT osimage. A kitcomponent may or may not be dependent on other kitcomponents.If user want to build a component which supports multiple OSes, need to create one kitcomponent stanza for each OS. ::
|
||||
|
||||
kitcomponent:
|
||||
|
@ -0,0 +1,7 @@
|
||||
ONIE Compatible Bare Metal Switches
|
||||
===================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
onie_switches.rst
|
@ -0,0 +1,135 @@
|
||||
ONIE compatible bare metal switch
|
||||
=================================
|
||||
|
||||
The ONIE [1]_. compatible bare metal switches(abbreviated as "ONIE switch") from vendors such as Mellanox or Edgecore are often used as top-of-rack switches in the cluster. Usually, the switches are shipped with a Cumulus Network OS(https://cumulusnetworks.com) and a license pre-installed. In some cases, user may get whitebox switch hardware with a standalone Cumulus installer and license file. This documentation presents a typical workflow on how to setup ONIE switch from white box, then configure and manage the switch with xCAT.
|
||||
|
||||
.. [1] Open Network Install Environment: Created by Cumulus Networks, Inc. in 2012, the Open Network Install Environment (ONIE) Project is a small operating system, pre-installed as firmware on bare metal network switches, that provides an environment for automated operating system provisioning.
|
||||
|
||||
Create an ONIE switch object
|
||||
-------------------------------
|
||||
|
||||
The ONIE switch object can be created with the "onieswitch" template shipped in xCAT, the ip address and mac of the switch management ethernet port should be specified : ::
|
||||
|
||||
mkdef edgecoresw1 --template onieswitch arch=armv71 ip=192.168.5.191 mac=8C:EA:1B:12:CA:40
|
||||
|
||||
Provision the Cumulus OS on ONIE switch
|
||||
---------------------------------------
|
||||
|
||||
To provision Cumulus OS, the Cumulus installation file, a binary shipped with the switch, should be saved in a directory exported in the http server.
|
||||
|
||||
Run ``chdef`` to specify the "provmethod" attribute of the switch object to the full path of the installation file: ::
|
||||
|
||||
chdef edgecoresw1 netboot=onie provmethod="/install/custom/sw/edgecore/cumulus-linux-3.1.0-bcm-armel-1471981017.dc7e2adzfb43f6b.bin"
|
||||
|
||||
Run ``makedhcp`` to prepare the DHCP/BOOTP lease. ::
|
||||
|
||||
makedhcp -a edgecoresw1
|
||||
|
||||
The command or operation to start the provision dependes on the status of switch:
|
||||
|
||||
1. If the switch is a white box without Cumulus OS installed, simply connect the management ethernet port of the switch to xCAT management node, then power on the switch.
|
||||
|
||||
2. If a Cumulus OS has been installed on the switch, you need to login to the switch(the default user is ``cumulus`` and the password is ``CumulusLinux!``) and run a batch of commands: ::
|
||||
|
||||
sudo onie-select -i
|
||||
sudo reboot
|
||||
|
||||
If the passwordless-ssh of "root" has been enabled, the commands can be issued with: ::
|
||||
|
||||
xdsh edgecoresw1 "/usr/cumulus/bin/onie-select -i -f;reboot"
|
||||
|
||||
After reboot, the switch will enter ONIE install mode and begin the installation. The provision might take about 50 minutes.
|
||||
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
||||
Enable the passwordless ssh for "root"
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In a newly installed Cumulus OS, a default user ``cumulus`` will be created, the switch can be accessed via ssh with the default password ``CumulusLinux!``.
|
||||
|
||||
The passwordless ssh access of "root" should be enabled with the script ``/opt/xcat/share/xcat/scripts/configonie`` ::
|
||||
|
||||
/opt/xcat/share/xcat/scripts/configonie --switches edgecoresw1 --ssh
|
||||
|
||||
After the passwordless access for "root" is setup successfully, the switch can be managed with the node management commands such as ``xdsh``, ``xdcp`` and ``updatenode``, etc.
|
||||
|
||||
Licence file installation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On the newly installed switch, only the serial console and the management ethernet port are enabled. To activate the data ports, the licence file shipped with the switch should be installed: ::
|
||||
|
||||
xdcp edgecoresw1 /install/custom/sw/edgecore/licensefile.txt /tmp
|
||||
xdsh edgecoresw1 "/usr/cumulus/bin/cl-license -i /tmp/licensefile.txt"
|
||||
|
||||
To check whether the license file is installed successfully: ::
|
||||
|
||||
~: xdsh edgecoresw1 /usr/cumulus/bin/cl-license
|
||||
edgecoresw1: xxx@xx.com|xxxxxxxxxxxxxxx
|
||||
|
||||
Reboot the switch to apply the licence file: ::
|
||||
|
||||
xdsh edgecoresw1 reboot
|
||||
|
||||
Enable SNMP
|
||||
~~~~~~~~~~~
|
||||
|
||||
The snmpd in the switch is not enabled by default, xCAT ships a postscript to enable it: ::
|
||||
|
||||
updatenode edgecoresw1 -P enablesnmp
|
||||
|
||||
|
||||
Switch Discovery
|
||||
----------------
|
||||
|
||||
The ONIE switch can be scaned and discovered with ``switchdiscover`` ::
|
||||
|
||||
~: switchdiscover --range 192.168.23.1-10
|
||||
Discovering switches using nmap for 192.168.23.1-10. It may take long time...
|
||||
ip name vendor mac
|
||||
------------ ------------ ------------ ------------
|
||||
192.168.23.1 edgecoresw1 Edgecore switch 8C:EA:1B:12:CA:40
|
||||
Switch discovered: edgecoresw1
|
||||
|
||||
Once SNMP on the ONIE switch is enabled, the ONIE switch can be discovered with "snmp" method: ::
|
||||
|
||||
~: switchdiscover --range 192.168.23.1-10 -s snmp
|
||||
Discovering switches using snmpwalk for 192.168.23.1-10 ....
|
||||
ip name vendor mac
|
||||
------------ ------------ ------------ ------------
|
||||
192.168.23.1 edgecoresw1 Linux edgecoresw1 4.1.0-cl-2-iproc #1 SMP Debian 4.1.25-1+cl3u4 (2016-08-13) armv7l 8c:ea:1b:12:ca:40
|
||||
Switch discovered: edgecoresw1
|
||||
|
||||
|
||||
Switch Management
|
||||
-----------------
|
||||
|
||||
File Dispatch
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The files can be dispatched to ONIE switches with ``xdcp`` ::
|
||||
|
||||
xdcp edgecoresw1 <path of file to dispatch> <destination path of the file on switch>
|
||||
|
||||
Refer to :doc:`xdcp manpage </guides/admin-guides/references/man1/xdcp.1>` for details.
|
||||
|
||||
Remote Commands
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Commands can be run on ONIE switches remotely with ``xdsh`` ::
|
||||
|
||||
xdsh edgecoresw1 <remote commands>
|
||||
|
||||
Refer to :doc:`xdsh manpage </guides/admin-guides/references/man1/xdsh.1>` for details.
|
||||
|
||||
Run scripts remotely
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The scripts under "/install/postscripts" can be run on ONIE switches with ``updatenode -P`` ::
|
||||
|
||||
updatenode edgecoresw1 -P <script name>
|
||||
|
||||
Refer to :doc:`updatenode manpage </guides/admin-guides/references/man1/updatenode.1>` for details.
|
||||
|
||||
|
@ -8,3 +8,4 @@ Networks
|
||||
switchdiscover/index.rst
|
||||
infiniband/index.rst
|
||||
ipv6/index.rst
|
||||
edgecore_switches/index.rst
|
||||
|
@ -0,0 +1,48 @@
|
||||
.. _Using-Postinstallscript-label:
|
||||
|
||||
=========================
|
||||
Using postinstall scripts
|
||||
=========================
|
||||
While running ``genimage`` to generate diskless or statelite osimage, you may want to customize the root image after the package installation step. The ``postinstall`` attribute of the osimage definition provides a hook to run user specified script(s), in non-chroot mode, against the directory specified by ``rootimgdir`` attribute.
|
||||
|
||||
xCAT ships a default ``postinstall`` script for the diskless/statelite osimages that must be executed to ensure a successful provisioning of the OS: ::
|
||||
|
||||
lsdef -t osimage -o rhels7.3-ppc64le-netboot-compute -i postinstall
|
||||
Object name: rhels7.3-ppc64le-netboot-compute
|
||||
postinstall=/opt/xcat/share/xcat/netboot/rh/compute.rhels7.ppc64le.postinstall
|
||||
|
||||
Customizing the ``postinstall`` script, can be done by either one of the methods below:
|
||||
|
||||
* Append your own ``postinstall`` scripts ::
|
||||
|
||||
chdef -t osimage -o <osimage> -p postinstall=/install/custom/postinstall/rh7/mypostscript
|
||||
|
||||
* Create your own ``postinstall`` script based on the default ``postinstall`` script ::
|
||||
|
||||
cp /opt/xcat/share/xcat/netboot/rh/compute.rhels7.ppc64le.postinstall /install/custom/postinstall/rh7/mypostscript
|
||||
# edit /install/custom/postinstall/rh7/mypostscript
|
||||
chdef -t osimage -o <osimage> postinstall=/install/custom/postinstall/rh7/mypostscript
|
||||
|
||||
Common questions about the usage of ``postinstall`` scripts:
|
||||
------------------------------------------------------------
|
||||
|
||||
When do ``postinstall`` scripts run?
|
||||
````````````````````````````````````
|
||||
|
||||
High level flow of ``genimage`` process:
|
||||
|
||||
a) install the packages specified by ``pkglist`` into ``rootimgdir`` directory
|
||||
b) cumstomize the ``rootimgdir`` directory
|
||||
c) generate the initrd based on the ``rootimgdir`` directory
|
||||
|
||||
The ``postinstall`` scripts are executed in step b).
|
||||
|
||||
Do ``postinstall`` scripts execute in chroot mode under ``rootimgdir`` directory?
|
||||
`````````````````````````````````````````````````````````````````````````````````
|
||||
|
||||
No. Unlike postscripts and postbootscripts, the ``postinstall`` scripts are run in non-chroot environment, directly on the management node. In the postinstall scripts, all the paths of the directories and files are based on ``/`` of the managememnt node. To reference inside the ``rootimgdir``, use the ``$IMG_ROOTIMGDIR`` environment variable, exported by ``genimage``.
|
||||
|
||||
What are some of the environment variables available to my customized ``postinstall`` scripts?
|
||||
``````````````````````````````````````````````````````````````````````````````````````````````
|
||||
|
||||
Environment variables, available to be used in the ``postinstall`` scripts are listed in ``postinstall`` attribute section of :doc:`linuximage </guides/admin-guides/references/man5/linuximage.5>`
|
@ -1,91 +1,66 @@
|
||||
Configure RAID before Deploy OS
|
||||
===============================
|
||||
Configure RAID before deploying the OS
|
||||
======================================
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
This section describes how to use xCAT to deploy diskful nodes with RAID1 setup, and the procedure for RAID1 maintainence activities such as replacing a failed disk.
|
||||
xCAT provides an user interface :doc:`linuximage.partitionfile </guides/admin-guides/references/man5/linuximage.5>` to specify the customized partition script for diskful provision, and provides some default partition scripts.
|
||||
|
||||
All the examples in this section are based on three configuration scenarios:
|
||||
|
||||
#. RHEL6 on a system p machine with two SCSI disks sda and sdb
|
||||
|
||||
#. RHEL6 on a system p machine with two SAS disks and multipath configuration.
|
||||
|
||||
#. SLES 11 SP1 on a system p machine with two SCSI disks sda and sdb
|
||||
|
||||
If you are not using the configuration scenarios listed above, you may need to modify some of the steps in this documentation to make it work in your environment.
|
||||
|
||||
Deploy Diskful Nodes with RAID1 Setup on RedHat
|
||||
-----------------------------------------------
|
||||
|
||||
xCAT provides two sample kickstart template files with the RAID1 settings, ``/opt/xcat/share/xcat/install/rh/service.raid1.rhel6.ppc64.tmpl`` is for the configuration scenario **1** listed above and ``/opt/xcat/share/xcat/install/rh/service.raid1.multipath.rhel6.ppc64.tmpl`` is for the configuration scenario **2** listed above. You can customize the template file and put it under ``/install/custom/install/<platform>/`` if the default one does not match your requirements.
|
||||
xCAT provides a partition script `raid1_rh.sh <https://raw.githubusercontent.com/xcat2/xcat-extensions/master/partition/raid1_rh.sh>`_ which configures RAID1 across 2 disks on RHEL 7.x operating systems.
|
||||
|
||||
Here is the RAID1 partitioning section in ``service.raid1.rhel6.ppc64.tmpl``: ::
|
||||
In most scenarios, the sample partitioning script is sufficient to create a basic RAID1 across two disks and is provided as a sample to build upon.
|
||||
|
||||
#Full RAID 1 Sample
|
||||
part None --fstype "PPC PReP Boot" --size 8 --ondisk sda --asprimary
|
||||
part None --fstype "PPC PReP Boot" --size 8 --ondisk sdb --asprimary
|
||||
1. Obtain the partition script: ::
|
||||
|
||||
part raid.01 --size 200 --fstype ext4 --ondisk sda
|
||||
part raid.02 --size 200 --fstype ext4 --ondisk sdb
|
||||
raid /boot --level 1 --device md0 raid.01 raid.02
|
||||
mkdir -p /install/custom/partition/
|
||||
wget https://raw.githubusercontent.com/xcat2/xcat-extensions/master/partition/raid1_rh.sh \
|
||||
-O /install/custom/partition/raid1_rh.sh
|
||||
|
||||
part raid.11 --size 1024 --ondisk sda
|
||||
part raid.12 --size 1024 --ondisk sdb
|
||||
raid swap --level 1 --device md1 raid.11 raid.12
|
||||
2. Associate the partition script to the osimage: ::
|
||||
|
||||
part raid.21 --size 1 --fstype ext4 --grow --ondisk sda
|
||||
part raid.22 --size 1 --fstype ext4 --grow --ondisk sdb
|
||||
raid / --level 1 --device md2 raid.21 raid.22
|
||||
chdef -t osimage -o rhels7.3-ppc64le-install-compute \
|
||||
partitionfile="s:/install/custom/partition/raid1_rh.sh"
|
||||
|
||||
Here is the RAID1 partitioning section in ``service.raid1.multipath.rhel6.ppc64.tmpl``: ::
|
||||
3. Provision the node: ::
|
||||
|
||||
#Full RAID 1 Sample
|
||||
part None --fstype "PPC PReP Boot" --size 8 --ondisk mpatha --asprimary
|
||||
part None --fstype "PPC PReP Boot" --size 8 --ondisk mpathb --asprimary
|
||||
rinstall cn1 osimage=rhels7.3-ppc64le-install-compute
|
||||
|
||||
After the diskful nodes are up and running, you can check the RAID1 settings with the following process:
|
||||
|
||||
part raid.01 --size 200 --fstype ext4 --ondisk mpatha
|
||||
part raid.02 --size 200 --fstype ext4 --ondisk mpathb
|
||||
raid /boot --level 1 --device md0 raid.01 raid.02
|
||||
|
||||
part raid.11 --size 1024 --ondisk mpatha
|
||||
part raid.12 --size 1024 --ondisk mpathb
|
||||
raid swap --level 1 --device md1 raid.11 raid.12
|
||||
|
||||
part raid.21 --size 1 --fstype ext4 --grow --ondisk mpatha
|
||||
part raid.22 --size 1 --fstype ext4 --grow --ondisk mpathb
|
||||
raid / --level 1 --device md2 raid.21 raid.22
|
||||
|
||||
The samples above created one PReP partition, one 200MB ``/boot`` partition and one ``/`` partition on ``sda/sdb`` and ``mpatha/mpathb``. If you want to use different partitioning scheme in your cluster, modify this RAID1 section in the kickstart template file accordingly.
|
||||
|
||||
After the diskful nodes are up and running, you can check the RAID1 settings with the following commands:
|
||||
|
||||
Mount command shows the ``/dev/mdx`` devices are mounted to various file systems, the ``/dev/mdx`` indicates that the RAID is being used on this node. ::
|
||||
``mount`` command shows the ``/dev/mdx`` devices are mounted to various file systems, the ``/dev/mdx`` indicates that the RAID is being used on this node. ::
|
||||
|
||||
# mount
|
||||
/dev/md2 on / type ext4 (rw)
|
||||
proc on /proc type proc (rw)
|
||||
sysfs on /sys type sysfs (rw)
|
||||
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
|
||||
tmpfs on /dev/shm type tmpfs (rw)
|
||||
/dev/md0 on /boot type ext4 (rw)
|
||||
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
|
||||
...
|
||||
/dev/md1 on / type xfs (rw,relatime,attr2,inode64,noquota)
|
||||
/dev/md0 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
|
||||
/dev/md2 on /var type xfs (rw,relatime,attr2,inode64,noquota)
|
||||
|
||||
The file ``/proc/mdstat`` includes the RAID devices status on the system, here is an example of ``/proc/mdstat`` in the non-multipath environment: ::
|
||||
|
||||
# cat /proc/mdstat
|
||||
Personalities : [raid1]
|
||||
md2 : active raid1 sda5[0] sdb5[1]
|
||||
19706812 blocks super 1.1 [2/2] [UU]
|
||||
md2 : active raid1 sdk2[0] sdj2[1]
|
||||
1047552 blocks super 1.2 [2/2] [UU]
|
||||
resync=DELAYED
|
||||
bitmap: 1/1 pages [64KB], 65536KB chunk
|
||||
|
||||
md1 : active raid1 sda2[0] sdb2[1]
|
||||
1048568 blocks super 1.1 [2/2] [UU]
|
||||
|
||||
md0 : active raid1 sda3[0] sdb3[1]
|
||||
204788 blocks super 1.0 [2/2] [UU]
|
||||
|
||||
|
||||
md3 : active raid1 sdk3[0] sdj3[1]
|
||||
1047552 blocks super 1.2 [2/2] [UU]
|
||||
resync=DELAYED
|
||||
|
||||
md0 : active raid1 sdk5[0] sdj5[1]
|
||||
524224 blocks super 1.0 [2/2] [UU]
|
||||
bitmap: 0/1 pages [0KB], 65536KB chunk
|
||||
|
||||
md1 : active raid1 sdk6[0] sdj6[1]
|
||||
973998080 blocks super 1.2 [2/2] [UU]
|
||||
[==>..................] resync = 12.8% (125356224/973998080) finish=138.1min speed=102389K/sec
|
||||
bitmap: 1/1 pages [64KB], 65536KB chunk
|
||||
|
||||
unused devices: <none>
|
||||
|
||||
On the system with multipath configuration, the ``/proc/mdstat`` looks like: ::
|
||||
|
@ -12,15 +12,19 @@ Set attributes in the ``networks`` table
|
||||
|
||||
#. To define additional networks, use one of the following options:
|
||||
|
||||
* Use ``mkdef`` to create/update an entry into ``networks`` table. (**Recommended**)
|
||||
* [**Recommended**] Use ``mkdef`` to create/update an entry into ``networks`` table.
|
||||
|
||||
To create a network entry for 192.168.X.X/16 with a gateway of 192.168.1.254: ::
|
||||
|
||||
mkdef -t network -o net1 net=192.168.0.0 mask=255.255.0.0 gateway=192.168.1.254
|
||||
|
||||
* Use the ``tabedit`` command to modify the networks table directly in an editor: ``tabedit networks``
|
||||
* Use the ``tabedit`` command to modify the networks table directly in an editor: ::
|
||||
|
||||
* Use the ``makenetworks`` command to automatically generate a entry in the ``networks`` table
|
||||
tabedit networks
|
||||
|
||||
* Use the ``makenetworks`` command to automatically generate a entry in the ``networks`` table: ::
|
||||
|
||||
makenetworks
|
||||
|
||||
#. Verify the network statements
|
||||
|
||||
@ -31,16 +35,33 @@ Set attributes in the ``networks`` table
|
||||
Initialize DHCP services
|
||||
------------------------
|
||||
|
||||
#. Configure DHCP to listen on different network interfaces (**Optional**)
|
||||
Configure DHCP to listen on different network interfaces [**Optional**]
|
||||
|
||||
xCAT allows specifying different network intercaces thateDHCP can listen on for different nodes or node groups. If this is not needed, go to the next step. To set dhcpinterfaces ::
|
||||
The default behavior of xCAT is to configure DHCP to listen on all interfaces defined in the ``networks`` table.
|
||||
|
||||
chdef -t site dhcpinterfaces='xcatmn|eth1,eth2;service|bond0'
|
||||
The ``dhcpinterfaces`` keyword in the ``site`` table allows administrators to limit the interfaces that DHCP will listen over. If the management node has 4 interfaces, (eth0, eth1, eth2, and eth3), and you want DHCP to listen only on "eth1" and "eth3", set ``dhcpinterfaces`` using: ::
|
||||
|
||||
For more information, see ``dhcpinterfaces`` keyword in the :doc:`site </guides/admin-guides/references/man5/site.5>` table.
|
||||
chdef -t site dhcpinterfaces="eth1,eth3"
|
||||
|
||||
To set "eth1" and "eth3" on the management node and "bond0" on all nodes in the nodegroup="service", set ``dhcpinterfaces`` using: ::
|
||||
|
||||
chdef -t site dhcpinterfaces="xcatmn|eth1,eth3;service|bond0"
|
||||
|
||||
**noboot**
|
||||
``````````
|
||||
For the *IBM OpenPOWER S822LC for HPC ("Minsky")* nodes, the BMC and compute "eth0" share the left-side integrated ethernet port and compute "eth1" is the right-side integrated ethernet port. For these servers, it is recommended to use two physical cables allowing the BMC port to be dedicated and "eth1" used by the OS. When an open range is configured on the two networks, the xCAT Genesis kernel will be sent to the BMC interface and causes problems during hardware discovery. To support this scenario, on the xCAT management node, if "eth1" is connected to the BMC network and "eth3" is connected to the compute network, disable genesis boot for the BMC network by setting ``:noboot`` in ``dhcpinterfaces`` using: ::
|
||||
|
||||
chdef -t site dhcpinterfaces="eth1:noboot,eth3"
|
||||
|
||||
# run the mknb command to remove the genesis
|
||||
# configuration file for the specified network
|
||||
mknb ppc64
|
||||
|
||||
|
||||
For more information, see ``dhcpinterfaces`` keyword in the :doc:`site </guides/admin-guides/references/man5/site.5>` table.
|
||||
|
||||
|
||||
#. Create a new DHCP configuration file with the networks defined using the ``makedhcp`` command. ::
|
||||
After making any DHCP changes, create a new DHCP configuration file with the networks defined using the ``makedhcp`` command. ::
|
||||
|
||||
makedhcp -n
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
../../diskful/customize_image/pre_post_script.rst
|
@ -0,0 +1,11 @@
|
||||
Prescripts and Postscripts
|
||||
==========================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
../../../common/deployment/prepostscripts/pre_script.rst
|
||||
../../../common/deployment/prepostscripts/post_script.rst
|
||||
../../../common/deployment/prepostscripts/postinstall_script.rst
|
||||
../../../common/deployment/prepostscripts/suggestions.rst
|
||||
|
@ -0,0 +1,66 @@
|
||||
|
||||
Red Hat Virtualization (formally known as RHEV or Red Hat Enterprise Virtualization) is a virtualization solution provided by Red Hat.
|
||||
|
||||
At the time of this writing there is no RHEV-H prebuilt hypervisor image on Power LE. The method for creating a Red Hat Hypervisor on Power LE is to first install RHEL and apply the KVM support on top with the provided RPMs.
|
||||
|
||||
Obtain and download the RHEV RPM packages from the Red Hat download site.
|
||||
|
||||
* Management-Agent-Power-7
|
||||
* Power_Tools-7
|
||||
|
||||
In the following example, the RPMs are downloaded to ``/install/post/otherpkgs/rhels7.3/ppc64le/RHEV4/4.0-GA``
|
||||
|
||||
* Create a yum repository for the downloaded RPMs ::
|
||||
|
||||
createrepo /install/post/otherpkgs/rhels7.3/ppc64le/RHEV4/4.0-GA
|
||||
|
||||
* Create new osimage definition based on an existing RHEL7 osimage definition ::
|
||||
|
||||
mkdef -t osimage -o rhels7.3-ppc64le-RHEV4-install-compute \
|
||||
--template rhels7.3-ppc64le-install-compute
|
||||
|
||||
* Modify ``otherpkgdir`` attribute to point to the package directory with downloaded RPMs ::
|
||||
|
||||
chdef -t osimage rhels7.3-ppc64le-RHEV4-install-compute \
|
||||
otherpkgdir=/install/post/otherpkgs/rhels7.3/ppc64le/RHEV4/4.0-GA
|
||||
|
||||
* Create a new package list file ``/install/custom/rhels7.3/ppc64le/rhelv4.pkglist`` to include necessary packages provided from the OS. ::
|
||||
|
||||
#INCLUDE:/opt/xcat/share/xcat/install/rh/compute.rhels7.pkglist#
|
||||
libvirt
|
||||
screen
|
||||
bridge-utils
|
||||
|
||||
* Modify ``pkglist`` attribute to point to the package list file from the step above ::
|
||||
|
||||
chdef -t osimage rhels7.3-snap3-ppc64le-RHEV4-install-compute \
|
||||
pkglist=/install/custom/rhels7.3/ppc64le/rhelv4.pkglist
|
||||
|
||||
* Create a new package list file ``/install/custom/rhels7.3/ppc64le/rhev4.otherpkgs.pkglist`` to list required packages ::
|
||||
|
||||
qemu-kvm-rhev
|
||||
qemu-kvm-tools-rhev
|
||||
virt-manager-common
|
||||
virt-install
|
||||
|
||||
* Modify ``otherpkglist`` attribute to point to the package list file from the step above ::
|
||||
|
||||
chdef -t osimage rhels7.3-snap3-ppc64le-RHEV4-install-compute \
|
||||
otherpkglist=/install/custom/rhels7.3/ppc64le/rhev4.otherpkgs.pkglist
|
||||
|
||||
* The RHEV osimage should look similar to: ::
|
||||
|
||||
Object name: rhels7.3-ppc64le-RHEV4-install-compute
|
||||
imagetype=linux
|
||||
osarch=ppc64le
|
||||
osdistroname=rhels7.3-ppc64le
|
||||
osname=Linux
|
||||
osvers=rhels7.3
|
||||
otherpkgdir=/install/post/otherpkgs/rhels7.3/ppc64le/RHEV4/4.0-GA
|
||||
otherpkglist=/install/custom/rhels7.3/ppc64le/rhev4.otherpkgs.pkglist
|
||||
pkgdir=/install/rhels7.3/ppc64le
|
||||
pkglist=/install/custom/rhels7.3/ppc64le/rhelv4.pkglist
|
||||
profile=compute
|
||||
provmethod=install
|
||||
template=/opt/xcat/share/xcat/install/rh/compute.rhels7.tmpl
|
||||
|
@ -0,0 +1,87 @@
|
||||
Install and Configure Hypervisor
|
||||
================================
|
||||
|
||||
Provision Hypervisor
|
||||
--------------------
|
||||
|
||||
**[PowerKVM]**
|
||||
``````````````
|
||||
|
||||
.. include:: pKVMHypervisor.rst
|
||||
|
||||
**[RHEV]**
|
||||
``````````
|
||||
|
||||
.. include:: RHEVHypervisor.rst
|
||||
|
||||
#. Customize the hypervisor node definition to create network bridge
|
||||
|
||||
xCAT ships a postscript **xHRM** to create a network bridge on kvm host during installation/netbooting. Specify the **xHRM** with appropriate parameters in **postscripts** attibute. For example:
|
||||
|
||||
* To create a bridge named 'br0' against the installation network device specified by **installnic**: ::
|
||||
|
||||
chdef kvmhost1 -p postscripts="xHRM bridgeprereq br0"
|
||||
|
||||
* To create a bridge with default name 'default' against the installation network device specified by **installnic**: ::
|
||||
|
||||
chdef kvmhost1 -p postscripts="xHRM bridgeprereq"
|
||||
|
||||
* To create a bridge named 'br0' against the network device 'eth0': ::
|
||||
|
||||
chdef kvmhost1 -p postscripts="xHRM bridgeprereq eth0:br0"
|
||||
|
||||
**Note**: The network bridge name you use should not be the virtual bridges (vbrX) created by libvirt installation [1]_.
|
||||
|
||||
|
||||
#. Customize the hypervisor node definition to mount the shared kvm storage directory on management node **(optional)**
|
||||
|
||||
If the shared kvm storage directory on the management node has been exported, it can be mounted on PowerKVM hypervisor for virtual machines hosting.
|
||||
|
||||
An easy way to do this is to create another postscript named "mountvms" which creates a directory **/install/vms** on hypervisor and then mounts **/install/vms** from the management node, the content of "mountvms" can be: ::
|
||||
|
||||
logger -t xcat "Install: setting vms mount in fstab"
|
||||
mkdir -p /install/vms
|
||||
echo "$MASTER:/install/vms /install/vms nfs \
|
||||
rsize=8192,wsize=8192,timeo=14,intr,nfsvers=2 1 2" >> /etc/fstab
|
||||
|
||||
|
||||
Then set the file permission and specify the script in **postscripts** attribute of hypervisor node definition: ::
|
||||
|
||||
chmod 755 /install/postscripts/mountvms
|
||||
chdef kvmhost1 -p postscripts=mountvms
|
||||
|
||||
#. Provision the hypervisor node with the osimage ::
|
||||
|
||||
nodeset kvmhost1 osimage=<osimage_name>
|
||||
rpower kvmhost1 boot
|
||||
|
||||
|
||||
Create network bridge on hypervisor
|
||||
------------------------------------
|
||||
|
||||
To launch VMs, a network bridge must be created on the KVM hypervisor.
|
||||
|
||||
If the hypervisor is provisioned successfully according to the steps described above, a network bridge will be created and attached to a physical interface. This can be checked by running ``brctl show`` on the hypervisor to show the network bridge information, please make sure a network bridge has been created and configured according to the parameters passed to postscript "xHRM" ::
|
||||
|
||||
# brctl show
|
||||
bridge name bridge id STP enabled interfaces
|
||||
br0 8000.000000000000 no eth0
|
||||
|
||||
|
||||
If the network bridge is not created or configured successfully, run "xHRM" with **updatenode** on managememt node to create it manually:::
|
||||
|
||||
updatenode kvmhost1 -P "xHRM bridgeprereq eth0:br0"
|
||||
|
||||
Start libvirtd service
|
||||
----------------------
|
||||
|
||||
Verify **libvirtd** service is running: ::
|
||||
|
||||
systemctl status libvirtd
|
||||
|
||||
If service is not running, it can be started with: ::
|
||||
|
||||
systemctl start libvirtd
|
||||
|
||||
.. [1] Every standard libvirt installation provides NAT based connectivity to virtual machines out of the box using the "virtual bridge" interfaces (virbr0, virbr1, etc) Those will be created by default.
|
||||
|
@ -26,12 +26,12 @@ The xCAT based KVM solution offers users the ability to:
|
||||
* install copy on write instances of virtual machines
|
||||
* clone virtual machines
|
||||
|
||||
This section introduces the steps of management node preparation, KVM hypervisor setup and virtual machine management, and presents some typical problems and solutions on xCAT kvm support.
|
||||
This section introduces the steps of management node preparation, hypervisor setup and virtual machine management, and presents some typical problems and solutions on xCAT kvm support.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
kvmMN.rst
|
||||
powerKVM.rst
|
||||
hypervisorKVM.rst
|
||||
manage_vms.rst
|
||||
FAQ.rst
|
||||
|
@ -0,0 +1,20 @@
|
||||
|
||||
Obtain a PowerKVM ISO and create PowerKVM osimages with it: ::
|
||||
|
||||
copycds ibm-powerkvm-3.1.0.0-39.0-ppc64le-gold-201511041419.iso
|
||||
|
||||
The following PowerKVM osimage will be created ::
|
||||
|
||||
# lsdef -t osimage -o pkvm3.1-ppc64le-install-compute
|
||||
Object name: pkvm3.1-ppc64le-install-compute
|
||||
imagetype=linux
|
||||
osarch=ppc64le
|
||||
osdistroname=pkvm3.1-ppc64le
|
||||
osname=Linux
|
||||
osvers=pkvm3.1
|
||||
otherpkgdir=/install/post/otherpkgs/pkvm3.1/ppc64le
|
||||
pkgdir=/install/pkvm3.1/ppc64le
|
||||
profile=compute
|
||||
provmethod=install
|
||||
template=/opt/xcat/share/xcat/install/pkvm/compute.pkvm3.ppc64le.tmpl
|
||||
|
@ -1,92 +0,0 @@
|
||||
Setup PowerKVM Hypervisor
|
||||
=========================
|
||||
|
||||
|
||||
Provision Hypervisor with PowerKVM
|
||||
----------------------------------
|
||||
|
||||
|
||||
Please follow the :ref:`Diskful Installation <diskful_installation>` to provision kvm hypervisor with PowerKVM, several customization steps should be taken into consideration.
|
||||
|
||||
To demonstrate the brief steps on hypervisor provision, take **ibm-powerkvm-3.1.0.0-39.0-ppc64le-gold-201511041419.iso** for example here:
|
||||
|
||||
#. Obtain a PowerKVM iso and create PowerKVM osimages with it: ::
|
||||
|
||||
copycds ibm-powerkvm-3.1.0.0-39.0-ppc64le-gold-201511041419.iso
|
||||
|
||||
The following PowerKVM osimage will be created on success ::
|
||||
|
||||
# lsdef -t osimage -o pkvm3.1-ppc64le-install-compute
|
||||
Object name: pkvm3.1-ppc64le-install-compute
|
||||
imagetype=linux
|
||||
osarch=ppc64le
|
||||
osdistroname=pkvm3.1-ppc64le
|
||||
osname=Linux
|
||||
osvers=pkvm3.1
|
||||
otherpkgdir=/install/post/otherpkgs/pkvm3.1/ppc64le
|
||||
pkgdir=/install/pkvm3.1/ppc64le
|
||||
profile=compute
|
||||
provmethod=install
|
||||
template=/opt/xcat/share/xcat/install/pkvm/compute.pkvm3.ppc64le.tmpl
|
||||
|
||||
#. Customize the hypervisor node definition to create network bridge
|
||||
|
||||
xCAT ships a postscript **xHRM** to create a network bridge on kvm host during installation/netbooting. Please specify the **xHRM** with appropriate parameters in **postscripts** attibute. Here is some examples on this:
|
||||
|
||||
To create a bridge with default name 'default' against the installation network device which was specified by **installnic** attribute ::
|
||||
|
||||
chdef kvmhost1 -p postscripts="xHRM bridgeprereq"
|
||||
|
||||
To create a bridge named 'br0' against the installation network device which was specified by **installnic** attribute(recommended) ::
|
||||
|
||||
chdef kvmhost1 -p postscripts="xHRM bridgeprereq br0"
|
||||
|
||||
To create a bridge named 'br0' against the network device 'eth0' ::
|
||||
|
||||
chdef kvmhost1 -p postscripts="xHRM bridgeprereq eth0:br0"
|
||||
|
||||
**Note**: The network bridge name you use should not be the virtual bridges created by libvirt installation [1]_.
|
||||
|
||||
|
||||
#. Customize the hypervisor node definition to mount the shared kvm storage directory on management node **(optional)**
|
||||
|
||||
If the shared kvm storage directory on the management node has been exported, it can be mounted on PowerKVM hypervisor for virtual machines hosting.
|
||||
|
||||
An easy way to do this is to create another postscript named "mountvms" which creates a directory **/install/vms** on hypervisor and then mounts **/install/vms** from the management node, the content of "mountvms" can be: ::
|
||||
|
||||
logger -t xcat "Install: setting vms mount in fstab"
|
||||
mkdir -p /install/vms
|
||||
echo "$MASTER:/install/vms /install/vms nfs \
|
||||
rsize=8192,wsize=8192,timeo=14,intr,nfsvers=2 1 2" >> /etc/fstab
|
||||
|
||||
|
||||
Then set the file permission and specify the script in **postscripts** attribute of hypervisor node definition: ::
|
||||
|
||||
chmod 755 /install/postscripts/mountvms
|
||||
chdef kvmhost1 -p postscripts=mountvms
|
||||
|
||||
#. Provision the hypervisor node with the PowerKVM osimage ::
|
||||
|
||||
nodeset kvmhost1 osimage=pkvm3.1-ppc64le-install-compute
|
||||
rpower kvmhost1 boot
|
||||
|
||||
|
||||
Create network bridge on hypervisor
|
||||
------------------------------------
|
||||
|
||||
To launch VMs, a network bridge must be created on the PowerKVM hypervisors.
|
||||
|
||||
If the hypervisor is provisioned successfully according to the steps described above, a network bridge will be created and attached to a physical interface. This can be checked by running ``brctl show`` on the hypervisor to show the network bridge information, please make sure a network bridge has been created and configured according to the parameters passed to postscript "xHRM" ::
|
||||
|
||||
# brctl show
|
||||
bridge name bridge id STP enabled interfaces
|
||||
br0 8000.000000000000 no eth0
|
||||
|
||||
|
||||
If the network bridge is not created or configured successfully, please run "xHRM" with **updatenode** on managememt node to create it manually:::
|
||||
|
||||
updatenode kvmhost1 -P "xHRM bridgeprereq eth0:br0"
|
||||
|
||||
|
||||
.. [1] Every standard libvirt installation provides NAT based connectivity to virtual machines out of the box using the "virtual bridge" interfaces (virbr0, virbr1, etc) Those will be created by default.
|
||||
|
@ -33,7 +33,7 @@ DESCRIPTION
|
||||
|
||||
Packs the stateless image from the chroot file system into a file to be sent to the node for a diskless boot.
|
||||
|
||||
Note: For an osimage that is deployed on a cluster, running packimage will overwrite the existing rootimage file and be unavailable to the compute nodes while the command executes.
|
||||
Note: For an osimage that is deployed on a cluster, running packimage will overwrite the existing rootimage file and be unavailable to the compute nodes while packimage is running.
|
||||
|
||||
|
||||
**********
|
||||
|
@ -50,7 +50,7 @@ OpenPOWER BMC specific:
|
||||
=======================
|
||||
|
||||
|
||||
\ **rflash**\ \ *noderange*\ \ *hpm file path*\ [\ **-c | -**\ **-check**\ ]
|
||||
\ **rflash**\ \ *noderange*\ \ *hpm file path*\ [\ **-c | -**\ **-check**\ ] [\ **-V**\ ]
|
||||
|
||||
|
||||
|
||||
@ -251,6 +251,14 @@ The command will update firmware for OpenPOWER BMC when given an OpenPOWER node
|
||||
rflash fs3 /firmware/8335_810.1543.20151021b_update.hpm
|
||||
|
||||
|
||||
Print verbose message to rflash log file per node when updading firmware:
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
rflash fs3 /firmware/8335_810.1543.20151021b_update.hpm -V
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -21,11 +21,21 @@ SYNOPSIS
|
||||
|
||||
\ **xcattest**\ [\ **-?|-h**\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-f**\ \ *configure file*\ ] [\ **-b**\ \ *case bundle list*\ ] [\ **-l**\ ]
|
||||
\ **xcattest**\ [\ **-f**\ \ *configure file*\ ] [\ **-b**\ \ *case bundle list*\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-f**\ \ *configure file*\ ] [\ **-t**\ \ *case list*\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-f**\ \ *configure file*\ ] [\ **-c**\ \ *cmd list*\ ] [\ **-l**\ ]
|
||||
\ **xcattest**\ [\ **-f**\ \ *configure file*\ ] [\ **-c**\ \ *cmd list*\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-b**\ \ *case bundle list*\ ] [\ **-l**\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-t**\ \ *case list*\ ] [\ **-l**\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-c**\ \ *cmd list*\ ] [\ **-l**\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-s**\ \ **command**\ ]
|
||||
|
||||
\ **xcattest**\ [\ **-s**\ \ **bundle**\ ]
|
||||
|
||||
|
||||
***********
|
||||
@ -52,13 +62,13 @@ OPTIONS
|
||||
|
||||
\ **-f**\ \ *configure file*\
|
||||
|
||||
Specifies the configuration file, if not specified, the default configure file is /opt/xcat/share/xcat/tools/autotest/default.conf.
|
||||
Specifies the configuration file with full-path. xCAT supports an example config file: /opt/xcat/share/xcat/tools/autotest/linux.conf.template
|
||||
|
||||
|
||||
|
||||
\ **-b**\ \ *case bundle list*\
|
||||
|
||||
Comma separated list of test cases bundle files, each test cases bundle can contain multiple lines and each line for one test case name.
|
||||
Comma separated list of test cases bundle files, each test cases bundle can contain multiple lines and each line for one test case name. The bundle files should be listed in: /opt/xcat/share/xcat/tools/autotest/bundle.
|
||||
|
||||
|
||||
|
||||
@ -80,6 +90,12 @@ OPTIONS
|
||||
|
||||
|
||||
|
||||
\ **-s**\
|
||||
|
||||
Display the bundle files and command with value: bundle or command.
|
||||
|
||||
|
||||
|
||||
|
||||
************
|
||||
RETURN VALUE
|
||||
@ -136,33 +152,33 @@ EXAMPLES
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
xcattest -c /tmp/config -c rpower
|
||||
xcattest -f /tmp/config -c rpower
|
||||
|
||||
|
||||
|
||||
|
||||
2.
|
||||
|
||||
To run customized bundle:
|
||||
To run customized bundle with /tmp/config file:
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
xcattest -l > /tmp/custom.bundle
|
||||
xcattest -c lsdef -l > /opt/xcat/share/xcat/tools/autotest/bundle/custom.bundle
|
||||
Modify custom.bundle
|
||||
xcattest -b custom.bundle
|
||||
xcattest -f /tmp/config -b custom.bundle
|
||||
|
||||
|
||||
|
||||
|
||||
3.
|
||||
|
||||
To run specified test cases.
|
||||
To run specified test cases with /tmp/config file:
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
xcattest -t lsdef_t_o_l_z
|
||||
xcattest -f /tmp/config -t lsdef_t_o_l_z
|
||||
|
||||
|
||||
|
||||
|
@ -92,17 +92,22 @@ linuximage Attributes:
|
||||
|
||||
\ **postinstall**\
|
||||
|
||||
Only supported in diskless image only. The fully qualified name of the scripts running in non-chroot mode after the package installation but before initrd generation during genimage. If multiple scripts are specified, they should be speperated with comma ",". A set of osimage attributes are exported as the environment variables to be used in the postinstall scripts:
|
||||
IMG_ARCH(The architecture of the osimage, such as "ppc64le","x86_64"),
|
||||
IMG_NAME(The name of the osimage, such as "rhels7.3-ppc64le-netboot-compute"),
|
||||
IMG_OSVER(The os release of the osimage, such as "rhels7.3","sles11.4"),
|
||||
IMG_KERNELVERSION(the "kernelver" attribute of the osimage),
|
||||
IMG_PROFILE(the profile of the osimage, such as "service","compute"),
|
||||
IMG_PKGLIST(the "pkglist" attribute of the osimage),
|
||||
IMG_PKGDIR(the "pkgdir" attribute of the osimage),
|
||||
IMG_OTHERPKGLIST(the "otherpkglist" attribute of the osimage),
|
||||
IMG_OTHERPKGDIR(the "otherpkgdir" attribute of the osimage),
|
||||
IMG_ROOTIMGDIR(the "rootimgdir" attribute of the osimage)
|
||||
Supported in diskless image only. The fully qualified name of the scripts running in non-chroot mode after the package installation but before initrd generation during genimage. If multiple scripts are specified, they should be seperated with comma ",". A set of osimage attributes are exported as the environment variables to be used in the postinstall scripts:
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
IMG_ARCH(The architecture of the osimage, such as "ppc64le","x86_64"),
|
||||
IMG_NAME(The name of the osimage, such as "rhels7.3-ppc64le-netboot-compute"),
|
||||
IMG_OSVER(The os release of the osimage, such as "rhels7.3","sles11.4"),
|
||||
IMG_KERNELVERSION(the "kernelver" attribute of the osimage),
|
||||
IMG_PROFILE(the profile of the osimage, such as "service","compute"),
|
||||
IMG_PKGLIST(the "pkglist" attribute of the osimage),
|
||||
IMG_PKGDIR(the "pkgdir" attribute of the osimage),
|
||||
IMG_OTHERPKGLIST(the "otherpkglist" attribute of the osimage),
|
||||
IMG_OTHERPKGDIR(the "otherpkgdir" attribute of the osimage),
|
||||
IMG_ROOTIMGDIR(the "rootimgdir" attribute of the osimage)
|
||||
|
||||
|
||||
|
||||
|
||||
@ -168,13 +173,19 @@ linuximage Attributes:
|
||||
|
||||
\ **partitionfile**\
|
||||
|
||||
The path of the configuration file which will be used to partition the disk for the node. For stateful osimages,two types of files are supported: "<partition file absolute path>" which contains a partitioning definition that will be inserted directly into the generated autoinst configuration file and must be formatted for the corresponding OS installer (e.g. kickstart for RedHat, autoyast for SLES, pressed for Ubuntu). "s:<partitioning script absolute path>" which specifies a shell script that will be run from the OS installer configuration file %pre section; the script must write the correct partitioning definition into the file /tmp/partitionfile on the node which will be included into the configuration file during the install process. For statelite osimages, partitionfile should specify "<partition file absolute path>"; see the xCAT Statelite documentation for the xCAT defined format of this configuration file.For Ubuntu, besides "<partition file absolute path>" or "s:<partitioning script absolute path>", the disk name(s) to partition must be specified in traditional, non-devfs format, delimited with space, it can be specified in 2 forms: "d:<the absolute path of the disk name file>" which contains the disk name(s) to partition and "s:d:<the absolute path of the disk script>" which runs in pressed/early_command and writes the disk names into the "/tmp/xcat.install_disk" . To support other specific partition methods such as RAID or LVM in Ubuntu, some additional preseed values should be specified, these values can be specified with "c:<the absolute path of the additional pressed config file>" which contains the additional pressed entries in "d-i ..." form and "s:c:<the absolute path of the additional pressed config script>" which runs in pressed/early_command and set the preseed values with "debconf-set". The multiple values should be delimited with comma ","
|
||||
Only available for diskful osimages and statelite osimages(localdisk enabled). The full path of the partition file or the script to generate the partition file. The valid value includes:
|
||||
"<the absolute path of the parititon file>": For diskful osimages, the partition file contains the partition definition that will be inserted directly into the template file for os installation. The syntax and format of the partition file should confirm to the corresponding OS installer of the Linux distributions(e.g. kickstart for RedHat, autoyast for SLES, pressed for Ubuntu). For statelite osimages, when the localdisk is enabled, the partition file with specific syntax and format includes the partition scheme of the local disk, please refer to the statelite documentation for details.
|
||||
"s:<the absolute path of the partition script>": a shell script to generate the partition file "/tmp/partitionfile" inside the installer before the installation start.
|
||||
"d:<the absolute path of the disk name file>": only available for ubuntu osimages, includes the name(s) of the disks to partition in traditional, non-devfs format(e.g, /dev/sdx, not e.g. /dev/discs/disc0/disc), and be delimited with space. All the disks involved in the partition file should be specified.
|
||||
"s:d:<the absolute path of the disk script>": only available for ubuntu osimages, a script to generate the disk name file "/tmp/xcat.install_disk" inside the debian installer. This script is run in the "pressed/early_command" section.
|
||||
"c:<the absolute path of the additional pressed config file>": only availbe for ubuntu osimages, contains the additional pressed entries in "d-i ..." form. This can be used to specify some additional preseed options to support RAID or LVM in Ubuntu.
|
||||
"s:c:<the absolute path of the additional pressed config script>": only available for ubuntu osimages, runs in pressed/early_command and set the preseed values with "debconf-set". The multiple values should be delimited with comma ","
|
||||
|
||||
|
||||
|
||||
\ **driverupdatesrc**\
|
||||
|
||||
The source of the drivers which need to be loaded during the boot. Two types of driver update source are supported: Driver update disk and Driver rpm package. The value for this attribute should be comma separated sources. Each source should be the format tab:full_path_of_srouce_file. The tab keyword can be: dud (for Driver update disk) and rpm (for driver rpm). If missing the tab, the rpm format is the default. e.g. dud:/install/dud/dd.img,rpm:/install/rpm/d.rpm
|
||||
The source of the drivers which need to be loaded during the boot. Two types of driver update source are supported: Driver update disk and Driver rpm package. The value for this attribute should be comma separated sources. Each source should be the format tab:full_path_of_source_file. The tab keyword can be: dud (for Driver update disk) and rpm (for driver rpm). If missing the tab, the rpm format is the default. e.g. dud:/install/dud/dd.img,rpm:/install/rpm/d.rpm
|
||||
|
||||
|
||||
|
||||
|
@ -57,7 +57,7 @@ litefile Attributes:
|
||||
|
||||
tmpfs - It is the default option if you leave the options column blank. It provides a file or directory for the node to use when booting, its permission will be the same as the original version on the server. In most cases, it is read-write; however, on the next statelite boot, the original version of the file or directory on the server will be used, it means it is non-persistent. This option can be performed on files and directories..
|
||||
|
||||
rw - Same as Above.Its name "rw" does NOT mean it always be read-write, even in most cases it is read-write. Do not confuse it with the "rw" permission in the file system.
|
||||
rw - Same as above. Its name "rw" does NOT mean it always be read-write, even in most cases it is read-write. Do not confuse it with the "rw" permission in the file system.
|
||||
|
||||
persistent - It provides a mounted file or directory that is copied to the xCAT persistent location and then over-mounted on the local file or directory. Anything written to that file or directory is preserved. It means, if the file/directory does not exist at first, it will be copied to the persistent location. Next time the file/directory in the persistent location will be used. The file/directory will be persistent across reboots. Its permission will be the same as the original one in the statelite location. It requires the statelite table to be filled out with a spot for persistent statelite. This option can be performed on files and directories.
|
||||
|
||||
|
@ -50,7 +50,7 @@ mac Attributes:
|
||||
|
||||
\ **mac**\
|
||||
|
||||
The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:05:0F!node6-eth1").
|
||||
The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:04:05:0F!node6-eth1"). If there are multiple nics connected to Management Network(usually for bond), in order to make sure the OS deployment finished successfully, the macs of those nics must be able to resolve to same IP address. First, users have to create alias of the node for each mac in the Management Network through either: 1. adding the alias into /etc/hosts for the node directly or: 2. setting the alias to the "hostnames" attribute and then run "makehost" against the node. Then, configure the "mac" attribute of the node like "mac1!node|mac2!node-alias". For the first mac address (mac1 in the example) set in "mac" attribute, do not need to set a "node name" string for it since the nodename of the node will be used for it by default.
|
||||
|
||||
|
||||
|
||||
|
@ -56,7 +56,7 @@ passwd Attributes:
|
||||
|
||||
\ **cryptmethod**\
|
||||
|
||||
Indicates the method that was used to encrypt the password attribute. On AIX systems, if a value is provided for this attribute it indicates that the password attribute is encrypted. If the cryptmethod value is not set it indicates the password is a simple string value. On Linux systems, the cryptmethod is not supported however the code attempts to auto-discover MD5 encrypted passwords.
|
||||
Indicates the method that was used to encrypt the password attribute. On AIX systems, if a value is provided for this attribute it indicates that the password attribute is encrypted. If the cryptmethod value is not set it indicates the password is a simple string value. On Linux systems, the cryptmethod can be set to md5, sha256 or sha512. If not set, sha256 will be used as default.
|
||||
|
||||
|
||||
|
||||
|
@ -82,22 +82,28 @@ site Attributes:
|
||||
details on supported formats.
|
||||
|
||||
nodestatus: If set to 'n', the nodelist.status column will not be updated during
|
||||
the node deployment, node discovery and power operations. The default is to update.
|
||||
the node deployment, node discovery and power operations. The default
|
||||
is to update.
|
||||
|
||||
skiptables: Comma separated list of tables to be skipped by dumpxCATdb
|
||||
|
||||
skipvalidatelog: If set to 1, then getcredentials and getpostscripts calls will not be logged in syslog.
|
||||
skipvalidatelog: If set to 1, then getcredentials and getpostscripts calls will not
|
||||
be logged in syslog.
|
||||
|
||||
-------------
|
||||
DHCP ATTRIBUTES
|
||||
-------------
|
||||
dhcpinterfaces: The network interfaces DHCP should listen on. If it is the same
|
||||
for all nodes, use a simple comma-separated list of NICs. To
|
||||
specify different NICs for different nodes:
|
||||
xcatmn|eth1,eth2;service|bond0.
|
||||
In this example xcatmn is the name of the xCAT MN, and DHCP there
|
||||
should listen on eth1 and eth2. On all of the nodes in group
|
||||
'service' DHCP should listen on the bond0 nic.
|
||||
dhcpinterfaces: The network interfaces DHCP should listen on. If it is the same for all
|
||||
nodes, use a comma-separated list of the NICs. To specify different NICs
|
||||
for different nodes, use the format: "xcatmn|eth1,eth2;service|bond0",
|
||||
where xcatmn is the name of the management node, DHCP should listen on
|
||||
the eth1 and eth2 interfaces. All the nodes in group 'service' should
|
||||
listen on the 'bond0' interface.
|
||||
|
||||
To disable the genesis kernel from being sent to specific interfaces, a
|
||||
':noboot' option can be appended to the interface name. For example,
|
||||
if the management node has two interfaces, eth1 and eth2, disable
|
||||
genesis from being sent to eth1 using: "eth1:noboot,eth2".
|
||||
|
||||
dhcpsetup: If set to 'n', it will skip the dhcp setup process in the nodeset cmd.
|
||||
|
||||
@ -120,18 +126,19 @@ site Attributes:
|
||||
DNS ATTRIBUTES
|
||||
------------
|
||||
dnshandler: Name of plugin that handles DNS setup for makedns.
|
||||
|
||||
domain: The DNS domain name used for the cluster.
|
||||
|
||||
forwarders: The DNS servers at your site that can provide names outside of the
|
||||
cluster. The makedns command will configure the DNS on the management
|
||||
node to forward requests it does not know to these servers.
|
||||
Note that the DNS servers on the service nodes will ignore this value
|
||||
and always be configured to forward requests to the management node.
|
||||
forwarders: The DNS servers at your site that can provide names outside of the cluster.
|
||||
The makedns command will configure the DNS on the management node to forward
|
||||
requests it does not know to these servers. Note that the DNS servers on the
|
||||
service nodes will ignore this value and always be configured to forward
|
||||
to the management node.
|
||||
|
||||
master: The hostname of the xCAT management node, as known by the nodes.
|
||||
|
||||
nameservers: A comma delimited list of DNS servers that each node in the cluster
|
||||
should use. This value will end up in the nameserver settings of the
|
||||
nameservers: A comma delimited list of DNS servers that each node in the cluster should
|
||||
use. This value will end up in the nameserver settings of the
|
||||
/etc/resolv.conf on each node. It is common (but not required) to set
|
||||
this attribute value to the IP addr of the xCAT management node, if
|
||||
you have set up the DNS on the management node by running makedns.
|
||||
@ -148,16 +155,16 @@ site Attributes:
|
||||
section. This is an interface for user to add configuration entries to
|
||||
the zone sections in named.conf.
|
||||
|
||||
dnsinterfaces: The network interfaces DNS server should listen on. If it is the same
|
||||
for all nodes, use a simple comma-separated list of NICs. To
|
||||
specify different NICs for different nodes:
|
||||
xcatmn|eth1,eth2;service|bond0.
|
||||
In this example xcatmn is the name of the xCAT MN, and DNS there
|
||||
should listen on eth1 and eth2. On all of the nodes in group
|
||||
'service' DNS should listen on the bond0 nic.
|
||||
NOTE: if using this attribute to block certain interfaces, make sure
|
||||
the ip maps to your hostname of xCAT MN is not blocked since xCAT needs to
|
||||
use this ip to communicate with the local NDS server on MN.
|
||||
dnsinterfaces: The network interfaces DNS should listen on. If it is the same for all
|
||||
nodes, use a simple comma-separated list of NICs. To specify different
|
||||
NICs for different nodes, use the format: "xcatmn|eth1,eth2;service|bond0",
|
||||
where xcatmn is the name of the management node, and DNS should listen on
|
||||
the eth1 and eth2 interfaces. All the nods in group 'service' should
|
||||
listen on the 'bond0' interface.
|
||||
|
||||
NOTE: If using this attribute to block certain interfaces, make sure
|
||||
the IP maps to your hostname of xCAT MN is not blocked since xCAT needs
|
||||
to use this IP to communicate with the local NDS server on MN.
|
||||
|
||||
-------------------------
|
||||
HARDWARE CONTROL ATTRIBUTES
|
||||
@ -200,12 +207,12 @@ site Attributes:
|
||||
It takes effects on other PPC hardware control command
|
||||
getmacs/rnetboot/rbootseq and so on. Default is 8.
|
||||
|
||||
syspowerinterval: For system p CECs, this is the number of seconds the rpower
|
||||
command will wait between performing the action for each CEC.
|
||||
For system x IPMI servers, this is the number of seconds the
|
||||
rpower command will wait between powering on <syspowermaxnodes>
|
||||
nodes at a time. This value is used to control the power on speed
|
||||
in large clusters. Default is 0.
|
||||
syspowerinterval: For SystemP CECs, this is the number of seconds the rpower command
|
||||
will wait between performing the action for each CEC. For SystemX
|
||||
IPMI servers, this is the number of seconds the rpower command will
|
||||
wait between powering on <syspowermaxnodes> nodes at a time. This
|
||||
value is used to control the power on speed in large clusters.
|
||||
Default is 0.
|
||||
|
||||
syspowermaxnodes: The number of servers to power on at one time before waiting
|
||||
'syspowerinterval' seconds to continue on to the next set of
|
||||
@ -291,12 +298,13 @@ site Attributes:
|
||||
If value is set to a hostname, the directory in tftpdir
|
||||
will be mounted from that hostname on the SN
|
||||
|
||||
sharedinstall: Indicates if a shared file system will be used for installation
|
||||
resources. Possible values are: 'no', 'sns', or 'all'. 'no'
|
||||
means a shared file system is not being used. 'sns' means a
|
||||
shared filesystem is being used across all service nodes.
|
||||
'all' means that the management as well as the service nodes
|
||||
are all using a common shared filesystem. The default is 'no'.
|
||||
sharedinstall: Indicates if a shared file system will be used for installation
|
||||
resources. Possible values are: 'no', 'sns', or 'all'. 'no'
|
||||
means a shared file system is not being used. 'sns' means a
|
||||
shared filesystem is being used across all service nodes.
|
||||
'all' means that the management as well as the service nodes
|
||||
are all using a common shared filesystem. The default is 'no'.
|
||||
|
||||
xcatconfdir: Where xCAT config data is (default /etc/xcat).
|
||||
|
||||
xcatdebugmode: the xCAT debug level. xCAT provides a batch of techniques
|
||||
@ -315,23 +323,24 @@ site Attributes:
|
||||
REMOTESHELL ATTRIBUTES
|
||||
--------------------
|
||||
nodesyncfiledir: The directory on the node, where xdcp will rsync the files
|
||||
|
||||
SNsyncfiledir: The directory on the Service Node, where xdcp will rsync the files
|
||||
from the MN that will eventually be rsync'd to the compute nodes.
|
||||
|
||||
sshbetweennodes: Comma separated list of groups of compute nodes to enable passwordless root
|
||||
ssh during install, or xdsh -K. Default is ALLGROUPS.
|
||||
Set to NOGROUPS,if you do not wish to enabled any group of compute nodes.
|
||||
Service Nodes are not affected by this attribute
|
||||
they are always setup with
|
||||
passwordless root access to nodes and other SN.
|
||||
sshbetweennodes: Comma separated list of groups of compute nodes to enable passwordless
|
||||
root ssh to the nodes during install or running 'xdsh -K'. The default
|
||||
is ALLGROUPS. Set to NOGROUPS to disable.
|
||||
|
||||
Service Nodes are not affected by this attribute as they are always
|
||||
configured with passwordless root access.
|
||||
If using the zone table, this attribute in not used.
|
||||
|
||||
-----------------
|
||||
SERVICES ATTRIBUTES
|
||||
-----------------
|
||||
consoleondemand: When set to 'yes', conserver connects and creates the console
|
||||
output only when the user opens the console. Default is no on
|
||||
Linux, yes on AIX.
|
||||
output only when the user opens the console. Default is 'no' on
|
||||
Linux, 'yes' on AIX.
|
||||
|
||||
httpport: The port number that the booting/installing nodes should contact the
|
||||
http server on the MN/SN on. It is your responsibility to configure
|
||||
@ -355,12 +364,12 @@ site Attributes:
|
||||
will use the management node's own hardware clock to calculate
|
||||
the system date and time
|
||||
|
||||
svloglocal: if set to 1, syslog on the service node will not get forwarded to the
|
||||
mgmt node.
|
||||
svloglocal: If set to 1, syslog on the service node will not get forwarded to the
|
||||
management node.
|
||||
|
||||
timezone: (e.g. America/New_York)
|
||||
|
||||
tftpdir: tftp directory path. Default is /tftpboot
|
||||
tftpdir: The tftp directory path. Default is /tftpboot
|
||||
|
||||
tftpflags: The flags that used to start tftpd. Default is '-v -l -s /tftpboot
|
||||
-m /etc/tftpmapfile4xcat.conf' if tftplfags is not set
|
||||
@ -369,29 +378,24 @@ site Attributes:
|
||||
using nmap (if available) from the management node instead of the
|
||||
service node. This will improve the performance in a flat network.
|
||||
|
||||
vsftp: Default is 'n'. If set to 'y', the xcatd on the mn will automatically
|
||||
bring up vsftpd. (You must manually install vsftpd before this.
|
||||
This setting does not apply to the service node. For sn
|
||||
you need to set servicenode.ftpserver=1 if you want xcatd to
|
||||
bring up vsftpd.
|
||||
|
||||
|
||||
FQDNfirst: Fully Qualified Domain Name first. If set to 1/yes/enable, the /etc/hosts
|
||||
entries generated by 'makehosts' will put the FQDN before the PQDN(Partially
|
||||
Qualified Domain Name). Otherwise, the original behavior will be performed.
|
||||
|
||||
hierarchicalattrs: Table attributes(e.g. postscripts, postbootscripts) that will be
|
||||
included hierarchically. Attribute values for all the node's groups
|
||||
will be applied to the node in the groups' order except the repeat one.
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
vsftp: Default is 'n'. If set to 'y', xcatd on the management node will automatically
|
||||
start vsftpd. (vsftpd must be installed by the admin). This setting does not
|
||||
apply to service nodes. For service nodes, set servicenode.ftpserver=1.
|
||||
|
||||
FQDNfirst: Fully Qualified Domain Name first. If set to 1/yes/enable, the /etc/hosts
|
||||
entries generated by 'makehosts' will put the FQDN before the PQDN(Partially
|
||||
Qualified Domain Name). Otherwise, the original behavior will be performed.
|
||||
|
||||
hierarchicalattrs: Table attributes(e.g. postscripts, postbootscripts) that will be
|
||||
included hierarchically. Attribute values for all the node's groups
|
||||
will be applied to the node in the groups' order except the repeat one.
|
||||
|
||||
-----------------------
|
||||
VIRTUALIZATION ATTRIBUTES
|
||||
-----------------------
|
||||
usexhrm: Have xCAT run its xHRM script when booting up KVM guests to set the
|
||||
virtual network bridge up correctly.
|
||||
usexhrm: Have xCAT execute the xHRM script when booting up KVM guests to configure
|
||||
the virtual network bridge.
|
||||
|
||||
vcenterautojoin: When set to no, the VMWare plugin will not attempt to auto remove
|
||||
and add hypervisors while trying to perform operations. If users
|
||||
or tasks outside of xCAT perform the joining this assures xCAT
|
||||
|
@ -86,7 +86,7 @@ vm Attributes:
|
||||
|
||||
\ **cfgstore**\
|
||||
|
||||
Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistant store to place configuration data
|
||||
Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistent store to place configuration data
|
||||
|
||||
|
||||
|
||||
|
@ -431,7 +431,7 @@ group Attributes:
|
||||
|
||||
\ **mac**\ (mac.mac)
|
||||
|
||||
The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:05:0F!node6-eth1").
|
||||
The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:04:05:0F!node6-eth1"). If there are multiple nics connected to Management Network(usually for bond), in order to make sure the OS deployment finished successfully, the macs of those nics must be able to resolve to same IP address. First, users have to create alias of the node for each mac in the Management Network through either: 1. adding the alias into /etc/hosts for the node directly or: 2. setting the alias to the "hostnames" attribute and then run "makehost" against the node. Then, configure the "mac" attribute of the node like "mac1!node|mac2!node-alias". For the first mac address (mac1 in the example) set in "mac" attribute, do not need to set a "node name" string for it since the nodename of the node will be used for it by default.
|
||||
|
||||
|
||||
|
||||
@ -1166,7 +1166,7 @@ group Attributes:
|
||||
|
||||
\ **vmcfgstore**\ (vm.cfgstore)
|
||||
|
||||
Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistant store to place configuration data
|
||||
Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistent store to place configuration data
|
||||
|
||||
|
||||
|
||||
|
@ -443,7 +443,7 @@ node Attributes:
|
||||
|
||||
\ **mac**\ (mac.mac)
|
||||
|
||||
The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:05:0F!node6-eth1").
|
||||
The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:04:05:0F!node6-eth1"). If there are multiple nics connected to Management Network(usually for bond), in order to make sure the OS deployment finished successfully, the macs of those nics must be able to resolve to same IP address. First, users have to create alias of the node for each mac in the Management Network through either: 1. adding the alias into /etc/hosts for the node directly or: 2. setting the alias to the "hostnames" attribute and then run "makehost" against the node. Then, configure the "mac" attribute of the node like "mac1!node|mac2!node-alias". For the first mac address (mac1 in the example) set in "mac" attribute, do not need to set a "node name" string for it since the nodename of the node will be used for it by default.
|
||||
|
||||
|
||||
|
||||
@ -1202,7 +1202,7 @@ node Attributes:
|
||||
|
||||
\ **vmcfgstore**\ (vm.cfgstore)
|
||||
|
||||
Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistant store to place configuration data
|
||||
Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistent store to place configuration data
|
||||
|
||||
|
||||
|
||||
|
@ -83,7 +83,7 @@ osimage Attributes:
|
||||
|
||||
\ **driverupdatesrc**\ (linuximage.driverupdatesrc)
|
||||
|
||||
The source of the drivers which need to be loaded during the boot. Two types of driver update source are supported: Driver update disk and Driver rpm package. The value for this attribute should be comma separated sources. Each source should be the format tab:full_path_of_srouce_file. The tab keyword can be: dud (for Driver update disk) and rpm (for driver rpm). If missing the tab, the rpm format is the default. e.g. dud:/install/dud/dd.img,rpm:/install/rpm/d.rpm
|
||||
The source of the drivers which need to be loaded during the boot. Two types of driver update source are supported: Driver update disk and Driver rpm package. The value for this attribute should be comma separated sources. Each source should be the format tab:full_path_of_source_file. The tab keyword can be: dud (for Driver update disk) and rpm (for driver rpm). If missing the tab, the rpm format is the default. e.g. dud:/install/dud/dd.img,rpm:/install/rpm/d.rpm
|
||||
|
||||
|
||||
|
||||
@ -279,7 +279,13 @@ osimage Attributes:
|
||||
|
||||
\ **partitionfile**\ (linuximage.partitionfile, winimage.partitionfile)
|
||||
|
||||
The path of the configuration file which will be used to partition the disk for the node. For stateful osimages,two types of files are supported: "<partition file absolute path>" which contains a partitioning definition that will be inserted directly into the generated autoinst configuration file and must be formatted for the corresponding OS installer (e.g. kickstart for RedHat, autoyast for SLES, pressed for Ubuntu). "s:<partitioning script absolute path>" which specifies a shell script that will be run from the OS installer configuration file %pre section; the script must write the correct partitioning definition into the file /tmp/partitionfile on the node which will be included into the configuration file during the install process. For statelite osimages, partitionfile should specify "<partition file absolute path>"; see the xCAT Statelite documentation for the xCAT defined format of this configuration file.For Ubuntu, besides "<partition file absolute path>" or "s:<partitioning script absolute path>", the disk name(s) to partition must be specified in traditional, non-devfs format, delimited with space, it can be specified in 2 forms: "d:<the absolute path of the disk name file>" which contains the disk name(s) to partition and "s:d:<the absolute path of the disk script>" which runs in pressed/early_command and writes the disk names into the "/tmp/xcat.install_disk" . To support other specific partition methods such as RAID or LVM in Ubuntu, some additional preseed values should be specified, these values can be specified with "c:<the absolute path of the additional pressed config file>" which contains the additional pressed entries in "d-i ..." form and "s:c:<the absolute path of the additional pressed config script>" which runs in pressed/early_command and set the preseed values with "debconf-set". The multiple values should be delimited with comma ","
|
||||
Only available for diskful osimages and statelite osimages(localdisk enabled). The full path of the partition file or the script to generate the partition file. The valid value includes:
|
||||
"<the absolute path of the parititon file>": For diskful osimages, the partition file contains the partition definition that will be inserted directly into the template file for os installation. The syntax and format of the partition file should confirm to the corresponding OS installer of the Linux distributions(e.g. kickstart for RedHat, autoyast for SLES, pressed for Ubuntu). For statelite osimages, when the localdisk is enabled, the partition file with specific syntax and format includes the partition scheme of the local disk, please refer to the statelite documentation for details.
|
||||
"s:<the absolute path of the partition script>": a shell script to generate the partition file "/tmp/partitionfile" inside the installer before the installation start.
|
||||
"d:<the absolute path of the disk name file>": only available for ubuntu osimages, includes the name(s) of the disks to partition in traditional, non-devfs format(e.g, /dev/sdx, not e.g. /dev/discs/disc0/disc), and be delimited with space. All the disks involved in the partition file should be specified.
|
||||
"s:d:<the absolute path of the disk script>": only available for ubuntu osimages, a script to generate the disk name file "/tmp/xcat.install_disk" inside the debian installer. This script is run in the "pressed/early_command" section.
|
||||
"c:<the absolute path of the additional pressed config file>": only availbe for ubuntu osimages, contains the additional pressed entries in "d-i ..." form. This can be used to specify some additional preseed options to support RAID or LVM in Ubuntu.
|
||||
"s:c:<the absolute path of the additional pressed config script>": only available for ubuntu osimages, runs in pressed/early_command and set the preseed values with "debconf-set". The multiple values should be delimited with comma ","
|
||||
|
||||
or
|
||||
|
||||
@ -313,17 +319,22 @@ osimage Attributes:
|
||||
|
||||
\ **postinstall**\ (linuximage.postinstall)
|
||||
|
||||
Only supported in diskless image only. The fully qualified name of the scripts running in non-chroot mode after the package installation but before initrd generation during genimage. If multiple scripts are specified, they should be speperated with comma ",". A set of osimage attributes are exported as the environment variables to be used in the postinstall scripts:
|
||||
IMG_ARCH(The architecture of the osimage, such as "ppc64le","x86_64"),
|
||||
IMG_NAME(The name of the osimage, such as "rhels7.3-ppc64le-netboot-compute"),
|
||||
IMG_OSVER(The os release of the osimage, such as "rhels7.3","sles11.4"),
|
||||
IMG_KERNELVERSION(the "kernelver" attribute of the osimage),
|
||||
IMG_PROFILE(the profile of the osimage, such as "service","compute"),
|
||||
IMG_PKGLIST(the "pkglist" attribute of the osimage),
|
||||
IMG_PKGDIR(the "pkgdir" attribute of the osimage),
|
||||
IMG_OTHERPKGLIST(the "otherpkglist" attribute of the osimage),
|
||||
IMG_OTHERPKGDIR(the "otherpkgdir" attribute of the osimage),
|
||||
IMG_ROOTIMGDIR(the "rootimgdir" attribute of the osimage)
|
||||
Supported in diskless image only. The fully qualified name of the scripts running in non-chroot mode after the package installation but before initrd generation during genimage. If multiple scripts are specified, they should be seperated with comma ",". A set of osimage attributes are exported as the environment variables to be used in the postinstall scripts:
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
IMG_ARCH(The architecture of the osimage, such as "ppc64le","x86_64"),
|
||||
IMG_NAME(The name of the osimage, such as "rhels7.3-ppc64le-netboot-compute"),
|
||||
IMG_OSVER(The os release of the osimage, such as "rhels7.3","sles11.4"),
|
||||
IMG_KERNELVERSION(the "kernelver" attribute of the osimage),
|
||||
IMG_PROFILE(the profile of the osimage, such as "service","compute"),
|
||||
IMG_PKGLIST(the "pkglist" attribute of the osimage),
|
||||
IMG_PKGDIR(the "pkgdir" attribute of the osimage),
|
||||
IMG_OTHERPKGLIST(the "otherpkglist" attribute of the osimage),
|
||||
IMG_OTHERPKGDIR(the "otherpkgdir" attribute of the osimage),
|
||||
IMG_ROOTIMGDIR(the "rootimgdir" attribute of the osimage)
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -19,9 +19,9 @@ DESCRIPTION
|
||||
***********
|
||||
|
||||
|
||||
\ **copycds-cdrom**\ is a wrapper scripts for copycds to copy from physical CD/DVD-ROM drives located on the management server.
|
||||
\ **copycds-cdrom**\ is a wrapper scripts for \ **copycds**\ to copy from physical CD/DVD-ROM drives located on the management server.
|
||||
|
||||
\ *[copycds options]*\ are passed unmolested to copycds.
|
||||
\ *[copycds options]*\ are passed unchanged to copycds.
|
||||
|
||||
If \ *[drive]*\ is not specified, /dev/cdrom is assumed.
|
||||
|
||||
|
@ -31,11 +31,11 @@ DESCRIPTION
|
||||
***********
|
||||
|
||||
|
||||
The \ **copycds**\ command copies all contents of Distribution DVDs/ISOs or Service Pack DVDs/ISOs to a destination directory. The destination directory can be specified by the -p option. If no path is specified, the default destination directory will be formed from the \ **installdir**\ site attribute and the distro name and architecture, for example: /install/rhels6.3/x86_64. The \ **copycds**\ command can copy from one or more ISO files, or the CD/DVD device path.
|
||||
The \ **copycds**\ command copies all contents of Distribution DVDs/ISOs or Service Pack DVDs/ISOs to a destination directory. The destination directory can be specified by the \ **-p**\ option. If no path is specified, the default destination directory will be formed from the \ **installdir**\ site table attribute, distro name and architecture, for example: /install/rhels6.3/x86_64. The \ **copycds**\ command can copy from one or more ISO files, or the CD/DVD device path.
|
||||
|
||||
You can specify \ **-i**\ or \ **-**\ **-inspection**\ option to check whether the DVDs/ISOs can be recognized by xCAT. If recognized, the distribution name, architecture and the disc no (the disc sequence number of DVDs/ISOs in multi-disk distribution) of the DVD/ISO is displayed. If xCAT doesn't recognize the DVD/ISO, you must manually specify the distro name and architecture using the -n and -a options. This is sometimes the case for distros that have very recently been released, and the xCAT code hasn't been updated for it yet.
|
||||
You can specify \ **-i**\ or \ **-**\ **-inspection**\ option to check whether the DVDs/ISOs can be recognized by xCAT. If recognized, the distribution name, architecture and the disc no (the disc sequence number of DVDs/ISOs in multi-disk distribution) of the DVD/ISO is displayed. If xCAT doesn't recognize the DVD/ISO, you must manually specify the distro name and architecture using the \ **-n**\ and \ **-a**\ options. This is sometimes the case for distros that have very recently been released, and the xCAT code hasn't been updated for it yet.
|
||||
|
||||
You can get xCAT to recognize new DVDs/ISOs by adding them to /opt/xcat/lib/perl/xCAT/data/discinfo.pm and reloading xcatd (service xcatd reload).
|
||||
You can get xCAT to recognize new DVDs/ISOs by adding them to /opt/xcat/lib/perl/xCAT/data/discinfo.pm (the key of the hash is the first line of .discinfo) and reloading xcatd (\ **service xcatd reload**\ ).
|
||||
|
||||
|
||||
*******
|
||||
@ -52,31 +52,31 @@ OPTIONS
|
||||
|
||||
\ **-a|-**\ **-arch**\ =\ *architecture*\
|
||||
|
||||
The architecture of the linux distro on the ISO/DVD. Examples: x86, x86_64, ppc64, s390x.
|
||||
The architecture of the linux distro on the ISO/DVD. Examples: x86, x86_64, ppc64, s390x.
|
||||
|
||||
|
||||
|
||||
\ **-p|-**\ **-path**\ =\ *ospkgpath*\
|
||||
|
||||
The destination directory to which the contents of ISO/DVD will be copied. When this option is not specified, the default destination directory will be formed from the \ **installdir**\ site attribute and the distro name and architecture, for example: /install/rhel6.3/x86_64. This option is only supported distributions of sles,redhat and windows.
|
||||
The destination directory to which the contents of ISO/DVD will be copied. When this option is not specified, the default destination directory will be formed from the \ **installdir**\ site table attribute and the distro name and architecture, for example: /install/rhel6.3/x86_64. This option is only supported for distributions of sles, redhat and windows.
|
||||
|
||||
|
||||
|
||||
\ **-i|-**\ **-inspection**\
|
||||
|
||||
Check whether xCAT can recognize the DVDs/ISOs in the argument list, but do not copy the disc. Displays the os distribution name, architecture and disc no of each recognized DVD/ISO. This option only supported for distributions of sles,redhat and windows.
|
||||
Check whether xCAT can recognize the DVDs/ISOs in the argument list, but do not copy the disc. Displays the os distribution name, architecture and disc no of each recognized DVD/ISO. This option is only supported for distributions of sles, redhat and windows.
|
||||
|
||||
|
||||
|
||||
\ **-o|-**\ **-noosimage**\
|
||||
|
||||
Do not create the default osimages based on the osdistro copied in. By default, copycds will create a set of osimages based on the osdistro.
|
||||
Do not create the default osimages based on the osdistro copied in. By default, \ **copycds**\ will create a set of osimages based on the osdistro.
|
||||
|
||||
|
||||
|
||||
\ **-w|-**\ **-nonoverwrite**\
|
||||
|
||||
Complain and exit if the os disc has already been copied in. By default, copycds will overwrite the os disc already copied in.
|
||||
Complain and exit if the os disc has already been copied in. By default, \ **copycds**\ will overwrite the os disc already copied in.
|
||||
|
||||
|
||||
|
||||
@ -155,7 +155,7 @@ EXAMPLES
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
copycds -n /isodir/RHEL6.5/RHEL6.5-Supplementary-20131114.2-Server-ppc64-DVD1.iso -n rhels6.5-supp
|
||||
copycds /isodir/RHEL6.5/RHEL6.5-Supplementary-20131114.2-Server-ppc64-DVD1.iso -n rhels6.5-supp
|
||||
|
||||
|
||||
Also, remember to add the new directory to your osimage definition:
|
||||
|
@ -19,7 +19,7 @@ SYNOPSIS
|
||||
********
|
||||
|
||||
|
||||
\ **makeconservercf**\ [\ **-V|-**\ **-verbose**\ ] [\ **-d|-**\ **-delete**\ ] \ *noderange*\
|
||||
\ **makeconservercf**\ [\ **-V|-**\ **-verbose**\ ] [\ **-d|-**\ **-delete**\ ] [\ *noderange*\ ]
|
||||
|
||||
\ **makeconservercf**\ [\ **-V|-**\ **-verbose**\ ] [\ **-l|-**\ **-local**\ ] [\ *noderange*\ ]
|
||||
|
||||
@ -36,14 +36,16 @@ DESCRIPTION
|
||||
|
||||
|
||||
The \ **makeconservercf**\ command will write out the /etc/conserver.cf, using information from the nodehm table
|
||||
and related tables (e.g. mp, ipmi, ppc). Normally, \ **makeconservercf**\ will write all nodes to the conserver.cf
|
||||
file. If a noderange is specified, it will write on those nodes to the file. In either case, if a node
|
||||
and related tables (e.g. mp, ipmi, ppc). Normally, \ **makeconservercf**\ will write all nodes to the /etc/conserver.cf
|
||||
file. If a \ *noderange*\ is specified, it will write only those nodes to the file. In either case, if a node
|
||||
does not have nodehm.cons set, it will not be written to the file.
|
||||
|
||||
If \ **-d**\ is specified, \ **makeconservercf**\ will remove specified nodes from /etc/conserver.cf file. If \ *noderange*\ is not specified, all xCAT nodes will be removed from /etc/conserver.cf file.
|
||||
|
||||
In the case of a hierarchical cluster (i.e. one with service nodes) \ **makeconservercf**\ will determine
|
||||
which nodes will have their consoles accessed from the management node and which from a service node
|
||||
(based on the nodehm.conserver attribute). The /etc/conserver.cf file will be created accordingly on
|
||||
all relevant management/service nodes. If -l is specified, it will only create the local file.
|
||||
all relevant management/service nodes. If \ **-l**\ is specified, it will only create the local file.
|
||||
|
||||
|
||||
*******
|
||||
|
@ -3,6 +3,6 @@ Updating xCAT
|
||||
If at a later date you want to update xCAT, first, update the software repositories and then run: ::
|
||||
|
||||
apt-get update
|
||||
apt-get --only-upgrade install xcat*
|
||||
apt-get -y --only-upgrade install .*xcat.*
|
||||
|
||||
|
||||
|
@ -64,7 +64,7 @@ The following sections describe the different methods for installing xCAT.
|
||||
|
||||
#. Download the ``go-xcat`` tool using ``wget``: ::
|
||||
|
||||
wget http://xcat.org/files/go-xcat -O - >/tmp/go-xcat
|
||||
wget https://raw.githubusercontent.com/xcat2/xcat-core/master/xCAT-server/share/xcat/tools/go-xcat -O - >/tmp/go-xcat
|
||||
chmod +x /tmp/go-xcat
|
||||
|
||||
#. Run the ``go-xcat`` tool: ::
|
||||
|
@ -7,6 +7,30 @@ The following table is a summary of the new operating system (OS), hardware, and
|
||||
* **SLES** - Suse Linux Enterprise Server
|
||||
* **UBT** - Ubuntu
|
||||
|
||||
xCAT 2.13.x
|
||||
-----------
|
||||
|
||||
+---------------------------------+---------------+-------------+----------------------------------+
|
||||
|xCAT |New OS |New |New Feature |
|
||||
|Version | |Hardware | |
|
||||
+=================================+===============+=============+==================================+
|
||||
|| xCAT 2.13.1 | | |- ONIE switch support |
|
||||
|| 2017/1/13 | | |- refine xcatprobe subcommand: |
|
||||
|| | | | xcatmn, osdeploy |
|
||||
| `2.13.1 Release Notes <https:// | | |- add utp-wait for genesis-base |
|
||||
| github.com/xcat2/xcat-core/wiki | | | |
|
||||
| /XCAT_2.13.1_Release_Notes>`_ | | | |
|
||||
| | | | |
|
||||
+---------------------------------+---------------+-------------+----------------------------------+
|
||||
|| xCAT 2.13 |- SLES 12.2 | |- update drivers for genesis-base |
|
||||
|| 2016/12/09 | | | mlx4-en 3.2-1.0.1.1 |
|
||||
|| | | | i40e 1.5.16 |
|
||||
| `2.13 Release Notes <https:// | | |- rflash saving flashing progress |
|
||||
| github.com/xcat2/xcat-core/wiki | | |- Update configureRAID document |
|
||||
| /XCAT_2.13_Release_Notes>`_ | | |- statelite image create by copyds|
|
||||
| | | | |
|
||||
+---------------------------------+---------------+-------------+----------------------------------+
|
||||
|
||||
xCAT 2.12.x
|
||||
-----------
|
||||
|
||||
@ -14,6 +38,14 @@ xCAT 2.12.x
|
||||
|xCAT |New OS |New |New Feature |
|
||||
|Version | |Hardware | |
|
||||
+=================================+===============+=============+==================================+
|
||||
|| xCAT 2.12.4 |- RHEL 7.3 LE | |- `noboot` added to dhcpinterface |
|
||||
|| 2016/11/11 |- RHEV 4.0 | |- new xcatprobe subcommand: |
|
||||
|| | | | xcatmn, deploy and discover |
|
||||
| `2.12.4 Release Notes <https:// | | | |
|
||||
| github.com/xcat2/xcat-core/wiki | | | |
|
||||
| /XCAT_2.12.4_Release_Notes>`_ | | | |
|
||||
| | | | |
|
||||
+---------------------------------+---------------+-------------+----------------------------------+
|
||||
|| xCAT 2.12.3 | | |- GitHub Issues resolved |
|
||||
|| 2016/09/30 | | |- rinv options for OpenPower |
|
||||
|| | | |- switch based switch discovery |
|
||||
|
48
docs/source/security/2016/20161130_hard_code_password.rst
Normal file
48
docs/source/security/2016/20161130_hard_code_password.rst
Normal file
@ -0,0 +1,48 @@
|
||||
2016-11-30 - Removal of Service Stream Password
|
||||
===============================================
|
||||
|
||||
It has been brought to our attention that the xCAT product has hard-coded default passwords for the HMC/FSP to allow for IBM Service to connect to customer machines for L2/L3 support activities. This creates a security vulnerability where third parties could potentially gain root level access using these weak, hard coded passwords.
|
||||
|
||||
|
||||
Example: ::
|
||||
|
||||
create_pwd => "netsDynPwdTool --create dev FipSdev",
|
||||
password => "FipSdev"
|
||||
|
||||
|
||||
In response, xCAT will remove these hard-coded password and interfaces from the xCAT code.
|
||||
|
||||
|
||||
Action
|
||||
------
|
||||
|
||||
No action is required for xCAT 2.12.3, and higher.
|
||||
|
||||
If running older versions of xCAT, update xCAT to a higher level code base that has the hard-coded default passwords removed.
|
||||
|
||||
The following table describes the recommended update path:
|
||||
|
||||
+-------------------------+-----------------------------------------------+---------------------------------------+
|
||||
| xCAT Version | Action | Release Notes |
|
||||
+=========================+===============================================+=======================================+
|
||||
| **2.13**, or newer | No applicable | |
|
||||
| | | |
|
||||
+-------------------------+-----------------------------------------------+---------------------------------------+
|
||||
| **2.12.x** | Update to **2.12.3**, or higher | `2.12.3 Release Notes <https:// |
|
||||
| | | github.com/xcat2/xcat-core/wiki |
|
||||
| | | /XCAT_2.12.3_Release_Notes>`_ |
|
||||
+-------------------------+-----------------------------------------------+---------------------------------------+
|
||||
| **2.11.x** | Update to **2.12.3**, or higher | `2.12.3 Release Notes <https:// |
|
||||
| | | github.com/xcat2/xcat-core/wiki |
|
||||
| | | /XCAT_2.12.3_Release_Notes>`_ |
|
||||
+-------------------------+-----------------------------------------------+---------------------------------------+
|
||||
| **2.10.x** | Update to **2.12.3**, or higher | `2.12.3 Release Notes <https:// |
|
||||
| | | github.com/xcat2/xcat-core/wiki |
|
||||
| | | /XCAT_2.12.3_Release_Notes>`_ |
|
||||
+-------------------------+-----------------------------------------------+---------------------------------------+
|
||||
| **2.9.x**, or older | Update to: | `2.9.4 Release Notes <https:// |
|
||||
| | | github.com/xcat2/xcat-core/wiki |
|
||||
| | - **2.9.4**, or higher for **AIX** | /XCAT_2.9.4_Release_Notes>`_ |
|
||||
| | - **2.12.3**, or higher for **LINUX** | |
|
||||
+-------------------------+-----------------------------------------------+---------------------------------------+
|
||||
|
@ -4,6 +4,7 @@
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
20161130_hard_code_password.rst
|
||||
20160824_openssl.rst
|
||||
20160815_openssl.rst
|
||||
20160503_openssl.rst
|
||||
|
66
makerpm
66
makerpm
@ -9,7 +9,29 @@
|
||||
|
||||
# set -x
|
||||
|
||||
# Make one of the following rpms: perl-xCAT, xCAT-server, xCAT-client, xCAT-IBMhpc, xCAT-rmc, xCAT-UI, xCAT-test
|
||||
function xcat_probe_copy {
|
||||
# xCAT-probe uses some functions shipped with xCAT, copying for the following reasons:
|
||||
# 1. make xCAT-probe code be self-contained
|
||||
# 2. do not maintain two files for each script
|
||||
# 3. symbolic link can't work during packaging
|
||||
RPMNAME=${1}
|
||||
if [ $RPMNAME = "xCAT-probe" ]; then
|
||||
mkdir -p ${RPMNAME}/lib/perl/xCAT/
|
||||
files=("NetworkUtils.pm" "GlobalDef.pm" "ServiceNodeUtils.pm")
|
||||
for f in "${files[@]}"; do
|
||||
cp perl-xCAT/xCAT/$f ${RPMNAME}/lib/perl/xCAT/
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
function xcat_probe_cleanup {
|
||||
RPMNAME=${1}
|
||||
if [ $RPMNAME = "xCAT-probe" ]; then
|
||||
rm -rf ${RPMNAME}/lib/perl/xCAT/
|
||||
fi
|
||||
}
|
||||
|
||||
# Make the noarch rpms
|
||||
function makenoarch {
|
||||
RPMNAME=$1
|
||||
if [ "$OSNAME" = "AIX" ]; then
|
||||
@ -41,27 +63,20 @@ function makenoarch {
|
||||
fi
|
||||
fi
|
||||
|
||||
#xcat probe use some functions shipped by xCAT, for below reasons we need to copy files to xCAT-probe directory
|
||||
#1 make xcat probe code to be self-contained
|
||||
#2 don't maintain two files for each script
|
||||
#3 symbolic link can't work during package
|
||||
if [ $RPMNAME = "xCAT-probe" ]; then
|
||||
CURDIR=$(pwd)
|
||||
mkdir -p ${CURDIR}/xCAT-probe/lib/perl/xCAT/
|
||||
cp -f ${CURDIR}/perl-xCAT/xCAT/NetworkUtils.pm ${CURDIR}/xCAT-probe/lib/perl/xCAT/
|
||||
cp -f ${CURDIR}/perl-xCAT/xCAT/GlobalDef.pm ${CURDIR}/xCAT-probe/lib/perl/xCAT/
|
||||
cp -f ${CURDIR}/perl-xCAT/xCAT/ServiceNodeUtils.pm ${CURDIR}/xCAT-probe/lib/perl/xCAT/
|
||||
fi
|
||||
xcat_probe_copy ${RPMNAME}
|
||||
|
||||
tar --exclude .svn -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
|
||||
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
|
||||
rpmbuild $QUIET -ta $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz --define "version $VER"
|
||||
rpmbuild $QUIET -ta $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz --define "version $VER" $REL "$EASE"
|
||||
RC=$?
|
||||
|
||||
if [ $RPMNAME = "xCAT-UI" ]; then
|
||||
# undo the modifications above to leave the sandbox prestine on the build machine
|
||||
git checkout xCAT-UI/xCAT-UI.spec
|
||||
fi
|
||||
|
||||
xcat_probe_cleanup ${RPMNAME}
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
@ -107,6 +122,13 @@ function makexcat {
|
||||
TARGET="--target $ARCH"
|
||||
|
||||
if [ "$RPMNAME" = "xCAT" ]; then
|
||||
cd `dirname $0`/
|
||||
# shipping bmcsetup and getipmi scripts as part of postscripts
|
||||
files=("bmcsetup" "getipmi")
|
||||
for f in "${files[@]}"; do
|
||||
cp "xCAT-genesis-scripts/bin/"$f ${RPMNAME}/postscripts/$f
|
||||
sed -i "s/xcat.genesis.$f/$f/g" ${RPMNAME}/postscripts/$f
|
||||
done
|
||||
cd `dirname $0`/$RPMNAME
|
||||
tar --exclude .svn --exclude upflag -czf $RPMROOT/SOURCES/postscripts.tar.gz postscripts LICENSE.html
|
||||
tar --exclude .svn -czf $RPMROOT/SOURCES/prescripts.tar.gz prescripts
|
||||
@ -137,8 +159,14 @@ function makexcat {
|
||||
|
||||
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/$ARCH/$RPMNAME-$VER*rpm
|
||||
echo "Building $RPMROOT/RPMS/$ARCH/$RPMNAME-$VER-snap*.$ARCH.rpm $EMBEDTXT..."
|
||||
rpmbuild $QUIET -ba $RPMNAME/$RPMNAME.spec $TARGET --define "version $VER"
|
||||
rpmbuild $QUIET -ba $RPMNAME/$RPMNAME.spec $TARGET --define "version $VER" $REL "$EASE"
|
||||
RC=$?
|
||||
if [ "$RPMNAME" = "xCAT" ]; then
|
||||
files=("bmcsetup" "getipmi")
|
||||
for f in "${files[@]}"; do
|
||||
rm -f `dirname $0`/${RPMNAME}/postscripts/$f
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@ -162,15 +190,19 @@ function makeironic {
|
||||
# Make the xCAT-genesis rpm
|
||||
function makegenesis {
|
||||
DIR="xCAT-genesis-builder"
|
||||
SPEC_FILE="xCAT-genesis-base.spec"
|
||||
RPMNAME="$1"
|
||||
cd `dirname $0`/$DIR
|
||||
sed -i s/%%REPLACE_CURRENT_VERSION%%/${VER}/g ${SPEC_FILE}
|
||||
tar --exclude .svn -cjf $RPMROOT/SOURCES/$RPMNAME.tar.bz2 .
|
||||
# undo the changes from the SED command above so it's not tracked by Git
|
||||
git checkout ${SPEC_FILE}
|
||||
cp LICENSE.html $RPMROOT/BUILD
|
||||
cp $RPMNAME.spec $RPMROOT/SOURCES
|
||||
cd - >/dev/null
|
||||
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
|
||||
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
|
||||
rpmbuild $QUIET -ba $DIR/$RPMNAME.spec --define "version $VER"
|
||||
rpmbuild $QUIET -ba $DIR/$RPMNAME.spec --define "version $VER" $REL "$EASE"
|
||||
}
|
||||
|
||||
function makegenesisscripts {
|
||||
@ -190,7 +222,7 @@ function makegenesisscripts {
|
||||
cd - >/dev/null
|
||||
rm -f $RPMROOT/SRPMS/$RPMNAME-$ARCH-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$ARCH-$VER*rpm
|
||||
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$ARCH-$VER-snap*.noarch.rpm $EMBEDTXT..."
|
||||
rpmbuild $QUIET -ba $DIR/$RPMNAME.spec $TARGET --define "version $VER"
|
||||
rpmbuild $QUIET -ba $DIR/$RPMNAME.spec $TARGET --define "version $VER" $REL "$EASE"
|
||||
}
|
||||
|
||||
|
||||
@ -215,6 +247,8 @@ fi
|
||||
OSNAME=$(uname)
|
||||
if [ -z "$XCATVER" ] ; then
|
||||
VER=`cat Version`
|
||||
REL="--define"
|
||||
EASE='usedate 1'
|
||||
else
|
||||
VER=$XCATVER
|
||||
REL="--define"
|
||||
|
@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
@ -2,12 +2,13 @@ Source: perl-xcat
|
||||
Section: libs
|
||||
Priority: extra
|
||||
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
|
||||
Build-Depends: debhelper (>= 5), libsoap-lite-perl, libdbi-perl
|
||||
Standards-Version: 3.7.2
|
||||
Build-Depends: debhelper (>= 9), libsoap-lite-perl, libdbi-perl
|
||||
Standards-Version: 3.9.4
|
||||
Homepage: https://xcat.org/
|
||||
|
||||
Package: perl-xcat
|
||||
Architecture: all
|
||||
Depends: ${perl:Depends}
|
||||
Depends: ${perl:Depends}
|
||||
Description: xCAT perl libraries
|
||||
Provides perl xCAT libraries for core functionality. Required for all xCAT installations.
|
||||
Includes xCAT::Table, xCAT::NodeRange, among others.
|
||||
|
@ -9,9 +9,6 @@
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DH_COMPAT=5
|
||||
|
||||
|
||||
build:
|
||||
dh_testdir
|
||||
./db2man
|
||||
@ -27,7 +24,6 @@ install:
|
||||
dh_installdirs
|
||||
dh_install -X".svn"
|
||||
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
@ -36,7 +32,7 @@ binary-indep: build install
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installchangelogs
|
||||
dh_installchangelogs
|
||||
dh_installdocs
|
||||
# dh_installexamples
|
||||
dh_install -X".svn"
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: xCAT perl libraries
|
||||
Name: perl-xCAT
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: EPL
|
||||
Group: System Environment/Libraries
|
||||
@ -17,8 +17,6 @@ BuildArch: noarch
|
||||
#Requires: perl-SOAP-Lite
|
||||
%endif
|
||||
|
||||
Provides: perl-xCAT = %{epoch}:%{version}
|
||||
|
||||
%description
|
||||
Provides perl xCAT libraries for core functionality. Required for all xCAT installations.
|
||||
Includes xCAT::Table, xCAT::NodeRange, among others.
|
||||
|
@ -345,7 +345,7 @@ sub dump_mac_info {
|
||||
$ret{$switch}->{ErrorStr} = $self->{macinfo}->{$switch}->{ErrorStr};
|
||||
|
||||
# To show the error message that the username/password related error is for SNMP only
|
||||
if ($ret{$switch}->{ErrorStr} =~ /username|password/i) {
|
||||
if ($ret{$switch}->{ErrorStr} =~ /user\s*name|password/i) {
|
||||
$ret{$switch}->{ErrorStr} .= " through SNMP";
|
||||
}
|
||||
} else {
|
||||
|
@ -2636,11 +2636,10 @@ sub gen_net_boot_params
|
||||
$net_params->{ip} = "ip=$nicname:dhcp";
|
||||
$net_params->{netdev} = "netdev=$nicname";
|
||||
$net_params->{netdevice} = "netdevice=$nicname";
|
||||
$net_params->{ifname} = "ifname=$nicname:$mac"; # todo: may not use mac arbitrary
|
||||
$net_params->{bootdev} = "bootdev=$nicname";
|
||||
} elsif ($mac) {
|
||||
$net_params->{ksdevice} = "ksdevice=$mac";
|
||||
$net_params->{BOOTIF} = "BOOTIF=$mac";
|
||||
$net_params->{bootdev} = "bootdev=$mac";
|
||||
$net_params->{ip} = "ip=dhcp";
|
||||
$net_params->{netdevice} = "netdevice=$mac";
|
||||
}
|
||||
|
@ -154,7 +154,7 @@ use xCAT::ExtTab;
|
||||
file => "The full pathname of the file. e.g: /etc/hosts. If the path is a directory, then it should be terminated with a '/'. ",
|
||||
options => "Options for the file:\n\n" .
|
||||
qq{ tmpfs - It is the default option if you leave the options column blank. It provides a file or directory for the node to use when booting, its permission will be the same as the original version on the server. In most cases, it is read-write; however, on the next statelite boot, the original version of the file or directory on the server will be used, it means it is non-persistent. This option can be performed on files and directories..\n\n} .
|
||||
qq{ rw - Same as Above.Its name "rw" does NOT mean it always be read-write, even in most cases it is read-write. Do not confuse it with the "rw" permission in the file system. \n\n} .
|
||||
qq{ rw - Same as above. Its name "rw" does NOT mean it always be read-write, even in most cases it is read-write. Do not confuse it with the "rw" permission in the file system. \n\n} .
|
||||
qq{ persistent - It provides a mounted file or directory that is copied to the xCAT persistent location and then over-mounted on the local file or directory. Anything written to that file or directory is preserved. It means, if the file/directory does not exist at first, it will be copied to the persistent location. Next time the file/directory in the persistent location will be used. The file/directory will be persistent across reboots. Its permission will be the same as the original one in the statelite location. It requires the statelite table to be filled out with a spot for persistent statelite. This option can be performed on files and directories. \n\n} .
|
||||
qq{ con - The contents of the pathname are concatenated to the contents of the existing file. For this directive the searching in the litetree hierarchy does not stop when the first match is found. All files found in the hierarchy will be concatenated to the file when found. The permission of the file will be "-rw-r--r--", which means it is read-write for the root user, but readonly for the others. It is non-persistent, when the node reboots, all changes to the file will be lost. It can only be performed on files. Do not use it for one directory.\n\n} .
|
||||
qq{ ro - The file/directory will be overmounted read-only on the local file/directory. It will be located in the directory hierarchy specified in the litetree table. Changes made to this file or directory on the server will be immediately seen in this file/directory on the node. This option requires that the file/directory to be mounted must be available in one of the entries in the litetree table. This option can be performed on files and directories.\n\n} .
|
||||
@ -169,7 +169,7 @@ qq{ link,ro - The file is readonly, and will be placed in tmpfs on the booted no
|
||||
|
||||
vmmaster => {
|
||||
|
||||
#will add columns as approriate, for now:
|
||||
#will add columns as appropriate, for now:
|
||||
#os arch profile to populate the corresponding nodetype fields of a cloned vm
|
||||
#storage to indicate where the master data is actually stored (i.e. virtual disk images)
|
||||
#storagemodel to allow chvm on a clone to be consistent with the master by default
|
||||
@ -205,7 +205,7 @@ qq{ link,ro - The file is readonly, and will be placed in tmpfs on the booted no
|
||||
'migrationdest' => 'A noderange representing candidate destinations for migration (i.e. similar systems, same SAN, or other criteria that xCAT can use',
|
||||
'storage' => 'A list of storage files or devices to be used. i.e. dir:///cluster/vm/<nodename> or nfs://<server>/path/to/folder/',
|
||||
'storagemodel' => 'Model of storage devices to provide to guest',
|
||||
'cfgstore' => 'Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistant store to place configuration data',
|
||||
'cfgstore' => 'Optional location for persistent storage separate of emulated hard drives for virtualization solutions that require persistent store to place configuration data',
|
||||
'memory' => 'Megabytes of memory the VM currently should be set to.',
|
||||
'master' => 'The name of a master image, if any, this virtual machine is linked to. This is generally set by clonevm and indicates the deletion of a master that would invalidate the storage of this virtual machine',
|
||||
'cpus' => 'Number of CPUs the node should see.',
|
||||
@ -472,7 +472,7 @@ passed as argument rather than by table value',
|
||||
descriptions => {
|
||||
node => 'The node name or group name.',
|
||||
interface => 'The adapter interface name that will be used to install and manage the node. E.g. eth0 (for linux) or en0 (for AIX).)',
|
||||
mac => 'The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:05:0F!node6-eth1").',
|
||||
mac => 'The mac address or addresses for which xCAT will manage static bindings for this node. This may be simply a mac address, which would be bound to the node name (such as "01:02:03:04:05:0E"). This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:04:05:0F!node6-eth1"). If there are multiple nics connected to Management Network(usually for bond), in order to make sure the OS deployment finished successfully, the macs of those nics must be able to resolve to same IP address. First, users have to create alias of the node for each mac in the Management Network through either: 1. adding the alias into /etc/hosts for the node directly or: 2. setting the alias to the "hostnames" attribute and then run "makehost" against the node. Then, configure the "mac" attribute of the node like "mac1!node|mac2!node-alias". For the first mac address (mac1 in the example) set in "mac" attribute, do not need to set a "node name" string for it since the nodename of the node will be used for it by default.',
|
||||
comments => 'Any user-written notes.',
|
||||
disable => "Set to 'yes' or '1' to comment out this row.",
|
||||
},
|
||||
@ -774,7 +774,8 @@ passed as argument rather than by table value',
|
||||
otherpkglist => 'The fully qualified name of the file that stores non-distro package lists that will be included in the image. It could be set to multiple paths. The multiple paths must be separated by ",".',
|
||||
otherpkgdir => 'The base directory where the non-distro packages are stored. Only 1 local directory supported at present.',
|
||||
exlist => 'The fully qualified name of the file that stores the file names and directory names that will be excluded from the image during packimage command. It is used for diskless image only.',
|
||||
postinstall => 'Only supported in diskless image only. The fully qualified name of the scripts running in non-chroot mode after the package installation but before initrd generation during genimage. If multiple scripts are specified, they should be speperated with comma ",". A set of osimage attributes are exported as the environment variables to be used in the postinstall scripts:
|
||||
postinstall => 'Supported in diskless image only. The fully qualified name of the scripts running in non-chroot mode after the package installation but before initrd generation during genimage. If multiple scripts are specified, they should be seperated with comma ",". A set of osimage attributes are exported as the environment variables to be used in the postinstall scripts:
|
||||
|
||||
IMG_ARCH(The architecture of the osimage, such as "ppc64le","x86_64"),
|
||||
IMG_NAME(The name of the osimage, such as "rhels7.3-ppc64le-netboot-compute"),
|
||||
IMG_OSVER(The os release of the osimage, such as "rhels7.3","sles11.4"),
|
||||
@ -795,8 +796,15 @@ passed as argument rather than by table value',
|
||||
permission => 'The mount permission of /.statelite directory is used, its default value is 755',
|
||||
dump => qq{The NFS directory to hold the Linux kernel dump file (vmcore) when the node with this image crashes, its format is "nfs://<nfs_server_ip>/<kdump_path>". If you want to use the node's "xcatmaster" (its SN or MN), <nfs_server_ip> can be left blank. For example, "nfs:///<kdump_path>" means the NFS directory to hold the kernel dump file is on the node's SN, or MN if there's no SN.},
|
||||
crashkernelsize => 'the size that assigned to the kdump kernel. If the kernel size is not set, 256M will be the default value.',
|
||||
partitionfile => 'The path of the configuration file which will be used to partition the disk for the node. For stateful osimages,two types of files are supported: "<partition file absolute path>" which contains a partitioning definition that will be inserted directly into the generated autoinst configuration file and must be formatted for the corresponding OS installer (e.g. kickstart for RedHat, autoyast for SLES, pressed for Ubuntu). "s:<partitioning script absolute path>" which specifies a shell script that will be run from the OS installer configuration file %pre section; the script must write the correct partitioning definition into the file /tmp/partitionfile on the node which will be included into the configuration file during the install process. For statelite osimages, partitionfile should specify "<partition file absolute path>"; see the xCAT Statelite documentation for the xCAT defined format of this configuration file.For Ubuntu, besides "<partition file absolute path>" or "s:<partitioning script absolute path>", the disk name(s) to partition must be specified in traditional, non-devfs format, delimited with space, it can be specified in 2 forms: "d:<the absolute path of the disk name file>" which contains the disk name(s) to partition and "s:d:<the absolute path of the disk script>" which runs in pressed/early_command and writes the disk names into the "/tmp/xcat.install_disk" . To support other specific partition methods such as RAID or LVM in Ubuntu, some additional preseed values should be specified, these values can be specified with "c:<the absolute path of the additional pressed config file>" which contains the additional pressed entries in "d-i ..." form and "s:c:<the absolute path of the additional pressed config script>" which runs in pressed/early_command and set the preseed values with "debconf-set". The multiple values should be delimited with comma "," ',
|
||||
driverupdatesrc => 'The source of the drivers which need to be loaded during the boot. Two types of driver update source are supported: Driver update disk and Driver rpm package. The value for this attribute should be comma separated sources. Each source should be the format tab:full_path_of_srouce_file. The tab keyword can be: dud (for Driver update disk) and rpm (for driver rpm). If missing the tab, the rpm format is the default. e.g. dud:/install/dud/dd.img,rpm:/install/rpm/d.rpm',
|
||||
partitionfile => 'Only available for diskful osimages and statelite osimages(localdisk enabled). The full path of the partition file or the script to generate the partition file. The valid value includes:
|
||||
"<the absolute path of the parititon file>": For diskful osimages, the partition file contains the partition definition that will be inserted directly into the template file for os installation. The syntax and format of the partition file should confirm to the corresponding OS installer of the Linux distributions(e.g. kickstart for RedHat, autoyast for SLES, pressed for Ubuntu). For statelite osimages, when the localdisk is enabled, the partition file with specific syntax and format includes the partition scheme of the local disk, please refer to the statelite documentation for details.
|
||||
"s:<the absolute path of the partition script>": a shell script to generate the partition file "/tmp/partitionfile" inside the installer before the installation start.
|
||||
"d:<the absolute path of the disk name file>": only available for ubuntu osimages, includes the name(s) of the disks to partition in traditional, non-devfs format(e.g, /dev/sdx, not e.g. /dev/discs/disc0/disc), and be delimited with space. All the disks involved in the partition file should be specified.
|
||||
"s:d:<the absolute path of the disk script>": only available for ubuntu osimages, a script to generate the disk name file "/tmp/xcat.install_disk" inside the debian installer. This script is run in the "pressed/early_command" section.
|
||||
"c:<the absolute path of the additional pressed config file>": only availbe for ubuntu osimages, contains the additional pressed entries in "d-i ..." form. This can be used to specify some additional preseed options to support RAID or LVM in Ubuntu.
|
||||
"s:c:<the absolute path of the additional pressed config script>": only available for ubuntu osimages, runs in pressed/early_command and set the preseed values with "debconf-set". The multiple values should be delimited with comma ","
|
||||
',
|
||||
driverupdatesrc => 'The source of the drivers which need to be loaded during the boot. Two types of driver update source are supported: Driver update disk and Driver rpm package. The value for this attribute should be comma separated sources. Each source should be the format tab:full_path_of_source_file. The tab keyword can be: dud (for Driver update disk) and rpm (for driver rpm). If missing the tab, the rpm format is the default. e.g. dud:/install/dud/dd.img,rpm:/install/rpm/d.rpm',
|
||||
comments => 'Any user-written notes.',
|
||||
disable => "Set to 'yes' or '1' to comment out this row.",
|
||||
},
|
||||
@ -824,7 +832,7 @@ passed as argument rather than by table value',
|
||||
key => 'The type of component this user/pw is for. Valid values: blade (management module), ipmi (BMC), system (nodes), omapi (DHCP), hmc, ivm, cec, frame, switch.',
|
||||
username => 'The default userid for this type of component',
|
||||
password => 'The default password for this type of component',
|
||||
cryptmethod => 'Indicates the method that was used to encrypt the password attribute. On AIX systems, if a value is provided for this attribute it indicates that the password attribute is encrypted. If the cryptmethod value is not set it indicates the password is a simple string value. On Linux systems, the cryptmethod is not supported however the code attempts to auto-discover MD5 encrypted passwords.',
|
||||
cryptmethod => 'Indicates the method that was used to encrypt the password attribute. On AIX systems, if a value is provided for this attribute it indicates that the password attribute is encrypted. If the cryptmethod value is not set it indicates the password is a simple string value. On Linux systems, the cryptmethod can be set to md5, sha256 or sha512. If not set, sha256 will be used as default.',
|
||||
authdomain => 'The domain in which this entry has meaning, e.g. specifying different domain administrators per active directory domain',
|
||||
comments => 'Any user-written notes.',
|
||||
disable => "Set to 'yes' or '1' to comment out this row.",
|
||||
@ -937,18 +945,18 @@ passed as argument rather than by table value',
|
||||
|
||||
# Do not put description text past column 88, so it displays well in a 100 char wide window.
|
||||
# ----------------------------------------------------------------------------------|----------
|
||||
key => "Attribute Name: Description\n\n" .
|
||||
" ------------\n" .
|
||||
"AIX ATTRIBUTES\n" .
|
||||
" ------------\n" .
|
||||
" nimprime : The name of NIM server, if not set default is the AIX MN.
|
||||
If Linux MN, then must be set for support of mixed cluster (TBD).\n\n" .
|
||||
key => "Attribute Name: Description\n\n" .
|
||||
" ------------\n" .
|
||||
"AIX ATTRIBUTES\n" .
|
||||
" ------------\n" .
|
||||
" nimprime : The name of NIM server, if not set default is the AIX MN.\n" .
|
||||
" If Linux MN, then must be set for support of mixed cluster (TBD).\n\n" .
|
||||
" useSSHonAIX: (yes/1 or no/0). Default is yes. The support for rsh/rcp is deprecated.\n" .
|
||||
" useNFSv4onAIX: (yes/1 or no/0). If yes, NFSv4 will be used with NIM. If no,\n" .
|
||||
" NFSv3 will be used with NIM. Default is no.\n\n" .
|
||||
" -----------------\n" .
|
||||
"DATABASE ATTRIBUTES\n" .
|
||||
" -----------------\n" .
|
||||
" NFSv3 will be used with NIM. Default is no.\n\n" .
|
||||
" -----------------\n" .
|
||||
"DATABASE ATTRIBUTES\n" .
|
||||
" -----------------\n" .
|
||||
" auditnosyslog: If set to 1, then commands will only be written to the auditlog table.\n" .
|
||||
" This attribute set to 1 and auditskipcmds=ALL means no logging of commands.\n" .
|
||||
" Default is to write to both the auditlog table and syslog.\n" .
|
||||
@ -967,21 +975,26 @@ passed as argument rather than by table value',
|
||||
" excludenodes: A set of comma separated nodes and/or groups that would automatically\n" .
|
||||
" be subtracted from any noderange, it can be used for excluding some\n" .
|
||||
" failed nodes for any xCAT commands. See the 'noderange' manpage for\n" .
|
||||
" details on supported formats.\n\n" .
|
||||
" details on supported formats.\n\n" .
|
||||
" nodestatus: If set to 'n', the nodelist.status column will not be updated during\n" .
|
||||
" the node deployment, node discovery and power operations. The default is to update.\n\n" .
|
||||
" the node deployment, node discovery and power operations. The default\n" .
|
||||
" is to update.\n\n" .
|
||||
" skiptables: Comma separated list of tables to be skipped by dumpxCATdb\n\n" .
|
||||
" skipvalidatelog: If set to 1, then getcredentials and getpostscripts calls will not be logged in syslog.\n\n" .
|
||||
" -------------\n" .
|
||||
"DHCP ATTRIBUTES\n" .
|
||||
" -------------\n" .
|
||||
" dhcpinterfaces: The network interfaces DHCP should listen on. If it is the same\n" .
|
||||
" for all nodes, use a simple comma-separated list of NICs. To\n" .
|
||||
" specify different NICs for different nodes:\n" .
|
||||
" xcatmn|eth1,eth2;service|bond0.\n" .
|
||||
" In this example xcatmn is the name of the xCAT MN, and DHCP there\n" .
|
||||
" should listen on eth1 and eth2. On all of the nodes in group\n" .
|
||||
" 'service' DHCP should listen on the bond0 nic.\n\n" .
|
||||
" skipvalidatelog: If set to 1, then getcredentials and getpostscripts calls will not \n" .
|
||||
" be logged in syslog.\n\n" .
|
||||
" -------------\n" .
|
||||
"DHCP ATTRIBUTES\n" .
|
||||
" -------------\n" .
|
||||
" dhcpinterfaces: The network interfaces DHCP should listen on. If it is the same for all\n" .
|
||||
" nodes, use a comma-separated list of the NICs. To specify different NICs\n" .
|
||||
" for different nodes, use the format: \"xcatmn|eth1,eth2;service|bond0\", \n" .
|
||||
" where xcatmn is the name of the management node, DHCP should listen on \n" .
|
||||
" the eth1 and eth2 interfaces. All the nodes in group 'service' should \n" .
|
||||
" listen on the 'bond0' interface.\n\n" .
|
||||
" To disable the genesis kernel from being sent to specific interfaces, a\n" .
|
||||
" ':noboot' option can be appended to the interface name. For example,\n" .
|
||||
" if the management node has two interfaces, eth1 and eth2, disable\n" .
|
||||
" genesis from being sent to eth1 using: \"eth1:noboot,eth2\".\n\n" .
|
||||
" dhcpsetup: If set to 'n', it will skip the dhcp setup process in the nodeset cmd.\n\n" .
|
||||
" dhcplease: The lease time for the dhcp client. The default value is 43200.\n\n" .
|
||||
" disjointdhcps: If set to '1', the .leases file on a service node only contains\n" .
|
||||
@ -993,78 +1006,77 @@ passed as argument rather than by table value',
|
||||
" If set to 'static', the network configuration will be configured \n" .
|
||||
" in static mode based on the node and network definition on MN.\n" .
|
||||
" If set to 'dhcp', the network will be configured with dhcp protocol.\n" .
|
||||
" The default is 'dhcp'.\n\n" .
|
||||
" ------------\n" .
|
||||
"DNS ATTRIBUTES\n" .
|
||||
" ------------\n" .
|
||||
" dnshandler: Name of plugin that handles DNS setup for makedns.\n" .
|
||||
" domain: The DNS domain name used for the cluster.\n\n" .
|
||||
" forwarders: The DNS servers at your site that can provide names outside of the\n" .
|
||||
" cluster. The makedns command will configure the DNS on the management\n" .
|
||||
" node to forward requests it does not know to these servers.\n" .
|
||||
" Note that the DNS servers on the service nodes will ignore this value\n" .
|
||||
" and always be configured to forward requests to the management node.\n\n" .
|
||||
" The default is 'dhcp'.\n\n" .
|
||||
" ------------\n" .
|
||||
"DNS ATTRIBUTES\n" .
|
||||
" ------------\n" .
|
||||
" dnshandler: Name of plugin that handles DNS setup for makedns.\n\n" .
|
||||
" domain: The DNS domain name used for the cluster.\n\n" .
|
||||
" forwarders: The DNS servers at your site that can provide names outside of the cluster.\n" .
|
||||
" The makedns command will configure the DNS on the management node to forward\n" .
|
||||
" requests it does not know to these servers. Note that the DNS servers on the\n" .
|
||||
" service nodes will ignore this value and always be configured to forward \n" .
|
||||
" to the management node.\n\n" .
|
||||
" master: The hostname of the xCAT management node, as known by the nodes.\n\n" .
|
||||
" nameservers: A comma delimited list of DNS servers that each node in the cluster\n" .
|
||||
" should use. This value will end up in the nameserver settings of the\n" .
|
||||
" nameservers: A comma delimited list of DNS servers that each node in the cluster should\n" .
|
||||
" use. This value will end up in the nameserver settings of the\n" .
|
||||
" /etc/resolv.conf on each node. It is common (but not required) to set\n" .
|
||||
" this attribute value to the IP addr of the xCAT management node, if\n" .
|
||||
" you have set up the DNS on the management node by running makedns.\n" .
|
||||
" In a hierarchical cluster, you can also set this attribute to\n" .
|
||||
" \"<xcatmaster>\" to mean the DNS server for each node should be the\n" .
|
||||
" node that is managing it (either its service node or the management\n" .
|
||||
" node).\n\n" .
|
||||
" node).\n\n" .
|
||||
" externaldns: To specify that external dns is used. If externaldns is set to any value\n" .
|
||||
" then, makedns command will not start the local nameserver on xCAT MN. \n" .
|
||||
" Default is to start the local nameserver.\n\n" .
|
||||
" Default is to start the local nameserver.\n\n" .
|
||||
" dnsupdaters: The value are \',\' separated string which will be added to the zone config\n" .
|
||||
" section. This is an interface for user to add configuration entries to\n" .
|
||||
" the zone sections in named.conf.\n\n" .
|
||||
" dnsinterfaces: The network interfaces DNS server should listen on. If it is the same\n" .
|
||||
" for all nodes, use a simple comma-separated list of NICs. To\n" .
|
||||
" specify different NICs for different nodes:\n" .
|
||||
" xcatmn|eth1,eth2;service|bond0.\n" .
|
||||
" In this example xcatmn is the name of the xCAT MN, and DNS there\n" .
|
||||
" should listen on eth1 and eth2. On all of the nodes in group\n" .
|
||||
" 'service' DNS should listen on the bond0 nic.\n" .
|
||||
" NOTE: if using this attribute to block certain interfaces, make sure\n" .
|
||||
" the ip maps to your hostname of xCAT MN is not blocked since xCAT needs to\n" .
|
||||
" use this ip to communicate with the local NDS server on MN.\n\n" .
|
||||
" -------------------------\n" .
|
||||
"HARDWARE CONTROL ATTRIBUTES\n" .
|
||||
" -------------------------\n" .
|
||||
" the zone sections in named.conf.\n\n" .
|
||||
" dnsinterfaces: The network interfaces DNS should listen on. If it is the same for all\n" .
|
||||
" nodes, use a simple comma-separated list of NICs. To specify different \n" .
|
||||
" NICs for different nodes, use the format: \"xcatmn|eth1,eth2;service|bond0\", \n" .
|
||||
" where xcatmn is the name of the management node, and DNS should listen on\n" .
|
||||
" the eth1 and eth2 interfaces. All the nods in group 'service' should \n" .
|
||||
" listen on the 'bond0' interface.\n\n" .
|
||||
" NOTE: If using this attribute to block certain interfaces, make sure\n" .
|
||||
" the IP maps to your hostname of xCAT MN is not blocked since xCAT needs\n" .
|
||||
" to use this IP to communicate with the local NDS server on MN.\n\n" .
|
||||
" -------------------------\n" .
|
||||
"HARDWARE CONTROL ATTRIBUTES\n" .
|
||||
" -------------------------\n" .
|
||||
" blademaxp: The maximum number of concurrent processes for blade hardware control.\n\n" .
|
||||
" ea_primary_hmc: The hostname of the HMC that the Integrated Switch Network\n" .
|
||||
" Management Event Analysis should send hardware serviceable\n" .
|
||||
" events to for processing and potentially sending to IBM.\n\n" .
|
||||
" ea_backup_hmc: The hostname of the HMC that the Integrated Switch Network\n" .
|
||||
" Management Event Analysis should send hardware serviceable\n" .
|
||||
" events to if the primary HMC is down.\n\n" .
|
||||
" events to if the primary HMC is down.\n\n" .
|
||||
" enableASMI: (yes/1 or no/0). If yes, ASMI method will be used after fsp-api. If no,\n" .
|
||||
" when fsp-api is used, ASMI method will not be used. Default is no.\n\n" .
|
||||
" fsptimeout: The timeout, in milliseconds, to use when communicating with FSPs.\n\n" .
|
||||
" hwctrldispatch: Whether or not to send hw control operations to the service\n" .
|
||||
" node of the target nodes. Default is 'y'.(At present, this attribute\n" .
|
||||
" is only used for IBM Flex System)\n\n" .
|
||||
" is only used for IBM Flex System)\n\n" .
|
||||
" ipmidispatch: Whether or not to send ipmi hw control operations to the service\n" .
|
||||
" node of the target compute nodes. Default is 'y'.\n\n" .
|
||||
" ipmimaxp: The max # of processes for ipmi hw ctrl. The default is 64. Currently,\n" .
|
||||
" this is only used for HP hw control.\n\n" .
|
||||
" this is only used for HP hw control.\n\n" .
|
||||
" ipmiretries: The # of retries to use when communicating with BMCs. Default is 3.\n\n" .
|
||||
" ipmisdrcache: If set to 'no', then the xCAT IPMI support will not cache locally\n" .
|
||||
" the target node's SDR cache to improve performance.\n\n" .
|
||||
" ipmitimeout: The timeout to use when communicating with BMCs. Default is 2.\n" .
|
||||
" This attribute is currently not used.\n\n" .
|
||||
" This attribute is currently not used.\n\n" .
|
||||
" maxssh: The max # of SSH connections at any one time to the hw ctrl point for PPC\n" .
|
||||
" This parameter doesn't take effect on the rpower command.\n" .
|
||||
" It takes effects on other PPC hardware control command\n" .
|
||||
" getmacs/rnetboot/rbootseq and so on. Default is 8.\n\n" .
|
||||
" syspowerinterval: For system p CECs, this is the number of seconds the rpower\n" .
|
||||
" command will wait between performing the action for each CEC.\n" .
|
||||
" For system x IPMI servers, this is the number of seconds the\n" .
|
||||
" rpower command will wait between powering on <syspowermaxnodes>\n" .
|
||||
" nodes at a time. This value is used to control the power on speed\n" .
|
||||
" in large clusters. Default is 0.\n\n" .
|
||||
" syspowerinterval: For SystemP CECs, this is the number of seconds the rpower command\n" .
|
||||
" will wait between performing the action for each CEC. For SystemX\n" .
|
||||
" IPMI servers, this is the number of seconds the rpower command will\n" .
|
||||
" wait between powering on <syspowermaxnodes> nodes at a time. This\n" .
|
||||
" value is used to control the power on speed in large clusters. \n" .
|
||||
" Default is 0.\n\n" .
|
||||
" syspowermaxnodes: The number of servers to power on at one time before waiting\n" .
|
||||
" 'syspowerinterval' seconds to continue on to the next set of\n" .
|
||||
" nodes. If the noderange given to rpower includes nodes served\n" .
|
||||
@ -1081,18 +1093,18 @@ passed as argument rather than by table value',
|
||||
" processes for PPC hardware control commands. Default is 64.\n\n" .
|
||||
" ppcretry: The max # of PPC hw connection attempts to HMC before failing.\n" .
|
||||
" It only takes effect on the hardware control commands through HMC. \n" .
|
||||
" Default is 3.\n\n" .
|
||||
" Default is 3.\n\n" .
|
||||
" ppctimeout: The timeout, in milliseconds, to use when communicating with PPC hw\n" .
|
||||
" through HMC. It only takes effect on the hardware control commands\n" .
|
||||
" through HMC. Default is 0.\n\n" .
|
||||
" through HMC. Default is 0.\n\n" .
|
||||
" snmpc: The snmp community string that xcat should use when communicating with the\n" .
|
||||
" switches.\n\n" .
|
||||
" ---------------------------\n" .
|
||||
"INSTALL/DEPLOYMENT ATTRIBUTES\n" .
|
||||
" ---------------------------\n" .
|
||||
" switches.\n\n" .
|
||||
" ---------------------------\n" .
|
||||
"INSTALL/DEPLOYMENT ATTRIBUTES\n" .
|
||||
" ---------------------------\n" .
|
||||
" cleanupxcatpost: (yes/1 or no/0). Set to 'yes' or '1' to clean up the /xcatpost\n" .
|
||||
" directory on the stateless and statelite nodes after the\n" .
|
||||
" postscripts are run. Default is no.\n\n" .
|
||||
" postscripts are run. Default is no.\n\n" .
|
||||
" db2installloc: The location which the service nodes should mount for\n" .
|
||||
" the db2 code to install. Format is hostname:/path. If hostname is\n" .
|
||||
" omitted, it defaults to the management node. Default is /mntdb2.\n\n" .
|
||||
@ -1100,18 +1112,18 @@ passed as argument rather than by table value',
|
||||
" defserialport: The default serial port - currently only used by mknb.\n\n" .
|
||||
" defserialspeed: The default serial speed - currently only used by mknb.\n\n" .
|
||||
" genmacprefix: When generating mac addresses automatically, use this manufacturing\n" .
|
||||
" prefix (e.g. 00:11:aa)\n\n" .
|
||||
" prefix (e.g. 00:11:aa)\n\n" .
|
||||
" genpasswords: Automatically generate random passwords for BMCs when configuring\n" .
|
||||
" them.\n\n" .
|
||||
" them.\n\n" .
|
||||
" installdir: The local directory name used to hold the node deployment packages.\n\n" .
|
||||
" installloc: The location from which the service nodes should mount the \n" .
|
||||
" deployment packages in the format hostname:/path. If hostname is\n" .
|
||||
" omitted, it defaults to the management node. The path must\n" .
|
||||
" match the path in the installdir attribute.\n\n" .
|
||||
" match the path in the installdir attribute.\n\n" .
|
||||
" iscsidir: The path to put the iscsi disks in on the mgmt node.\n\n" .
|
||||
" mnroutenames: The name of the routes to be setup on the management node.\n" .
|
||||
" It is a comma separated list of route names that are defined in the\n" .
|
||||
" routes table.\n\n" .
|
||||
" routes table.\n\n" .
|
||||
" runbootscripts: If set to 'yes' the scripts listed in the postbootscripts\n" .
|
||||
" attribute in the osimage and postscripts tables will be run during\n" .
|
||||
" each reboot of stateful (diskful) nodes. This attribute has no\n" .
|
||||
@ -1127,44 +1139,43 @@ passed as argument rather than by table value',
|
||||
" sharedtftp: Set to 0 or no, xCAT should not assume the directory\n" .
|
||||
" in tftpdir is mounted on all on Service Nodes. Default is 1/yes.\n" .
|
||||
" If value is set to a hostname, the directory in tftpdir\n" .
|
||||
" will be mounted from that hostname on the SN\n\n" .
|
||||
" sharedinstall: Indicates if a shared file system will be used for installation\n" .
|
||||
" resources. Possible values are: 'no', 'sns', or 'all'. 'no' \n" .
|
||||
" means a shared file system is not being used. 'sns' means a\n" .
|
||||
" shared filesystem is being used across all service nodes.\n" .
|
||||
" 'all' means that the management as well as the service nodes\n" .
|
||||
" are all using a common shared filesystem. The default is 'no'.\n" .
|
||||
" will be mounted from that hostname on the SN\n\n" .
|
||||
" sharedinstall: Indicates if a shared file system will be used for installation\n" .
|
||||
" resources. Possible values are: 'no', 'sns', or 'all'. 'no' \n" .
|
||||
" means a shared file system is not being used. 'sns' means a\n" .
|
||||
" shared filesystem is being used across all service nodes.\n" .
|
||||
" 'all' means that the management as well as the service nodes\n" .
|
||||
" are all using a common shared filesystem. The default is 'no'.\n\n" .
|
||||
" xcatconfdir: Where xCAT config data is (default /etc/xcat).\n\n" .
|
||||
" xcatdebugmode: the xCAT debug level. xCAT provides a batch of techniques\n" .
|
||||
" to help user debug problems while using xCAT, especially on OS provision,\n" .
|
||||
" such as collecting logs of the whole installation process and accessing\n" .
|
||||
" the installing system via ssh, etc. These techniques will be enabled\n" .
|
||||
" according to different xCAT debug levels specified by 'xcatdebugmode',\n" .
|
||||
" currently supported values:\n" .
|
||||
" '0': disable debug mode\n" .
|
||||
" '1': enable basic debug mode\n" .
|
||||
" '2': enable expert debug mode\n" .
|
||||
" currently supported values:\n" .
|
||||
" '0': disable debug mode\n" .
|
||||
" '1': enable basic debug mode\n" .
|
||||
" '2': enable expert debug mode\n" .
|
||||
" For the details on 'basic debug mode' and 'expert debug mode',\n" .
|
||||
" refer to xCAT documentation.\n\n" .
|
||||
" --------------------\n" .
|
||||
"REMOTESHELL ATTRIBUTES\n" .
|
||||
" --------------------\n" .
|
||||
" nodesyncfiledir: The directory on the node, where xdcp will rsync the files\n" .
|
||||
" refer to xCAT documentation.\n\n" .
|
||||
" --------------------\n" .
|
||||
"REMOTESHELL ATTRIBUTES\n" .
|
||||
" --------------------\n" .
|
||||
" nodesyncfiledir: The directory on the node, where xdcp will rsync the files\n\n" .
|
||||
" SNsyncfiledir: The directory on the Service Node, where xdcp will rsync the files\n" .
|
||||
" from the MN that will eventually be rsync'd to the compute nodes.\n\n" .
|
||||
" sshbetweennodes: Comma separated list of groups of compute nodes to enable passwordless root \n" .
|
||||
" ssh during install, or xdsh -K. Default is ALLGROUPS.\n" .
|
||||
" Set to NOGROUPS,if you do not wish to enabled any group of compute nodes.\n" .
|
||||
" Service Nodes are not affected by this attribute\n" .
|
||||
" they are always setup with\n" .
|
||||
" passwordless root access to nodes and other SN.\n" .
|
||||
" sshbetweennodes: Comma separated list of groups of compute nodes to enable passwordless\n" .
|
||||
" root ssh to the nodes during install or running 'xdsh -K'. The default\n" .
|
||||
" is ALLGROUPS. Set to NOGROUPS to disable.\n\n" .
|
||||
" Service Nodes are not affected by this attribute as they are always\n" .
|
||||
" configured with passwordless root access.\n" .
|
||||
" If using the zone table, this attribute in not used.\n\n" .
|
||||
" -----------------\n" .
|
||||
"SERVICES ATTRIBUTES\n" .
|
||||
" -----------------\n" .
|
||||
" -----------------\n" .
|
||||
"SERVICES ATTRIBUTES\n" .
|
||||
" -----------------\n" .
|
||||
" consoleondemand: When set to 'yes', conserver connects and creates the console\n" .
|
||||
" output only when the user opens the console. Default is no on\n" .
|
||||
" Linux, yes on AIX.\n\n" .
|
||||
" output only when the user opens the console. Default is 'no' on\n" .
|
||||
" Linux, 'yes' on AIX.\n\n" .
|
||||
" httpport: The port number that the booting/installing nodes should contact the\n" .
|
||||
" http server on the MN/SN on. It is your responsibility to configure\n" .
|
||||
" the http server to listen on that port - xCAT will not do that.\n\n" .
|
||||
@ -1174,7 +1185,7 @@ passed as argument rather than by table value',
|
||||
" For example, if the network response time is too slow, nmap may not\n" .
|
||||
" give stable output. You can increase the timeout value by specifying \n" .
|
||||
" '--min-rtt-timeout 1s'. xCAT will append the options defined here to \n" .
|
||||
" the nmap command.\n\n" .
|
||||
" the nmap command.\n\n" .
|
||||
" ntpservers: A comma delimited list of NTP servers for the service node and\n" .
|
||||
" the compute node to sync with. The keyword <xcatmaster> means that\n" .
|
||||
" the node's NTP server is the node that is managing it\n" .
|
||||
@ -1182,45 +1193,43 @@ passed as argument rather than by table value',
|
||||
" extntpservers: A comma delimited list of external NTP servers for the xCAT\n" .
|
||||
" management node to sync with. If it is empty, the NTP server\n" .
|
||||
" will use the management node's own hardware clock to calculate\n" .
|
||||
" the system date and time\n\n" .
|
||||
" svloglocal: if set to 1, syslog on the service node will not get forwarded to the\n" .
|
||||
" mgmt node.\n\n" .
|
||||
" timezone: (e.g. America/New_York)\n\n" .
|
||||
" tftpdir: tftp directory path. Default is /tftpboot\n\n" .
|
||||
" the system date and time\n\n" .
|
||||
" svloglocal: If set to 1, syslog on the service node will not get forwarded to the\n" .
|
||||
" management node.\n\n" .
|
||||
" timezone: (e.g. America/New_York)\n\n" .
|
||||
" tftpdir: The tftp directory path. Default is /tftpboot\n\n" .
|
||||
" tftpflags: The flags that used to start tftpd. Default is \'-v -l -s /tftpboot \n" .
|
||||
" -m /etc/tftpmapfile4xcat.conf\' if tftplfags is not set\n\n" .
|
||||
" useNmapfromMN: When set to yes, nodestat command should obtain the node status\n" .
|
||||
" using nmap (if available) from the management node instead of the\n" .
|
||||
" service node. This will improve the performance in a flat network.\n\n" .
|
||||
" vsftp: Default is 'n'. If set to 'y', the xcatd on the mn will automatically\n" .
|
||||
" bring up vsftpd. (You must manually install vsftpd before this.\n" .
|
||||
" This setting does not apply to the service node. For sn\n" .
|
||||
" you need to set servicenode.ftpserver=1 if you want xcatd to\n" .
|
||||
" bring up vsftpd.\n\n" .
|
||||
"FQDNfirst: Fully Qualified Domain Name first. If set to 1/yes/enable, the /etc/hosts \n" .
|
||||
" entries generated by 'makehosts' will put the FQDN before the PQDN(Partially \n" .
|
||||
" Qualified Domain Name). Otherwise, the original behavior will be performed.\n\n" .
|
||||
"hierarchicalattrs: Table attributes(e.g. postscripts, postbootscripts) that will be\n" .
|
||||
" included hierarchically. Attribute values for all the node's groups\n" .
|
||||
" will be applied to the node in the groups' order except the repeat one.\n\n" .
|
||||
" -----------------------\n" .
|
||||
"VIRTUALIZATION ATTRIBUTES\n" .
|
||||
" -----------------------\n" .
|
||||
" usexhrm: Have xCAT run its xHRM script when booting up KVM guests to set the\n" .
|
||||
" virtual network bridge up correctly.\n" .
|
||||
" vsftp: Default is 'n'. If set to 'y', xcatd on the management node will automatically\n" .
|
||||
" start vsftpd. (vsftpd must be installed by the admin). This setting does not\n" .
|
||||
" apply to service nodes. For service nodes, set servicenode.ftpserver=1.\n\n" .
|
||||
" FQDNfirst: Fully Qualified Domain Name first. If set to 1/yes/enable, the /etc/hosts \n" .
|
||||
" entries generated by 'makehosts' will put the FQDN before the PQDN(Partially \n" .
|
||||
" Qualified Domain Name). Otherwise, the original behavior will be performed.\n\n" .
|
||||
" hierarchicalattrs: Table attributes(e.g. postscripts, postbootscripts) that will be\n" .
|
||||
" included hierarchically. Attribute values for all the node's groups\n" .
|
||||
" will be applied to the node in the groups' order except the repeat one.\n\n" .
|
||||
" -----------------------\n" .
|
||||
"VIRTUALIZATION ATTRIBUTES\n" .
|
||||
" -----------------------\n" .
|
||||
" usexhrm: Have xCAT execute the xHRM script when booting up KVM guests to configure\n" .
|
||||
" the virtual network bridge.\n\n" .
|
||||
" vcenterautojoin: When set to no, the VMWare plugin will not attempt to auto remove\n" .
|
||||
" and add hypervisors while trying to perform operations. If users\n" .
|
||||
" or tasks outside of xCAT perform the joining this assures xCAT\n" .
|
||||
" will not interfere.\n\n" .
|
||||
" will not interfere.\n\n" .
|
||||
" vmwarereconfigonpower: When set to no, the VMWare plugin will make no effort to\n" .
|
||||
" push vm.cpus/vm.memory updates from xCAT to VMWare.\n\n" .
|
||||
" persistkvmguests: Keep the kvm definition on the kvm hypervisor when you power off\n" .
|
||||
" the kvm guest node. This is useful for you to manually change the \n" .
|
||||
" kvm xml definition file in virsh for debugging. Set anything means\n" .
|
||||
" enable.\n\n" .
|
||||
" --------------------\n" .
|
||||
"XCAT DAEMON ATTRIBUTES\n" .
|
||||
" --------------------\n" .
|
||||
" enable.\n\n" .
|
||||
" --------------------\n" .
|
||||
"XCAT DAEMON ATTRIBUTES\n" .
|
||||
" --------------------\n" .
|
||||
" useflowcontrol: (yes/1 or no/0). If yes, the postscript processing on each node\n" .
|
||||
" contacts xcatd on the MN/SN using a lightweight UDP packet to wait\n" .
|
||||
" until xcatd is ready to handle the requests associated with\n" .
|
||||
@ -1228,9 +1237,9 @@ passed as argument rather than by table value',
|
||||
" locking out admin interactive use. This value works with the\n" .
|
||||
" xcatmaxconnections and xcatmaxbatch attributes. Is not supported on AIX.\n" .
|
||||
" If the value is no, nodes sleep for a random time before contacting\n" .
|
||||
" xcatd, and retry. The default is no.\n" .
|
||||
" See the following document for details:\n" .
|
||||
" Hints_and_Tips_for_Large_Scale_Clusters\n\n" .
|
||||
" xcatd, and retry. The default is no.\n" .
|
||||
" See the following document for details:\n" .
|
||||
" Hints_and_Tips_for_Large_Scale_Clusters\n\n" .
|
||||
" xcatmaxconnections: Number of concurrent xCAT protocol requests before requests\n" .
|
||||
" begin queueing. This applies to both client command requests\n" .
|
||||
" and node requests, e.g. to get postscripts. Default is 64.\n\n" .
|
||||
@ -1240,7 +1249,7 @@ passed as argument rather than by table value',
|
||||
" xcatiport: The port used by xcatd to receive install status updates from nodes.\n\n" .
|
||||
" xcatlport: The port used by xcatd command log writer process to collect command output.\n\n" .
|
||||
" xcatsslversion: The ssl version by xcatd. Default is SSLv3.\n\n" .
|
||||
" xcatsslciphers: The ssl cipher by xcatd. Default is 3DES.\n\n",
|
||||
" xcatsslciphers: The ssl cipher by xcatd. Default is 3DES.\n\n",
|
||||
value => 'The value of the attribute specified in the "key" column.',
|
||||
comments => 'Any user-written notes.',
|
||||
disable => "Set to 'yes' or '1' to comment out this row.",
|
||||
|
@ -1722,6 +1722,19 @@ sub setAttribs
|
||||
@bind = ();
|
||||
$cols = "";
|
||||
my %newpairs;
|
||||
# NOTE(chenglch): Just work around, set the default value to '' due to
|
||||
# null value can not be allowed in composite primary keys in standard
|
||||
# SQL rules. As auto increment key is uesd by 'eventlog' and 'auditlog'
|
||||
# table, just skip these tables.
|
||||
if ($self->{tabname} ne "eventlog" && $self->{tabname} ne "auditlog") {
|
||||
my $descr = $xCAT::Schema::tabspec{ $self->{tabname} };
|
||||
my @pkeys = @{$descr->{keys}};
|
||||
for my $p (@pkeys) {
|
||||
if(!defined($elems->{$p}) && !defined($pKeypairs->{$p})) {
|
||||
$elems->{$p}= '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#first, merge the two structures to a single hash
|
||||
foreach (keys %keypairs)
|
||||
|
@ -32,6 +32,7 @@ else {
|
||||
use IPC::Open3;
|
||||
use IO::Select;
|
||||
use xCAT::GlobalDef;
|
||||
use Digest::MD5 qw(md5_hex);
|
||||
eval {
|
||||
require xCAT::RemoteShellExp;
|
||||
};
|
||||
@ -2394,19 +2395,21 @@ sub acquire_lock {
|
||||
use Fcntl ":flock";
|
||||
my $tlock;
|
||||
$tlock->{path} = "/var/lock/xcat/" . $lock_name;
|
||||
open($tlock->{fd}, ">", $tlock->{path}) or return undef;
|
||||
sysopen($tlock->{fd}, $tlock->{path}, POSIX::O_CREAT | POSIX::O_WRONLY) or return undef;
|
||||
unless ($tlock->{fd}) { return undef; }
|
||||
|
||||
if ($nonblock_mode) {
|
||||
flock($tlock->{fd}, LOCK_EX | LOCK_NB) or return undef;
|
||||
} else {
|
||||
flock($tlock->{fd}, LOCK_EX) or return undef;
|
||||
}
|
||||
print { $tlock->{fd} } $$;
|
||||
|
||||
truncate $tlock->{fd},0;
|
||||
syswrite $tlock->{fd} ,$$;
|
||||
$tlock->{fd}->autoflush(1);
|
||||
return $tlock;
|
||||
}
|
||||
|
||||
|
||||
#---------------------
|
||||
|
||||
=head3 release_lock
|
||||
@ -4642,7 +4645,7 @@ sub splitkcmdline {
|
||||
|
||||
my %cmdhash;
|
||||
|
||||
my @cmdlist = split(/[, ]/, $kcmdline);
|
||||
my @cmdlist = split(/[ ]/, $kcmdline);
|
||||
foreach my $cmd (@cmdlist) {
|
||||
if ($cmd =~ /^R::(.*)$/) {
|
||||
$cmdhash{persistent} .= "$1 ";
|
||||
@ -4781,4 +4784,45 @@ sub get_nmapversion {
|
||||
return $nmap_version;
|
||||
}
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------
|
||||
|
||||
=head3 acquire_lock_imageop
|
||||
acquire lock for the image related operations on specific rootimg dir
|
||||
the image related operation includes genimage,packimage,rmimage...
|
||||
Arguments:
|
||||
$rootimg_dir: the full path of osimage rootimage dir
|
||||
lock mode: 0-block, 1-non-block
|
||||
Returns:
|
||||
a list with format (<error code>, <error messgae> or <lock handler>)
|
||||
|
||||
the <error code>: 0 on success, 1 on fail
|
||||
the <error message>: available on fail
|
||||
the <lock handler>: available on success
|
||||
=cut
|
||||
|
||||
#--------------------------------------------------------------------------------
|
||||
|
||||
sub acquire_lock_imageop {
|
||||
my $self=shift;
|
||||
my $rootimg_dir=shift;
|
||||
my $NON_BLOCK=shift;
|
||||
|
||||
$NON_BLOCK=1 unless(defined $NON_BLOCK);
|
||||
my $mylockfile=Cwd::realpath($rootimg_dir);
|
||||
my $mymd5=md5_hex($mylockfile);
|
||||
$mylockfile=~s/\//./g;
|
||||
$mylockfile=$mylockfile.".".$mymd5;
|
||||
|
||||
my $lock = xCAT::Utils->acquire_lock("$mylockfile", $NON_BLOCK);
|
||||
unless ($lock){
|
||||
my $pidfd;
|
||||
open($pidfd,"<","/var/lock/xcat/$mylockfile");
|
||||
my $pid=<$pidfd>;
|
||||
close($pidfd);
|
||||
return (1, "failed to acquire lock, seems there is another genimage/packimage/rmimage process $pid running on root image dir \"$rootimg_dir\"");
|
||||
}
|
||||
return (0,$lock);
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -11,29 +11,23 @@ my $installpfx;
|
||||
|
||||
sub localize_yumrepo {
|
||||
my $self = shift;
|
||||
my $installroot = shift;
|
||||
$distname = shift;
|
||||
$arch = shift;
|
||||
|
||||
$installpfx = "$installroot/$distname/$arch";
|
||||
mkpath("$installroot/postscripts/repos/$distname/$arch/");
|
||||
open($yumrepofile, ">", "$installroot/postscripts/repos/$distname/$arch/local-repository.tmpl");
|
||||
my $pkgdir = shift;
|
||||
$distname=shift;
|
||||
$arch=shift;
|
||||
open($yumrepofile, ">", "$pkgdir/local-repository.tmpl");
|
||||
my %options = (
|
||||
wanted => \&check_tofix,
|
||||
follow_fast => 1
|
||||
);
|
||||
find(\%options, $installpfx);
|
||||
find(\%options, $pkgdir);
|
||||
close($yumrepofile);
|
||||
}
|
||||
|
||||
|
||||
sub remove_yumrepo {
|
||||
my $self = shift;
|
||||
my $installroot = shift;
|
||||
$distname = shift;
|
||||
$arch = shift;
|
||||
|
||||
rmtree("$installroot/postscripts/repos/$distname/$arch/");
|
||||
my $pkgdir = shift;
|
||||
rmtree("$pkgdir/local-repository.tmpl");
|
||||
}
|
||||
|
||||
sub check_tofix {
|
||||
@ -57,14 +51,13 @@ sub generate_repo
|
||||
my @dircomps = File::Spec->splitdir($dirlocation);
|
||||
pop(@dircomps);
|
||||
my $yumurl = File::Spec->catdir(@dircomps);
|
||||
$yumurl =~ s!$installpfx!http://#INSTSERVER#/install/$distname/$arch/!;
|
||||
my $reponame = $dircomps[$#dircomps];
|
||||
print $yumrepofile "[local-$distname-$arch-$reponame]\n";
|
||||
print $yumrepofile "name=xCAT configured yum repository for $distname/$arch/$reponame\n";
|
||||
print $yumrepofile "name=xCAT configured yum repository for $yumurl\n";
|
||||
print $yumrepofile "baseurl=$yumurl\n";
|
||||
print $yumrepofile "enabled=1\n";
|
||||
print $yumrepofile "gpgcheck=0\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub fix_directory {
|
||||
|
||||
|
@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
@ -2,14 +2,14 @@ Source: xcat-ibmhpc
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: Arif Ali <aali@ocf.co.uk>
|
||||
Build-Depends: debhelper (>= 5)
|
||||
Standards-Version: 3.7.2
|
||||
Build-Depends: debhelper (>= 9)
|
||||
Standards-Version: 3.9.4
|
||||
|
||||
Package: xcat-ibmhpc
|
||||
Architecture: all
|
||||
Depends: ${perl:Depends}, perl-xcat (>= 2.8.0), xcat-client (>= 2.8.0)
|
||||
Description: Install and configuration utilities for IBM HPC products in an xCAT cluster
|
||||
xCAT-IBMhpc provides sample installation and configuration scripts for running
|
||||
the IBM HPC software stack in an xCAT cluser. Support for the following IBM
|
||||
products is provided: GPFS, LoadLeveler, Parallel Environment, ESSL and Parallel
|
||||
Depends: ${perl:Depends}, perl-xcat (>= 2.13-snap000000000000), xcat-client (>= 2.13-snap000000000000)
|
||||
Description: Utilities for manage IBM HPC products in an xCAT cluster
|
||||
xCAT-IBMhpc provides sample installation and configuration scripts for running
|
||||
the IBM HPC software stack in an xCAT cluser. Support for the following IBM
|
||||
products is provided: GPFS, LoadLeveler, Parallel Environment, ESSL and Parallel
|
||||
ESSL libraries, some compilers (vac, xlC, xlf).
|
||||
|
@ -9,9 +9,6 @@
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DH_COMPAT=5
|
||||
|
||||
|
||||
build:
|
||||
pwd
|
||||
dh_quilt_patch
|
||||
@ -29,7 +26,6 @@ install:
|
||||
dh_install -X".svn"
|
||||
dh_link
|
||||
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
@ -39,7 +35,7 @@ binary-arch:
|
||||
pwd
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installchangelogs
|
||||
dh_installchangelogs
|
||||
dh_installdocs
|
||||
# dh_installexamples
|
||||
dh_install -X".svn"
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: Install and configuration utilities for IBM HPC products in an xCAT cluster
|
||||
Name: xCAT-IBMhpc
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: EPL
|
||||
Group: Applications/System
|
||||
@ -20,7 +20,6 @@ AutoReqProv: no
|
||||
# also need to fix Requires for AIX
|
||||
%ifos linux
|
||||
BuildArch: noarch
|
||||
#Requires:
|
||||
%endif
|
||||
|
||||
Requires: perl-xCAT >= %{epoch}:%{version}
|
||||
@ -85,7 +84,3 @@ fi
|
||||
%post
|
||||
|
||||
%preun
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1 +1 @@
|
||||
8
|
||||
9
|
||||
|
@ -2,13 +2,11 @@ Source: xcat-openstack-baremetal
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
|
||||
Build-Depends: debhelper (>= 8.0.0)
|
||||
Build-Depends: debhelper (>= 9)
|
||||
Standards-Version: 3.9.4
|
||||
Homepage: http://xcat.org
|
||||
#Vcs-Git: git://git.debian.org/collab-maint/xcat-openstack-baremetal.git
|
||||
#Vcs-Browser: http://git.debian.org/?p=collab-maint/xcat-openstack-baremetal.git;a=summary
|
||||
Homepage: https://xcat.org/
|
||||
|
||||
Package: xcat-openstack-baremetal
|
||||
Architecture: all
|
||||
Depends: xcat-client
|
||||
Description: Executables and data of the xCAT baremetal driver for OpenStack
|
||||
Description: Executables and data of xCAT baremetal driver for OpenStack
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: Executables and data of the xCAT baremetal driver for OpenStack
|
||||
Name: xCAT-OpenStack-baremetal
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: IBM
|
||||
Group: Applications/System
|
||||
|
@ -1 +1 @@
|
||||
8
|
||||
9
|
||||
|
@ -2,13 +2,13 @@ Source: xcat-openstack
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
|
||||
Build-Depends: debhelper (>= 8.0.0)
|
||||
Standards-Version: 3.9.2
|
||||
#Vcs-Git: git://git.debian.org/collab-maint/xcat-openstack.git
|
||||
#Vcs-Browser: http://git.debian.org/?p=collab-maint/xcat-openstack.git;a=summary
|
||||
Build-Depends: debhelper (>= 9)
|
||||
Standards-Version: 3.9.4
|
||||
|
||||
Package: xcat-openstack
|
||||
Architecture: all
|
||||
Depends: xcat
|
||||
Description: Meta-Metapackage for a common, default xCAT management node setup with OpenStack
|
||||
xCAT-OpenStack is an xCAT management node package intended for at-scale management with OpenStack, including hardware management and software management.
|
||||
Description: Metapackage for a xCAT management node setup with OpenStack
|
||||
xCAT-OpenStack is an xCAT management node package intended for at-scale
|
||||
management with OpenStack, including hardware management and software
|
||||
management.
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: Meta-Metapackage for a common, default xCAT management node setup with OpenStack
|
||||
Summary: Meta-Metapackage for a common, default xCAT management node setup with OpenStack
|
||||
Name: xCAT-OpenStack
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
License: EPL
|
||||
Group: Applications/System
|
||||
Vendor: IBM Corp.
|
||||
@ -16,8 +16,8 @@ Provides: xCAT-OpenStack = %{version}
|
||||
Requires: xCAT
|
||||
|
||||
%description
|
||||
xCAT-OpenStack is an xCAT management node package intended for at-scale
|
||||
management with OpenStack, including hardware management and software
|
||||
xCAT-OpenStack is an xCAT management node package intended for at-scale
|
||||
management with OpenStack, including hardware management and software
|
||||
management.
|
||||
|
||||
%prep
|
||||
@ -28,7 +28,6 @@ management.
|
||||
# Then convert the pods to man pages and html pages.
|
||||
./db2man
|
||||
|
||||
|
||||
%install
|
||||
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_schema
|
||||
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin
|
||||
@ -89,9 +88,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%ifos linux
|
||||
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
|
||||
if [ -f $RPM_INSTALL_PREFIX0/sbin/xcatd ]; then
|
||||
/etc/init.d/xcatd restart
|
||||
/etc/init.d/xcatd restart
|
||||
fi
|
||||
fi
|
||||
%endif
|
||||
exit 0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: Utilities to make xCAT work in a SoftLayer environment
|
||||
Name: xCAT-SoftLayer
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: EPL
|
||||
Group: Applications/System
|
||||
|
@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
@ -2,11 +2,12 @@ Source: xcat-ui
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
|
||||
Build-Depends: debhelper (>= 5)
|
||||
Standards-Version: 3.7.2
|
||||
Build-Depends: debhelper (>= 9)
|
||||
Standards-Version: 3.9.4
|
||||
|
||||
Package: xcat-ui
|
||||
Architecture: all
|
||||
Depends: ${perl:Depends}, python (>= 2.3), apache2, libapache2-mod-php5
|
||||
Description: Provides a browser-based interface for xCAT (extreme Cluster Administration Tool).
|
||||
Provides a browser-based interface for xCAT (extreme Cluster Administration Tool).
|
||||
Depends: ${perl:Depends}, python (>= 2.3), apache2, libapache2-mod-php
|
||||
Description: Provides a browser-based interface for xCAT
|
||||
Provides a browser-based interface for xCAT (extreme Cluster Administration
|
||||
Tool).
|
||||
|
@ -9,9 +9,6 @@
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DH_COMPAT=5
|
||||
|
||||
|
||||
build:
|
||||
pwd
|
||||
|
||||
@ -38,7 +35,7 @@ binary-arch:
|
||||
pwd
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installchangelogs
|
||||
dh_installchangelogs
|
||||
dh_installdocs
|
||||
# dh_installexamples
|
||||
dh_install -X".svn"
|
||||
|
@ -1,12 +1,12 @@
|
||||
Summary: Web Client for xCAT 2
|
||||
Name: xCAT-UI
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
License: EPL
|
||||
Group: Applications/System
|
||||
URL: http://xcat.org
|
||||
URL: https://xcat.org/
|
||||
Packager: IBM
|
||||
Vendor: IBM
|
||||
Vendor: IBM Corp.
|
||||
|
||||
Source: xCAT-UI-%{version}.tar.gz
|
||||
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
|
||||
|
@ -1390,12 +1390,16 @@ sub validate_bldkitconf
|
||||
$full_kitname .= '-' . $::bldkit_config->{kit}{entries}[0]->{osmajorversion};
|
||||
}
|
||||
if (defined($::bldkit_config->{kit}{entries}[0]->{osminorversion})) {
|
||||
my $kitminor = $::bldkit_config->{kit}{entries}[0]->{osminorversion};
|
||||
unless ($kitminor =~ /^\d/) {
|
||||
$kitminor = split /<=|>=|==|<|>|=/, $::bldkit_config->{kit}{entries}[0]->{osminorversion};
|
||||
}
|
||||
if ((!defined($::bldkit_config->{kit}{entries}[0]->{osbasename})) ||
|
||||
(!defined($::bldkit_config->{kit}{entries}[0]->{osmajorversion}))) {
|
||||
print "Error: Kit osminorversion attribute was specified but either Kit osbasename or Kit osmajorversion were not set. \n";
|
||||
return 1;
|
||||
}
|
||||
$full_kitname .= '-' . $::bldkit_config->{kit}{entries}[0]->{osminorversion};
|
||||
$full_kitname .= '-' . $kitminor;
|
||||
}
|
||||
if (defined($::bldkit_config->{kit}{entries}[0]->{osarch})) {
|
||||
$full_kitname .= '-' . $::bldkit_config->{kit}{entries}[0]->{osarch};
|
||||
@ -1500,12 +1504,17 @@ sub validate_bldkitconf
|
||||
}
|
||||
$reponame .= '-' . $kr->{osmajorversion};
|
||||
if (defined($kr->{osminorversion})) {
|
||||
my $krminor = $kr->{osminorversion};
|
||||
unless ($krminor =~ /^\d/) {
|
||||
$krminor = split /<=|>=|==|<|>|=/, $kr->{osminorversion};
|
||||
}
|
||||
if ((defined($::bldkit_config->{kit}{entries}[0]->{osminorversion})) &&
|
||||
($::bldkit_config->{kit}{entries}[0]->{osminorversion} ne
|
||||
$kr->{osminorversion})) {
|
||||
print "Warning: Kit osminorversion is set to \"$::bldkit_config->{kit}{entries}[0]->{osminorversion}\", but this does not match kitrepo $kr->{kitrepoid} osminorversion \"$kr->{osminorversion}\". Processing will continue, but verify that you do not have an error in your buildkit configuration file. \n";
|
||||
}
|
||||
$reponame .= '.' . $kr->{osminorversion};
|
||||
$reponame .= '.' . $krminor;
|
||||
$::bldkit_config->{kit}{entries}[0]->{osminorversion} = $krminor;
|
||||
}
|
||||
if ((defined($::bldkit_config->{kit}{entries}[0]->{osarch})) &&
|
||||
($::bldkit_config->{kit}{entries}[0]->{osarch} ne
|
||||
@ -1549,7 +1558,11 @@ sub validate_bldkitconf
|
||||
$compname .= '-' . $repo{osbasename};
|
||||
$compname .= '-' . $repo{osmajorversion};
|
||||
if (defined($repo{osminorversion})) {
|
||||
$compname .= '.' . $repo{osminorversion};
|
||||
my $minorversion = $repo{osminorversion};
|
||||
unless ($minorversion =~ /^\d/) {
|
||||
$minorversion = split /<=|>=|==|<|>|=/, $repo{osminorversion};
|
||||
}
|
||||
$compname .= '.' . $minorversion;
|
||||
}
|
||||
$compname .= '-' . $repo{osarch};
|
||||
$kc->{kitcompname} = $compname;
|
||||
@ -1931,8 +1944,13 @@ sub validate_os
|
||||
}
|
||||
$osinfo =~ s/\,//;
|
||||
my $repo_osinfo = "$repo->{osbasename}$repo->{osmajorversion}";
|
||||
my $minorversion;
|
||||
if (defined($repo->{osminorversion})) {
|
||||
$repo_osinfo .= ".$repo->{osminorversion}";
|
||||
$minorversion = $repo->{osminorversion};
|
||||
unless ($minorversion =~ /^\d/) {
|
||||
$minorversion = split /<=|>=|==|<|>|=/, $repo->{osminorversion};
|
||||
}
|
||||
$repo_osinfo .= ".$minorversion";
|
||||
}
|
||||
$repo_osinfo .= "-$repo->{osarch} ";
|
||||
my $mismatch_msg = "The local host is running $osinfo-$osarch. This does not match the Kit Repository \"$repo->{kitrepoid}\" data: $repo_osinfo";
|
||||
@ -1968,7 +1986,7 @@ sub validate_os
|
||||
return 1;
|
||||
}
|
||||
if (defined($repo->{osminorversion})) {
|
||||
if (($repo->{osminorversion} ne $osminorversion) &&
|
||||
if (($minorversion ne $osminorversion) &&
|
||||
(!$compat_match)) {
|
||||
print "$mismatch_msg \n";
|
||||
if ($::VERBOSE) {
|
||||
@ -3411,6 +3429,7 @@ sub kit_addpkgs
|
||||
# - could be list of pkgdir s
|
||||
my @pkgdirlist = split(",", $::PKGDIR);
|
||||
|
||||
print "$tmpdir_base\n";
|
||||
# Cleanup - should have been removed when last command ran
|
||||
# - but just in case
|
||||
system("rm -Rf $tmpdir_base");
|
||||
|
@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
@ -1,11 +1,11 @@
|
||||
Source: xcat-buildkit
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: xu qing <qxuqxu@cn.ibm.com>
|
||||
Build-Depends: debhelper (>= 5)
|
||||
Standards-Version: 3.7.2
|
||||
Maintainer: Xu Qing <qxuqxu@cn.ibm.com>
|
||||
Build-Depends: debhelper (>= 9)
|
||||
Standards-Version: 3.9.4
|
||||
|
||||
Package: xcat-buildkit
|
||||
Architecture: all
|
||||
Depends: dpkg-dev, devscripts, debhelper
|
||||
Description: xCAT-buildkit provides the buildkit tool and sample kit files to build an xCAT kit.
|
||||
Description: Provides build tools and sample files to build an xCAT kit
|
||||
|
@ -9,9 +9,6 @@
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DH_COMPAT=5
|
||||
|
||||
|
||||
build:
|
||||
pwd
|
||||
mkdir -p share/man/man1
|
||||
@ -40,7 +37,6 @@ install:
|
||||
find debian/xcat-buildkit/opt/xcat/share/doc/packages/xCAT-buildkit -type f -exec chmod 644 {} \;
|
||||
dh_link
|
||||
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
dh_installchangelogs
|
||||
|
@ -14,7 +14,6 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
|
||||
|
||||
%ifos linux
|
||||
BuildArch: noarch
|
||||
#Requires:
|
||||
%endif
|
||||
|
||||
Provides: pkg2 = %{epoch}:%{version}
|
||||
|
@ -14,7 +14,6 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
|
||||
|
||||
%ifos linux
|
||||
BuildArch: noarch
|
||||
#Requires:
|
||||
%endif
|
||||
|
||||
Provides: pkg3 = %{epoch}:%{version}
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: xCAT buildkit tools and sample kit
|
||||
Name: xCAT-buildkit
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: EPL
|
||||
Group: Applications/System
|
||||
@ -20,15 +20,12 @@ AutoReqProv: no
|
||||
# also need to fix Requires for AIX
|
||||
%ifos linux
|
||||
BuildArch: noarch
|
||||
#Requires:
|
||||
%endif
|
||||
|
||||
# No dependencies on any other xCAT rpms
|
||||
# so that this rpm can be installed in a separate build server
|
||||
Requires: /usr/bin/rpmbuild
|
||||
|
||||
Provides: xCAT-buildkit = %{epoch}:%{version}
|
||||
|
||||
%description
|
||||
xCAT-buildkit provides the buildkit tool and sample kit files to build an xCAT kit.
|
||||
|
||||
@ -41,8 +38,6 @@ mkdir -p share/doc/man1
|
||||
pod2man pods/man1/buildkit.1.pod > share/man/man1/buildkit.1
|
||||
pod2html pods/man1/buildkit.1.pod > share/doc/man1/buildkit.1.html
|
||||
|
||||
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/kits
|
||||
@ -57,7 +52,6 @@ chmod 444 $RPM_BUILD_ROOT/%{prefix}/share/man/man1/*
|
||||
cp share/doc/man1/* $RPM_BUILD_ROOT/%{prefix}/share/doc/man1
|
||||
chmod 644 $RPM_BUILD_ROOT/%{prefix}/share/doc/man1/*
|
||||
|
||||
|
||||
%ifos linux
|
||||
cp -aR share/xcat/kits/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/kits/
|
||||
#chmod -R 644 $RPM_BUILD_ROOT/%{prefix}/share/xcat/kits/*
|
||||
@ -110,7 +104,3 @@ fi
|
||||
%post
|
||||
|
||||
%preun
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -165,12 +165,8 @@ if ($::linuxos == "sles12") {
|
||||
close($relfile);
|
||||
chomp(@lines);
|
||||
|
||||
# if == 12.1
|
||||
if (grep /VERSION_ID="12.1"/, @lines) {
|
||||
|
||||
#$::linuxos == "sles12.1";
|
||||
$sp1flag = 1;
|
||||
}
|
||||
# for sles12.x
|
||||
$sp1flag = 1;
|
||||
}
|
||||
|
||||
# set flag
|
||||
|
@ -10,6 +10,9 @@ use xCAT::MsgUtils;
|
||||
use xCAT::DSHCLI;
|
||||
use locale;
|
||||
use Getopt::Std;
|
||||
|
||||
eval "use Sort::Versions qw/versioncmp/; 1;" or *versioncmp = sub ($$) { ($a,$b)= @_ ; return $a cmp $b };
|
||||
|
||||
#####################################################################
|
||||
# #
|
||||
# Module: xdshbak #
|
||||
@ -21,6 +24,7 @@ use Getopt::Std;
|
||||
# output from multiple nodes preceded by the hostname #
|
||||
# #
|
||||
# Inputs: #
|
||||
# -b : bare output, don't prepend hostname per line. only with -x #
|
||||
# -c : list distinct output only once #
|
||||
# -h : usage #
|
||||
# -x : omit extra header output for each node. #
|
||||
@ -50,7 +54,7 @@ $::dsh_command = 'xdshbak';
|
||||
#
|
||||
# Process the command line...
|
||||
#
|
||||
if (!getopts('cxhq'))
|
||||
if (!getopts('bcxhq'))
|
||||
{ # Gather options; if errors
|
||||
&d_syntax;
|
||||
exit(-1);
|
||||
@ -68,6 +72,11 @@ if ($::opt_c && $::opt_x)
|
||||
exit(-1);
|
||||
} # these 2 options are mutually exclusive
|
||||
|
||||
if ($::opt_b && !($::opt_x)) {
|
||||
&d_syntax;
|
||||
exit(-1);
|
||||
} # -b only makes sense with -x
|
||||
|
||||
if ($::opt_c)
|
||||
{
|
||||
$compress++;
|
||||
@ -110,8 +119,7 @@ while (<STDIN>)
|
||||
#
|
||||
$num_lines++;
|
||||
if (!($quiet)) {
|
||||
if ($::opt_x) { $num_lines % 100 == 0 && print STDOUT "."; }
|
||||
else { $num_lines % 1000 == 0 && print STDOUT "."; }
|
||||
$num_lines % 1000 == 0 && print STDOUT ".";
|
||||
}
|
||||
if (/: /)
|
||||
{
|
||||
@ -170,7 +178,7 @@ while (<STDIN>)
|
||||
# The hostnames are sorted alphabetically
|
||||
#
|
||||
|
||||
$num_lines > 999 && print STDOUT "\n";
|
||||
!($quiet) && $num_lines > 999 && print STDOUT "\n";
|
||||
if ($compress)
|
||||
{
|
||||
if ($long_ln eq $prev_ln)
|
||||
@ -199,14 +207,15 @@ else
|
||||
|
||||
sub d_syntax
|
||||
{
|
||||
my $usage1 = "Usage: xdshbak [-c | -x | -h | -q] \n";
|
||||
my $usage2 =
|
||||
"-c : compresses the output by listing unique output only once.\n";
|
||||
my $usage3 = "-h : help \n";
|
||||
my $usage4 =
|
||||
"-x : omit extra header output for each node. Can not be used with -c. \n";
|
||||
my $usage5 = "-q : quiet mode.\n";
|
||||
my $usage = $usage1 .= $usage2 .= $usage3 .= $usage4 .= $usage5;
|
||||
# Duplicates POD - pod2usage ?
|
||||
my @usage;
|
||||
push @usage, "Usage: xdshbak [-c | -x [-b] | -h | -q]";
|
||||
push @usage, " -b : bare output, don't prepend hostname per line. only with -x";
|
||||
push @usage, " -c : compresses the output by listing unique output only once.";
|
||||
push @usage, " -h : help";
|
||||
push @usage, " -x : omit extra header output for each node. Can not be used with -c.";
|
||||
push @usage, " -q : quiet mode.";
|
||||
my $usage = join "\n", @usage;
|
||||
xCAT::MsgUtils->message("I", $usage);
|
||||
|
||||
}
|
||||
@ -232,17 +241,25 @@ sub print_list
|
||||
|
||||
local (@lines, $numhosts, $hn_string, $l_string);
|
||||
|
||||
foreach $hostname (sort @hs)
|
||||
foreach $hostname (sort { versioncmp($a, $b) } @hs)
|
||||
{
|
||||
if (!$::opt_x) { ($num_hosts >= 1) && print "\n"; }
|
||||
$num_hosts++;
|
||||
|
||||
if ($::opt_x) { print "$hostname: $ls{$hostname}"; }
|
||||
if ($::opt_x) {
|
||||
if ($::opt_b) {
|
||||
# Bare output
|
||||
print $ls{$hostname};
|
||||
} else {
|
||||
# No header. hostname prepended on every line
|
||||
map { print "$hostname: $_\n" } split(/\n/, $ls{$hostname});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
#$hn_string = `$SPMSG DSH $MSGCAT INFO510 'HOST: %1\$s\n' $hostname`;
|
||||
xCAT::MsgUtils->message("I", "HOST:$hostname\n");
|
||||
xCAT::MsgUtils->message("I", "HOST:$hostname");
|
||||
|
||||
printf '%.' . (6 + length($hostname)) . "s\n",
|
||||
'---------------------------------------------------------------';
|
||||
@ -296,16 +313,15 @@ sub print_tree
|
||||
($num_hosts >= 1) && print "\n";
|
||||
$num_hosts++;
|
||||
@wc = split(/:/, $hdr{$index});
|
||||
@wc = sort(@wc);
|
||||
@wc = sort { versioncmp($a, $b) } @wc;
|
||||
|
||||
#system "$SPMSG DSH $MSGCAT INFO511 'HOSTS '";
|
||||
xCAT::MsgUtils->message("I", "HOSTS:");
|
||||
|
||||
print
|
||||
"-------------------------------------------------------------------------\n";
|
||||
xCAT::MsgUtils->message("I",
|
||||
"HOSTS -------------------------------------------------------------------------"
|
||||
);
|
||||
&display_wc;
|
||||
print
|
||||
"-------------------------------------------------------------------------------\n";
|
||||
"-------------------------------------------------------------------------------\n";
|
||||
print $str{$index};
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
@ -2,11 +2,14 @@ Source: xcat-client
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
|
||||
Build-Depends: debhelper (>= 5)
|
||||
Standards-Version: 3.7.2
|
||||
Build-Depends: debhelper (>= 9)
|
||||
Standards-Version: 3.9.4
|
||||
|
||||
Package: xcat-client
|
||||
Architecture: all
|
||||
Depends: ${perl:Depends}, nmap, perl-xcat
|
||||
Depends: ${perl:Depends}, perl-xcat (>= 2.13-snap000000000000)
|
||||
Recommends: libsort-versions-perl, nmap
|
||||
Description: Core executables and data of the xCAT management project
|
||||
xCAT-client provides the fundamental xCAT commands (chtab, chnode, rpower, etc) helpful in administrating systems at scale, with particular attention paid to large HPC clusters.
|
||||
xCAT-client provides the fundamental xCAT commands (chtab, chnode, rpower,
|
||||
etc) helpful in administrating systems at scale, with particular attention
|
||||
paid to large HPC clusters.
|
||||
|
@ -9,9 +9,6 @@
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DH_COMPAT=5
|
||||
|
||||
|
||||
build:
|
||||
pwd
|
||||
./xpod2man
|
||||
@ -29,7 +26,6 @@ install:
|
||||
dh_install -X".svn"
|
||||
dh_link
|
||||
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
@ -39,7 +35,7 @@ binary-arch:
|
||||
pwd
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installchangelogs
|
||||
dh_installchangelogs
|
||||
dh_installdocs
|
||||
# dh_installexamples
|
||||
dh_install -X".svn"
|
||||
|
@ -24,7 +24,7 @@ B<rflash> I<noderange> I<http directory>
|
||||
|
||||
=head2 OpenPOWER BMC specific:
|
||||
|
||||
B<rflash> I<noderange> I<hpm file path> [B<-c>|B<--check>]
|
||||
B<rflash> I<noderange> I<hpm file path> [B<-c>|B<--check>] [B<-V>]
|
||||
|
||||
=head1 B<Description>
|
||||
|
||||
@ -159,6 +159,10 @@ To update the firmware on OpenPOWER machine specify the node name and the file p
|
||||
|
||||
rflash fs3 /firmware/8335_810.1543.20151021b_update.hpm
|
||||
|
||||
Print verbose message to rflash log file per node when updading firmware:
|
||||
|
||||
rflash fs3 /firmware/8335_810.1543.20151021b_update.hpm -V
|
||||
|
||||
=back
|
||||
|
||||
=head1 B<Location>
|
||||
|
@ -4,7 +4,7 @@ B<xdshbak> - Formats the output of the B<xdsh> command.
|
||||
|
||||
=head1 B<SYNOPSIS>
|
||||
|
||||
B<xdshbak> [B<-c> | B<-x> | B<-h> | B<-q>]
|
||||
B<xdshbak> [B<-c> | B<-x> [ B<-b> ] | B<-h> | B<-q>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@ -62,6 +62,9 @@ the output by hostname for easier viewing:
|
||||
.
|
||||
.
|
||||
|
||||
If the B<-b> flag is specified in addition to B<-x>, the hostname at the beginning
|
||||
of each line is stripped.
|
||||
|
||||
=head2 Standard Error
|
||||
|
||||
When the B<xdshbak> filter is used and standard error messages are generated,
|
||||
@ -72,6 +75,11 @@ output messages. This is true with and without the B<-c> flag.
|
||||
|
||||
=over 6
|
||||
|
||||
=item B<-b>
|
||||
|
||||
Strip the host prefix from the beginning of the lines. This only
|
||||
works with the B<-x> option.
|
||||
|
||||
=item B<-c>
|
||||
|
||||
If the output from multiple nodes is identical it will be collapsed
|
||||
|
@ -10,9 +10,9 @@ B<copycds-cdrom> I<[copycds options]> I<[drive]>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
B<copycds-cdrom> is a wrapper scripts for copycds to copy from physical CD/DVD-ROM drives located on the management server.
|
||||
B<copycds-cdrom> is a wrapper scripts for B<copycds> to copy from physical CD/DVD-ROM drives located on the management server.
|
||||
|
||||
I<[copycds options]> are passed unmolested to copycds.
|
||||
I<[copycds options]> are passed unchanged to copycds.
|
||||
|
||||
If I<[drive]> is not specified, /dev/cdrom is assumed.
|
||||
|
||||
|
@ -12,11 +12,11 @@ B<copycds> [B<-h>|B<--help>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<copycds> command copies all contents of Distribution DVDs/ISOs or Service Pack DVDs/ISOs to a destination directory. The destination directory can be specified by the -p option. If no path is specified, the default destination directory will be formed from the B<installdir> site attribute and the distro name and architecture, for example: /install/rhels6.3/x86_64. The B<copycds> command can copy from one or more ISO files, or the CD/DVD device path.
|
||||
The B<copycds> command copies all contents of Distribution DVDs/ISOs or Service Pack DVDs/ISOs to a destination directory. The destination directory can be specified by the B<-p> option. If no path is specified, the default destination directory will be formed from the B<installdir> site table attribute, distro name and architecture, for example: /install/rhels6.3/x86_64. The B<copycds> command can copy from one or more ISO files, or the CD/DVD device path.
|
||||
|
||||
You can specify B<-i> or B<--inspection> option to check whether the DVDs/ISOs can be recognized by xCAT. If recognized, the distribution name, architecture and the disc no (the disc sequence number of DVDs/ISOs in multi-disk distribution) of the DVD/ISO is displayed. If xCAT doesn't recognize the DVD/ISO, you must manually specify the distro name and architecture using the -n and -a options. This is sometimes the case for distros that have very recently been released, and the xCAT code hasn't been updated for it yet.
|
||||
You can specify B<-i> or B<--inspection> option to check whether the DVDs/ISOs can be recognized by xCAT. If recognized, the distribution name, architecture and the disc no (the disc sequence number of DVDs/ISOs in multi-disk distribution) of the DVD/ISO is displayed. If xCAT doesn't recognize the DVD/ISO, you must manually specify the distro name and architecture using the B<-n> and B<-a> options. This is sometimes the case for distros that have very recently been released, and the xCAT code hasn't been updated for it yet.
|
||||
|
||||
You can get xCAT to recognize new DVDs/ISOs by adding them to /opt/xcat/lib/perl/xCAT/data/discinfo.pm and reloading xcatd (service xcatd reload).
|
||||
You can get xCAT to recognize new DVDs/ISOs by adding them to /opt/xcat/lib/perl/xCAT/data/discinfo.pm (the key of the hash is the first line of .discinfo) and reloading xcatd (B<service xcatd reload>).
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
@ -28,23 +28,23 @@ The linux distro name and version that the ISO/DVD contains. Examples: rhels6.
|
||||
|
||||
=item B<-a|--arch>=I<architecture>
|
||||
|
||||
The architecture of the linux distro on the ISO/DVD. Examples: x86, x86_64, ppc64, s390x.
|
||||
The architecture of the linux distro on the ISO/DVD. Examples: x86, x86_64, ppc64, s390x.
|
||||
|
||||
=item B<-p|--path>=I<ospkgpath>
|
||||
|
||||
The destination directory to which the contents of ISO/DVD will be copied. When this option is not specified, the default destination directory will be formed from the B<installdir> site attribute and the distro name and architecture, for example: /install/rhel6.3/x86_64. This option is only supported distributions of sles,redhat and windows.
|
||||
The destination directory to which the contents of ISO/DVD will be copied. When this option is not specified, the default destination directory will be formed from the B<installdir> site table attribute and the distro name and architecture, for example: /install/rhel6.3/x86_64. This option is only supported for distributions of sles, redhat and windows.
|
||||
|
||||
=item B<-i|--inspection>
|
||||
|
||||
Check whether xCAT can recognize the DVDs/ISOs in the argument list, but do not copy the disc. Displays the os distribution name, architecture and disc no of each recognized DVD/ISO. This option only supported for distributions of sles,redhat and windows.
|
||||
Check whether xCAT can recognize the DVDs/ISOs in the argument list, but do not copy the disc. Displays the os distribution name, architecture and disc no of each recognized DVD/ISO. This option is only supported for distributions of sles, redhat and windows.
|
||||
|
||||
=item B<-o|--noosimage>
|
||||
|
||||
Do not create the default osimages based on the osdistro copied in. By default, copycds will create a set of osimages based on the osdistro.
|
||||
Do not create the default osimages based on the osdistro copied in. By default, B<copycds> will create a set of osimages based on the osdistro.
|
||||
|
||||
=item B<-w|--nonoverwrite>
|
||||
|
||||
Complain and exit if the os disc has already been copied in. By default, copycds will overwrite the os disc already copied in.
|
||||
Complain and exit if the os disc has already been copied in. By default, B<copycds> will overwrite the os disc already copied in.
|
||||
|
||||
=back
|
||||
|
||||
@ -90,7 +90,7 @@ For the attributes that are not recognized, the value will be blank.
|
||||
=item 5.
|
||||
To copy the packages from a supplemental DVD ISO file:
|
||||
|
||||
copycds -n /isodir/RHEL6.5/RHEL6.5-Supplementary-20131114.2-Server-ppc64-DVD1.iso -n rhels6.5-supp
|
||||
copycds /isodir/RHEL6.5/RHEL6.5-Supplementary-20131114.2-Server-ppc64-DVD1.iso -n rhels6.5-supp
|
||||
|
||||
Also, remember to add the new directory to your osimage definition:
|
||||
|
||||
|
@ -4,7 +4,7 @@ B<makeconservercf> - creates the conserver configuration file from info in the x
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<makeconservercf> [B<-V|--verbose>] [B<-d|--delete>] I<noderange>
|
||||
B<makeconservercf> [B<-V|--verbose>] [B<-d|--delete>] [I<noderange>]
|
||||
|
||||
B<makeconservercf> [B<-V|--verbose>] [B<-l|--local>] [I<noderange>]
|
||||
|
||||
@ -18,14 +18,16 @@ B<makeconservercf> [B<-h|--help|-v|--version>]
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<makeconservercf> command will write out the /etc/conserver.cf, using information from the nodehm table
|
||||
and related tables (e.g. mp, ipmi, ppc). Normally, B<makeconservercf> will write all nodes to the conserver.cf
|
||||
file. If a noderange is specified, it will write on those nodes to the file. In either case, if a node
|
||||
and related tables (e.g. mp, ipmi, ppc). Normally, B<makeconservercf> will write all nodes to the /etc/conserver.cf
|
||||
file. If a I<noderange> is specified, it will write only those nodes to the file. In either case, if a node
|
||||
does not have nodehm.cons set, it will not be written to the file.
|
||||
|
||||
If B<-d> is specified, B<makeconservercf> will remove specified nodes from /etc/conserver.cf file. If I<noderange> is not specified, all xCAT nodes will be removed from /etc/conserver.cf file.
|
||||
|
||||
In the case of a hierarchical cluster (i.e. one with service nodes) B<makeconservercf> will determine
|
||||
which nodes will have their consoles accessed from the management node and which from a service node
|
||||
(based on the nodehm.conserver attribute). The /etc/conserver.cf file will be created accordingly on
|
||||
all relevant management/service nodes. If -l is specified, it will only create the local file.
|
||||
all relevant management/service nodes. If B<-l> is specified, it will only create the local file.
|
||||
|
||||
|
||||
=head1 OPTIONS
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: Core executables and data of the xCAT management project
|
||||
Name: xCAT-client
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: EPL
|
||||
Group: Applications/System
|
||||
@ -21,15 +21,13 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
|
||||
BuildArch: noarch
|
||||
%endif
|
||||
|
||||
Provides: xCAT-client = %{epoch}:%{version}
|
||||
|
||||
Requires: perl-xCAT >= %{epoch}:%{version}
|
||||
Requires: perl-xCAT = 4:%{version}-%{release}
|
||||
|
||||
# fping or nmap is needed by pping (in case xCAT-client is installed by itself on a remote client)
|
||||
%ifos linux
|
||||
Requires: nmap perl-XML-Simple perl-XML-Parser
|
||||
%else
|
||||
Requires: expat
|
||||
Requires: expat
|
||||
%endif
|
||||
|
||||
%description
|
||||
@ -355,4 +353,3 @@ if [ $1 == 0 ]; then #This means only on -e
|
||||
rm -f /etc/profile.d/xcat.*
|
||||
fi
|
||||
%endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: xCAT integration with confluent systems management server
|
||||
Name: xCAT-confluent
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: EPL
|
||||
Group: Applications/System
|
||||
|
@ -1 +0,0 @@
|
||||
#example postscript for CSM
|
15
xCAT-csm/install/postscripts/ibm-csm-aggregator
Normal file
15
xCAT-csm/install/postscripts/ibm-csm-aggregator
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# IBM(c) 2016 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
#(C)IBM Corp
|
||||
# Sample Aggregator postscript.
|
||||
|
||||
|
||||
# Configuration locations.
|
||||
target_file_location="/etc/ibm/csm/csm_aggregator.cfg"
|
||||
daemon="csmd-aggregator"
|
||||
|
||||
# Copy the configuration file.
|
||||
scp ${MASTER_IP}:${target_file_location} ${target_file_location}
|
||||
|
||||
# Start the csm daemon.
|
||||
systemctl start ${daemon}
|
14
xCAT-csm/install/postscripts/ibm-csm-compute
Normal file
14
xCAT-csm/install/postscripts/ibm-csm-compute
Normal file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
# IBM(c) 2016 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
#(C)IBM Corp
|
||||
# Sample Compute postscript.
|
||||
|
||||
# Configuration locations.
|
||||
target_file_location="/etc/ibm/csm/csm_compute.cfg"
|
||||
daemon="csmd-compute"
|
||||
|
||||
# Copy the configuration file.
|
||||
scp ${MASTER_IP}:${target_file_location} ${target_file_location}
|
||||
|
||||
# Start the csm daemon.
|
||||
systemctl start ${daemon}
|
67
xCAT-csm/install/postscripts/ibm-csm-master
Normal file
67
xCAT-csm/install/postscripts/ibm-csm-master
Normal file
@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
# IBM(c) 2016 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
#(C)IBM Corp
|
||||
# Sample Master postscript, designed to be run with or without arguments.
|
||||
|
||||
usage()
|
||||
{
|
||||
cat << EOF
|
||||
Usage ibm-csm-master options:
|
||||
|
||||
Modifies the csm configuration files (if /etc/ibm/csm/ is empty), then executes the local
|
||||
post scripts to reflect the change.
|
||||
|
||||
OPTIONS
|
||||
-h Displays this message
|
||||
-c <group> Sets the xCAT group for the compute nodes (default: compute)
|
||||
-a <group> Sets the xCAT group for the aggregator nodes (default: aggregator)
|
||||
-u <group> Sets the xCAT group for the utility nodes (default: utility)
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# Determine the master ip address.
|
||||
master=$(lsdef -t site clustersite -i master | awk -F "=" '/master/{print $2}')
|
||||
|
||||
# Daemon names.
|
||||
master_daemon="csmd-master"
|
||||
aggregator_daemon="csmd-aggregator"
|
||||
|
||||
# The node groups for utility, compute, and aggregator.
|
||||
utility_nodes="utility"
|
||||
compute_nodes="compute"
|
||||
aggregator_nodes="aggregator"
|
||||
|
||||
# Parse the option strings.
|
||||
optstring="u:c:a:h"
|
||||
while getopts $optstring OPTION
|
||||
do
|
||||
case $OPTION in
|
||||
u)
|
||||
utility_nodes=$OPTARG;;
|
||||
c)
|
||||
compute_nodes=$OPTARG;;
|
||||
a)
|
||||
aggregator_nodes=$OPTARG;;
|
||||
h)
|
||||
usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Replace the master tags in the configuation files.
|
||||
if [[ $(ls -l /etc/ibm/csm/ | wc -l) == 0 ]]
|
||||
then
|
||||
echo "here"
|
||||
mkdir -p /etc/ibm/csm/
|
||||
cp /opt/ibm/csm/share/etc/* /etc/ibm/csm/
|
||||
sed -i "s/__MASTER__/$master/g" /etc/ibm/csm/*
|
||||
fi
|
||||
|
||||
# Start the daemons.
|
||||
systemctl restart ${master_daemon}
|
||||
systemctl restart ${aggregator_daemon}
|
||||
|
||||
# Run the post scripts on the other nodes.
|
||||
updatenode ${utility_nodes} -P ibm-csm-utility
|
||||
#updatenode ${aggregator_nodes} -P ibm-csm-aggregator
|
||||
updatenode ${compute_nodes} -P ibm-csm-compute
|
15
xCAT-csm/install/postscripts/ibm-csm-utility
Normal file
15
xCAT-csm/install/postscripts/ibm-csm-utility
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# IBM(c) 2016 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
#(C)IBM Corp
|
||||
# Sample Utility postscript.
|
||||
|
||||
|
||||
# Configuration locations.
|
||||
target_file_location="/etc/ibm/csm/csm_utility.cfg"
|
||||
daemon="csmd-utility"
|
||||
|
||||
# Copy the configuration file.
|
||||
scp ${MASTER_IP}:${target_file_location} ${target_file_location}
|
||||
|
||||
# Start the csm daemon.
|
||||
systemctl start ${daemon}
|
@ -1,7 +1,7 @@
|
||||
Summary: Packages for installation of CSM nodes
|
||||
Name: xCAT-csm
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 4
|
||||
License: IBM
|
||||
Group: Applications/System
|
||||
@ -33,10 +33,10 @@ xCAT-csm provides Packages for installation of CSM nodes
|
||||
rm -rf %{buildroot}
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/install/rh/
|
||||
mkdir -p $RPM_BUILD_ROOT/install/postscripts/csm/
|
||||
mkdir -p $RPM_BUILD_ROOT/install/postscripts/
|
||||
|
||||
cp csm* $RPM_BUILD_ROOT/%{prefix}/share/xcat/install/rh/
|
||||
cp install/postscripts/* $RPM_BUILD_ROOT/install/postscripts/csm/
|
||||
cp install/postscripts/* $RPM_BUILD_ROOT/install/postscripts/
|
||||
|
||||
%clean
|
||||
# This step does not happen until *after* the %files packaging below
|
||||
|
@ -24,19 +24,27 @@ if [ -z $1 ]; then
|
||||
HOSTOS="fedora23"
|
||||
fi
|
||||
if [ $BUILDARCH = 'ppc64' -a $HOSTOS != 'mcp' -a $HOSTOS != '-y' ]; then
|
||||
echo "The steps below is used to installed mlnx driver 3.2-1, if you are sure you have it or newer driver, pls use \"-y\" to skip!"
|
||||
echo "The steps below are used to install mlnx driver 3.2-1 and i40e driver 1.5.16, if you are sure you have these or newer drivers, pls use \"-y\" to skip!"
|
||||
echo "1. Install OS related packages"
|
||||
echo " yum install rpmbuild"
|
||||
echo " yum install kernel-devel-`uname -r`"
|
||||
echo " yum install kernel-headers-`uname -r`"
|
||||
echo " yum install gcc-c++"
|
||||
echo "2. Download Mellanox EN Driver for Linux from http://www.mellanox.com/downloads/Drivers/mlnx-en-3.2-1.0.1.1.tgz"
|
||||
echo "3. Extract it and run ./install.sh from the extracted directory"
|
||||
echo " Download Intel EN Driver follow this link and download from webpage https://downloadcenter.intel.com/downloads/eula/26370/Intel-Network-Adapter-Driver-for-PCI-E-Intel-40-Gigabit-Ethernet-Network-Connections-under-Linux-?httpDown=https%3A%2F%2Fdownloadmirror.intel.com%2F26370%2Feng%2Fi40e-1.5.16.tar.gz"
|
||||
echo "3. To install Mellanox Driver, extract it and run ./install.sh from the extracted directory"
|
||||
echo " tar -xvf mlnx-en-3.2-1.0.1.1.tgz"
|
||||
echo " ./mlnx-en-3.2-1.0.1.1/install.sh"
|
||||
echo "4. Check whether the mlx4 driver is updated"
|
||||
echo " To install Intel Driver, create rpm and install"
|
||||
echo " rpmbuild -tb i40e-1.5.16.tar.gz"
|
||||
echo " rpm -i /<path-to>/i40e-1.5.16-1.ppc64le.rpm"
|
||||
echo " Additional Intel instructions can be found in README included in i40e-1.5.16.tar.gz"
|
||||
echo "4. Check whether the drivers are updated"
|
||||
echo " modprobe mlx4-en"
|
||||
echo " modinfo mlx4-en | grep version"
|
||||
echo " version: 3.2-1.0.1.1 (31 Jan 2016)"
|
||||
echo " modinfo i40e | grep version"
|
||||
echo " version: 1.5.16"
|
||||
echo "5. Once the steps above done, run \"$0 -y\" to build xCAT-genesis-base-ppc64"
|
||||
exit 0
|
||||
fi
|
||||
|
@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
@ -2,15 +2,15 @@ Source: xcat-genesis-base-amd64
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
|
||||
Build-Depends: debhelper (>= 8.0.0)
|
||||
Standards-Version: 3.7.2
|
||||
Build-Depends: debhelper (>= 9)
|
||||
Standards-Version: 3.9.4
|
||||
|
||||
Package: xcat-genesis-base-amd64
|
||||
Architecture: all
|
||||
Depends:
|
||||
Depends:
|
||||
Replaces: xcat-genesis-amd64
|
||||
Breaks: xcat-genesis-amd64
|
||||
Description: xCAT Genesis netboot image
|
||||
xCAT genesis (Genesis Enhanced Netboot Environment for System Information
|
||||
and Servicing) is a small, embedded-like environment for xCAT's use in
|
||||
discovery and management actions when interaction with an OS is infeasible.
|
||||
discovery and management actions when interaction with an OS is infeasible.
|
||||
|
@ -36,26 +36,6 @@ elif [ $reason = "BOUND" ]; then
|
||||
for gw in $new_routers; do
|
||||
ip route add default via $gw
|
||||
done
|
||||
# Up to this point we were logging to the local /var/log/xcat.genesis
|
||||
# file. But now we know the xCAT MN, so replace logging to the local
|
||||
# file with logging to the xCAT MN
|
||||
if [ ! -z "$new_log_servers" ]; then
|
||||
head -n -1 /etc/rsyslog.conf > /etc/rsyslog.conf.new
|
||||
cp /etc/rsyslog.conf.new /etc/rsyslog.conf
|
||||
fi
|
||||
for ls in $new_log_servers; do
|
||||
echo "*.* @$ls" >> /etc/rsyslog.conf
|
||||
done
|
||||
kill `cat /var/run/syslogd.pid`
|
||||
sleep 3
|
||||
RSYSLOGD_VERSION=`rsyslogd -v | grep "rsyslogd" | cut -d" " -f2 | cut -d"." -f1`
|
||||
if [ $RSYSLOGD_VERSION -ge 8 ]; then
|
||||
# Newer versions of rsyslogd do not support -c flag anymore
|
||||
/sbin/rsyslogd
|
||||
else
|
||||
/sbin/rsyslogd -c4
|
||||
fi
|
||||
|
||||
|
||||
if [ ! -z "$new_tcode" -a -r "/usr/share/zoneinfo/posix/$new_tcode" ]; then
|
||||
cp "/usr/share/zoneinfo/posix/$new_tcode" /etc/localtime
|
||||
|
@ -9,7 +9,7 @@ dracut_install efibootmgr
|
||||
#dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm
|
||||
dracut_install mkswap df brctl vconfig ifenslave ssh-keygen scp clear dhclient lldpad
|
||||
dracut_install lldptool /lib64/libnss_dns-2.12.so /lib64/libnss_dns.so.2
|
||||
dracut_install poweroff ntpq ntpd hwclock date /usr/share/terminfo/x/xterm /usr/share/terminfo/s/screen /etc/nsswitch.conf /etc/services
|
||||
dracut_install poweroff ntpq ntpd ntp-wait hwclock date /usr/share/terminfo/x/xterm /usr/share/terminfo/s/screen /etc/nsswitch.conf /etc/services
|
||||
dracut_install /sbin/rsyslogd /etc/protocols umount /bin/rpm /usr/lib/rpm/rpmrc
|
||||
dracut_install chmod /lib/libc.so.6 /lib/ld-linux.so.2 /lib/libdl.so.2 /lib/libm.so.6 /sbin/route /sbin/ifconfig /usr/bin/whoami /usr/bin/head /usr/bin/tail basename /etc/redhat-release ping tr lsusb /usr/share/hwdata/usb.ids #ibm fw wrapper requirements
|
||||
dracut_install dmidecode /usr/lib64/libstdc++.so.6 #uxspi prereqs, but will use dmidecode to improve decision on loading ipmi_si
|
||||
|
@ -10,7 +10,7 @@ dracut_install efibootmgr
|
||||
#dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm
|
||||
dracut_install mkswap df brctl vconfig ifenslave ssh-keygen scp clear dhclient lldpad
|
||||
dracut_install lldptool
|
||||
dracut_install poweroff ntpq ntpd hwclock date /usr/share/terminfo/x/xterms /etc/nsswitch.conf /etc/services
|
||||
dracut_install poweroff ntpq ntp-wait ntpd hwclock date /usr/share/terminfo/x/xterms /etc/nsswitch.conf /etc/services
|
||||
dracut_install /usr/sbin/rsyslogd /etc/protocols umount /usr/bin/dpkg /usr/bin/rpm /usr/lib/rpm/rpmrc
|
||||
if [ -n $version12 ];then
|
||||
dracut_install /lib/x86_64-linux-gnu/libnss_dns-2.15.so /lib/x86_64-linux-gnu/libnss_dns.so.2
|
||||
|
@ -1,4 +1,4 @@
|
||||
%define version 2.12
|
||||
%define version %%REPLACE_CURRENT_VERSION%%
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
%ifarch i386 i586 i686 x86
|
||||
@ -17,22 +17,21 @@ BuildArch: noarch
|
||||
%define __prelink_undo_cmd %{nil}
|
||||
# To fix the issue error: Arch dependent binaries in noarch package, the following line is needed on Fedora 23 ppc64
|
||||
%define _binaries_in_noarch_packages_terminate_build 0
|
||||
Epoch: 1
|
||||
Epoch: 2
|
||||
AutoReq: false
|
||||
Prefix: /opt/xcat
|
||||
AutoProv: false
|
||||
|
||||
|
||||
|
||||
Name: %{name}
|
||||
Group: System/Utilities
|
||||
License: Various (see individual packages for details)
|
||||
Vendor: IBM Corp.
|
||||
Summary: xCAT Genesis netboot image
|
||||
URL: http://xcat.org
|
||||
URL: https://xcat.org/
|
||||
Source1: xCAT-genesis-base-%{tarch}.tar.bz2
|
||||
|
||||
Buildroot: %{_localstatedir}/tmp/xCAT-genesis
|
||||
BuildRequires: /usr/sbin/ntp-wait
|
||||
Packager: IBM Corp.
|
||||
|
||||
%Description
|
||||
|
@ -1,7 +1,7 @@
|
||||
BuildArch: noarch
|
||||
%define name xCAT-genesis-builder
|
||||
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
||||
Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")}
|
||||
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
||||
Epoch: 1
|
||||
AutoReq: false
|
||||
Requires: ipmitool screen btrfs-progs lldpad rpm-build compat-libstdc++-33 mstflint xfsprogs nc reiserfs-utils
|
||||
@ -15,7 +15,7 @@ Group: System/Utilities
|
||||
License: EPL
|
||||
Vendor: IBM Corp.
|
||||
Summary: Tooling to create xCAT's discovery/maintenance/debugging environment
|
||||
URL: http://xcat.org
|
||||
URL: https://xcat.org/
|
||||
Source1: xCAT-genesis-builder.tar.bz2
|
||||
|
||||
Buildroot: %{_localstatedir}/tmp/xCAT-genesis-builder
|
||||
@ -40,4 +40,10 @@ cd -
|
||||
%Files
|
||||
%defattr(-,root,root)
|
||||
%doc LICENSE.html
|
||||
/opt/xcat/share/xcat/netboot/genesis/builder
|
||||
%dir %{prefix}
|
||||
%dir %{prefix}/share
|
||||
%dir %{prefix}/share/xcat
|
||||
%dir %{prefix}/share/xcat/netboot
|
||||
%dir %{prefix}/share/xcat/netboot/genesis
|
||||
%dir %{prefix}/share/xcat/netboot/genesis/builder
|
||||
%{prefix}/share/xcat/netboot/genesis/builder/*
|
||||
|
@ -51,7 +51,7 @@ if [ $ARCH = "ppc64le" ]; then
|
||||
fi
|
||||
|
||||
if [ $ARCH == 'ppc64' ]; then
|
||||
|
||||
waittime=2
|
||||
ALL_NICS=`ip link show | grep -v "^ " | awk '{print $2}' | sed -e 's/:$//' | grep -v lo`
|
||||
for tmp in $ALL_NICS; do
|
||||
tmp_data=`ip link show $tmp | grep -v "^ " | grep "UP"`
|
||||
@ -59,8 +59,10 @@ if [ $ARCH == 'ppc64' ]; then
|
||||
ip link set $tmp up
|
||||
fi
|
||||
tmp_data="UP"
|
||||
sleep 1
|
||||
waittime=$(($waittime+1))
|
||||
done
|
||||
# wait 2+number_of_nics seconds for all the LINKed NICs to be UP
|
||||
sleep $waittime
|
||||
fi
|
||||
|
||||
while :; do screen -L -ln doxcat; done
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user