2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-30 01:26:38 +00:00

Merge pull request #4 from xcat2/master

Get the latest from xCAT team
This commit is contained in:
zVMopenstack 2017-01-13 14:14:03 -05:00 committed by GitHub
commit 812088b6d9
284 changed files with 6854 additions and 3137 deletions

2
.gitignore vendored
View File

@ -1,2 +1,4 @@
# ignore the documentation build files
docs/build
# Ignore the temporary file for creating the Release version
Release.save*

View File

@ -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%

1
Release Normal file
View File

@ -0,0 +1 @@
snap000000000000

View File

@ -1 +1 @@
2.12.4
2.13.2

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -0,0 +1,7 @@
ONIE Compatible Bare Metal Switches
===================================
.. toctree::
:maxdepth: 2
onie_switches.rst

View File

@ -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.

View File

@ -8,3 +8,4 @@ Networks
switchdiscover/index.rst
infiniband/index.rst
ipv6/index.rst
edgecore_switches/index.rst

View File

@ -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>`

View File

@ -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: ::

View File

@ -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

View File

@ -1 +0,0 @@
../../diskful/customize_image/pre_post_script.rst

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.
**********

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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.

View File

@ -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:

View File

@ -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.
*******

View 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.*

View File

@ -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: ::

View File

@ -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 |

View 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** | |
+-------------------------+-----------------------------------------------+---------------------------------------+

View File

@ -4,6 +4,7 @@
.. toctree::
:maxdepth: 1
20161130_hard_code_password.rst
20160824_openssl.rst
20160815_openssl.rst
20160503_openssl.rst

66
makerpm
View File

@ -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"

View File

@ -1 +1 @@
5
9

View File

@ -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.

View File

@ -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"

View File

@ -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.

View File

@ -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 {

View File

@ -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";
}

View File

@ -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.",

View File

@ -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)

View File

@ -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;

View File

@ -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 {

View File

@ -1 +1 @@
5
9

View File

@ -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).

View File

@ -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"

View File

@ -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

View File

@ -1 +1 @@
8
9

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
8
9

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
5
9

View File

@ -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).

View File

@ -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"

View File

@ -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

View File

@ -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");

View File

@ -1 +1 @@
5
9

View File

@ -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

View File

@ -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

View File

@ -14,7 +14,6 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
%ifos linux
BuildArch: noarch
#Requires:
%endif
Provides: pkg2 = %{epoch}:%{version}

View File

@ -14,7 +14,6 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
%ifos linux
BuildArch: noarch
#Requires:
%endif
Provides: pkg3 = %{epoch}:%{version}

View File

@ -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

View File

@ -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

View File

@ -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};
}
}

View File

@ -1 +1 @@
5
9

View File

@ -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.

View File

@ -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"

View File

@ -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>

View File

@ -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

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
#example postscript for CSM

View 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}

View 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}

View 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

View 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}

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
5
9

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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/*

View File

@ -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