2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-06-02 19:40:10 +00:00

Preparing files to be merged from xcat_doctest to xcat-docs

This commit is contained in:
Victor Hu 2015-07-16 15:29:16 -04:00
commit c252393f4a
40 changed files with 2162 additions and 0 deletions

192
Makefile Normal file
View File

@ -0,0 +1,192 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/xCAT3.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/xCAT3.qhc"
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/xCAT3"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/xCAT3"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

263
make.bat Normal file
View File

@ -0,0 +1,263 @@
@ECHO OFF
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
set I18NSPHINXOPTS=%SPHINXOPTS% source
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)
if "%1" == "" goto help
if "%1" == "help" (
:help
echo.Please use `make ^<target^>` where ^<target^> is one of
echo. html to make standalone HTML files
echo. dirhtml to make HTML files named index.html in directories
echo. singlehtml to make a single large HTML file
echo. pickle to make pickle files
echo. json to make JSON files
echo. htmlhelp to make HTML files and a HTML help project
echo. qthelp to make HTML files and a qthelp project
echo. devhelp to make HTML files and a Devhelp project
echo. epub to make an epub
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
echo. text to make text files
echo. man to make manual pages
echo. texinfo to make Texinfo files
echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
echo. xml to make Docutils-native XML files
echo. pseudoxml to make pseudoxml-XML files for display purposes
echo. linkcheck to check all external links for integrity
echo. doctest to run all doctests embedded in the documentation if enabled
echo. coverage to run coverage check of the documentation if enabled
goto end
)
if "%1" == "clean" (
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
del /q /s %BUILDDIR%\*
goto end
)
REM Check if sphinx-build is available and fallback to Python version if any
%SPHINXBUILD% 2> nul
if errorlevel 9009 goto sphinx_python
goto sphinx_ok
:sphinx_python
set SPHINXBUILD=python -m sphinx.__init__
%SPHINXBUILD% 2> nul
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
:sphinx_ok
if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
goto end
)
if "%1" == "dirhtml" (
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
goto end
)
if "%1" == "singlehtml" (
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
goto end
)
if "%1" == "pickle" (
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the pickle files.
goto end
)
if "%1" == "json" (
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the JSON files.
goto end
)
if "%1" == "htmlhelp" (
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run HTML Help Workshop with the ^
.hhp project file in %BUILDDIR%/htmlhelp.
goto end
)
if "%1" == "qthelp" (
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\xCAT3.qhcp
echo.To view the help file:
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\xCAT3.ghc
goto end
)
if "%1" == "devhelp" (
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished.
goto end
)
if "%1" == "epub" (
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The epub file is in %BUILDDIR%/epub.
goto end
)
if "%1" == "latex" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
if errorlevel 1 exit /b 1
echo.
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdf" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdfja" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf-ja
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "text" (
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The text files are in %BUILDDIR%/text.
goto end
)
if "%1" == "man" (
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The manual pages are in %BUILDDIR%/man.
goto end
)
if "%1" == "texinfo" (
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
goto end
)
if "%1" == "gettext" (
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
goto end
)
if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
if errorlevel 1 exit /b 1
echo.
echo.The overview file is in %BUILDDIR%/changes.
goto end
)
if "%1" == "linkcheck" (
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
if errorlevel 1 exit /b 1
echo.
echo.Link check complete; look for any errors in the above output ^
or in %BUILDDIR%/linkcheck/output.txt.
goto end
)
if "%1" == "doctest" (
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
if errorlevel 1 exit /b 1
echo.
echo.Testing of doctests in the sources finished, look at the ^
results in %BUILDDIR%/doctest/output.txt.
goto end
)
if "%1" == "coverage" (
%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
if errorlevel 1 exit /b 1
echo.
echo.Testing of coverage in the sources finished, look at the ^
results in %BUILDDIR%/coverage/python.txt.
goto end
)
if "%1" == "xml" (
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The XML files are in %BUILDDIR%/xml.
goto end
)
if "%1" == "pseudoxml" (
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
goto end
)
:end

View File

@ -0,0 +1,53 @@
Starting the confetty client
============================
As the root user, running ``/opt/confluent/bin/confetty`` will open the confetty prompt ::
[root@c910f02c05p03 ~]# /opt/confluent/bin/confetty
/ ->
Creating a non root user
========================
It's recommenteed to create a non root user to use to connect to confetty
#. Create a non-root user on the management node: ::
useradd -m vhu
#. As root, create a non-root user in confetty: ::
/opt/confluent/bin/confetty create users/vhu
#. Set the password for the non-root user: ::
/opt/confluent/bin/confetty set users/vhu password="mynewpassword"
password="********"
Connecting to a remote server
=============================
In order to do remote sessions, keys must first be added to ``/etc/confluent``
* /etc/confluent/privkey.pem - private key
* /etc/confluent/srvcert.pem - server cert
If you want to use the xCAT Keys, you can simple copy them into ``/etc/confluent`` ::
cp /etc/xcat/cert/server-key.pem /etc/confluent/privkey.pem
cp /etc/xcat/cert/server-cert.pem /etc/confluent/srvcert.pem
Start confetty, specify the server IP address: ::
confetty -s 127.0.0.1
TODO: Add text for exporting user/pass into environment

View File

@ -0,0 +1,9 @@
Confetty
=========
Confetty is a client to confluent server
.. toctree::
:maxdepth: 2
confetty.rst

View File

@ -0,0 +1,146 @@
Getting Started
---------------
For xCAT 2.9.1 and later, confluent is intended to be used in conjunction with xCAT.
The following documentation assumes that xCAT is already installed and configured on the management node.
Download
--------
confluent
^^^^^^^^^
The latest confluent rpms are built and provided for your convenience: `confluent rpms <https://sourceforge.net/projects/xcat/files/confluent/rpms>`_
The following example downloads the confluent tar package and creates a local repository on your management node::
mkdir ~/confluent
cd ~/confluent
wget https://path-to-confluent/confluent-X.X-repo.tbz2
tar jxvf confluent-X.X-repo.tbz2
cd confluent-X.X
./mklocalrepo.sh
confluent-dep
^^^^^^^^^^^^^
The latest confluent dependency packages are provided for your convenience: `confluent-deps <http://sourceforge.net/projects/xcat/files/confluent-dep/>`_
The following example describes the steps for **rhels7.1** on **ppc64le**::
mkdkir ~/confluent
cd ~/confluent
wget https://path/to/confluent-dep/rh7/ppc64le/confluent-dep-rh7-ppc64le.tar.bz2
tar -jxvf confluent-dep-rh7-ppc64le.tar.bz2
cd confluent-dep-rh7-ppc64le/
./mklocalrepo.sh
**Note:** If the OS/architecture you are looking for is not provided under confluent-dep,
please send an email to the xcat-users mailing list: xcat-users@lists.sourceforge.net
Install
-------
*confluent and confluent-deps must be downloaded to the management node before installing*
xCAT 2.9.1 began shipping a new rpm ``xCAT-confluent``.
Installing ``xCAT-confluent`` via yum will pull in the confluent dependencies::
yum install xCAT-confluent
You may find it helpful to add the confluent paths into your system path::
CONFLUENTROOT=/opt/confluent
export PATH=$CONFLUENTROOT/bin:$PATH
export MANPATH=$CONFLUENTROOT/share/man:$MANPATH
Configuration
-------------
Starting/Stopping confluent
^^^^^^^^^^^^^^^^^^^^^^^^^^^
To start confluent::
service confluent start
To stop confluent::
service confluent stop
If you want confluent daemon to start automatically at bootup, add confluent service to ``chkconfig``::
chkconfig --add confluent
Replacing conserver with confluent
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A new keyword, ``consoleservice``, has been added to the xCAT site table to allow the system administrator to control between **conserver** and **confluent**. If ``consoleservice`` is not set, default behavior is to use **conserver**.
Set the consoleservice to confluent::
chdef -t site consoleservice='confluent'
Run ``makeconfluentcfg`` to create the confluent configuration files::
makeconfluentcfg
Use ``rcons`` as before to start the console session.::
rcons <singlenode>
# If using confluent, a timestamp will be shown on the
# console title next to the node name
<singlenode> [15:05]
Web Browser access
------------------
Confluent-api and confluent-consoles are able to be accessed from the browser.
It is **highly** recommended that you create a non-root user to access the sessions::
Create the non-root user on the management node
# useradd -m vhu
Create a non-root user in confetty
# /opt/confluent/bin/confetty create users/vhu
Set the password for the non-root user
# /opt/confluent/bin/confetty set users/vhu password="mynewpassword"
password="********"
Rest Explorer
^^^^^^^^^^^^^
TODO: some intro text
Configure the httpd configuration for confluent-api by creating a ``confluent.conf`` file under ``/etc/httpd/conf.d/`` directory::
The example uses server ip: 10.2.5.3 and port 4005
cat /etc/httpd/conf.d/confluent.conf
LoadModule proxy_http_module modules/mod_proxy_http.so
<Location /confluent-api>
ProxyPass http://10.2.5.3:4005
</Location>
#restart httpd
service httpd restart
Now point your browser to: ``http://<server ip>:<port>`` and log in with the non-root user and password created above.
Confluent consoles
^^^^^^^^^^^^^^^^^^
confluent-web is provided in a subdirectory under the confluent project `confluent_web <https://sourceforge.net/p/xcat/confluent/ci/master/tree/confluent_web/>`_
Download the content of that directory to ``/var/www/html/confluent`` and point your browser to::
http://<server ip>/confluent/consoles.html

View File

@ -0,0 +1,15 @@
Confluent
=========
Confluent is a new codebase with a few goals in mind:
* Augment xCAT 2.X series
* Potentially serve in place of xCAT-server for the next generation of xCAT
**Disclaimer:** *Confluent code in conjunction with xCAT 2.X is currently BETA, use at your own risk*
.. toctree::
:maxdepth: 2
confluent.rst

View File

@ -0,0 +1,7 @@
Docker
======
Placeholder for Docker related topics
.. toctree::
:maxdepth: 2

10
source/advanced/index.rst Normal file
View File

@ -0,0 +1,10 @@
Advanced Topics
===============
.. toctree::
:maxdepth: 2
confluent/index
confetty/index
docker/index
mixed_cluster

View File

@ -0,0 +1,87 @@
Mixed Cluster Management
========================
ppc64 mgmt node
---------------
Provision x86_64 (bare metal)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In order to provision x86_64 ipmi-based machines from xCAT management node (ppc64), there are a few required xCAT dependency RPMs that must be installed:
* ``elilo-xcat``
* ``xnba-undi``
* ``syslinux-xcat``
Install these RPMs using the following command: ::
yum install elilo-xcat xnba-undi syslinux-xcat
On the ppc64 management node, obtain an x86_64 operating system ISO and add it into the xCAT osimage table by using the copycds command: ::
copycds /tmp/RHEL-6.6-20140926.0-Server-x86_64-dvd1.iso
Create a node definition for the x86_64 compute node, here is a sample: ::
lsdef -z c910f04x42
# <xCAT data object stanza file>
c910f04x42:
objtype=node
arch=x86_64
bmc=10.4.42.254
bmcpassword=PASSW0RD
bmcusername=USERID
chain=runcmd=bmcsetup,shell
cons=ipmi
groups=all
initrd=xcat/osimage/rhels6.6-x86_64-install-compute/initrd.img
installnic=mac
kcmdline=quiet repo=http://!myipfn!:80/install/rhels6.6/x86_64 ks=http://!myipfn!:80/install/autoinst/c910f04x42 ksdevice=34:40:b5:b9:c0:18 cmdline console=tty0 console=ttyS0,115200n8r
kernel=xcat/osimage/rhels6.6-x86_64-install-compute/vmlinuz
mac=34:40:b5:b9:c0:18
mgt=ipmi
netboot=xnba
nodetype=osi
os=rhels6.6
profile=compute
provmethod=rhels6.6-x86_64-install-compute
serialflow=hard
serialport=0
serialspeed=115200
Provision the node using the following commands: ::
# The following prepares the kickstart file in /install/autoinst
nodeset c910f04x42 osimage=rhels6.6-x86_64-install-compute
# Tells the BIOS to network boot on the next power on
rsetboot c910f04x42 net
# Reboots the node
rpower c910f04x42 boot
Provision x86_64 (diskless)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Troubleshooting
^^^^^^^^^^^^^^^
**Error:** The following Error message comes out when running nodeset: ::
Error: Unable to find pxelinux.0 at /opt/xcat/share/xcat/netboot/syslinux/pxelinux.0
**Resolution:**
The syslinux network booting files are missing.
Install the sylinux-xcat package provided in the xcat-deps repository: ``yum -y install syslinux-xcat``
x86_64 mgmt node
----------------
Provision ppc64 compute nodes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

292
source/conf.py Normal file
View File

@ -0,0 +1,292 @@
# -*- coding: utf-8 -*-
#
# xCAT documentation build configuration file, created by
# sphinx-quickstart on Thu May 28 14:34:34 2015.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
import shlex
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'xCAT'
copyright = u'2015, IBM Corporation'
author = u'IBM Corporation'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '0.0.1'
# The full version, including alpha/beta/rc tags.
release = '0.0.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
import os
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
if on_rtd:
html_theme = 'default'
else:
# some of the popular themes: alabaster, sphinx_rtd_theme, classic, nature
html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
#html_search_language = 'en'
# A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value
#html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used.
#html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
htmlhelp_basename = 'xCAT3doc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
# Latex figure (float) alignment
#'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'xCAT3.tex', u'xCAT3 Documentation',
u'IBM Corporation', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'xcat3', u'xCAT3 Documentation',
[author], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'xCAT3', u'xCAT3 Documentation',
author, 'xCAT3', 'One line description of project.',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False

View File

@ -0,0 +1,3 @@
Git
===

View File

@ -0,0 +1,10 @@
Developers
==========
This page is for developers interested in working with xCAT.
.. toctree::
:maxdepth: 2
git

View File

@ -0,0 +1,7 @@
Admin Guide
===========
.. toctree::
:maxdepth: 1
large_clusters/index.rst

View File

@ -0,0 +1,40 @@
Databases
=========
xCAT Supports the following databases to be used by xCAT on the Management node
* SQLite
* MySQL/MariaDB
* PostgreSQL
* DB2
SQLite
------
SQLite database is the default database used by xCAT and is initialized when xCAT is installed on the management node.
SQLite is a small, light-weight, daemon-less database that requires no configuration or maintenance. This database is sufficient for small to moderate size systems ( < 1000 nodes ) when xCAT hierarchy (*service nodes*) is not being used. The SQLite database cannot be used for hierarchy because service nodes requires remote access to the database and SQLite does not support remote access.
For hierarchy, you will need to use one of the following alternate databases.
MySQL/MariaDB
-------------
.. toctree::
:maxdepth: 2
mysql_install.rst
mysql_configure.rst
PostgreSQL
----------
.. toctree::
:maxdepth: 2
postgres_install.rst
postgres_configure.rst
postgres_tips.rst

View File

@ -0,0 +1,2 @@
Configure MySQL
===============

View File

@ -0,0 +1,2 @@
Install MySQL
=============

View File

@ -0,0 +1,9 @@
Migrate xCAT to use PostgreSQL
==============================
A utility is provided to migrate an existing xCAT database from SQLite to PostgreSQL. ::
pgsqlsetup -i -V
**While not recommended**, if you wish to manually migrate your xCAT database, see the following documentation:
`Manually set up PostgreSQL <https://sourceforge.net/p/xcat/wiki/Setting_Up_PostgreSQL_as_the_xCAT_DB/#manually-setup-postgresql>`_

View File

@ -0,0 +1,34 @@
Install PostgreSQL
==================
PostgreSQL packages are shipped as part of most Linux Distributions.
Redhat Enterprise Linux
-----------------------
Using yum, install the requires postgres rpms: ::
yum install postgresql-libs-* postgresql-server-* postgresql-*
yum install perl-DBD-Pg*
Suse Linux Enterprise Server
----------------------------
**Note:** On SLES, ``perl-DBD`` packages are provided on the SDK iso images.
Using zyppr, install the requires postgres rpms: ::
zyppr install postgresql-libs-* postgresql-server-* postgresql-*
zyppr install perl-DBD-Pg*
Debian/Ubuntu
-------------
Using apt, install the requires postgres packages: ::
apt install postgresql libdbd-pg-perl

View File

@ -0,0 +1,53 @@
PostgreSQL tips
===============
Using PostgreSQL
----------------
* Connect to the database
Use the psql command line utility to connect to the PostgreSQL database: ::
su - postgres
psql -h <hostname> -U xcatadm -d xcatdb
Useful Commands
---------------
* Show create statement for a table, for example prescripts table. ::
/usr/bin/pg_dump xcatdb -U xcatadm -t prescripts
* Clean up the xcatdb completely from PostgreSQL: ::
su - postgres
# drop the xcatdb
dropdb xcatdb
# remove the xcatadm database owner
dropuser xcatadm
# clean up the postgresql files (necessary if you want to re-create the database)
cd /var/lib/pgsql/data
rm -rf *
* List databases: ::
su - postgres
psql -l
* Access the database: ::
su - postgres
psql xcatdb
SELECT * FROM "pg_user"; Select all users
SELECT * FROM "site"; Select the site table
SELECT MAX(recid) from "auditlog";
SELECT MIN(recid) from "auditlog";
drop table zvm; Removes a table
\dt Select all tables
\? help
\q exit

View File

@ -0,0 +1,7 @@
Managing Large Clusters
=======================
.. toctree::
:maxdepth: 2
databases/index.rst

View File

@ -0,0 +1,9 @@
Installation Guide for Ubuntu Server LTS
========================================
For the list of currently supported Ubuntu LTS operatin systems, see :ref:`ubuntu-os-support-label`.
.. toctree::
:maxdepth: 2
../common/prepare_mgmt_node

View File

@ -0,0 +1,20 @@
.. BEGIN_install_os_mgmt_node
The system requirements for your xCAT management node largely depends on the size of the cluster you plan to manage and the type of provisioning used (diskful, diskless, system clones, etc). The majority of system load comes during cluster provisioning time.
**Memory Requirements:**
+--------------+-------------+
| Cluster Size | Memory (GB) |
+==============+=============+
| Small (< 16) | 4-6 |
+--------------+-------------+
| Medium | 6-8 |
+--------------+-------------+
| Large | > 16 |
+--------------+-------------+
.. END_install_os_mgmt_node

View File

@ -0,0 +1,76 @@
Prepare the Management Node for xCAT Installation
=================================================
These steps prepare the Management Node or xCAT Installation
Install an OS on the Management Node
------------------------------------
The hardware requirements for your xCAT management node largely depends on the size of the cluster you plan to manage and the type of provisioning being used (diskful, diskless, system clones, etc). The majority of system load comes during cluster provisioning.
**Memory Recommendations:**
+--------------+-------------+
| Cluster size | Memory (GB) |
+==============+=============+
| small (< 16) | 4-6 |
+--------------+-------------+
| medium | 6-8 |
+--------------+-------------+
| large | > 16 |
+--------------+-------------+
Install any flavor of the supported operating system onto the management node.
The xCAT software RPMs will attempt to automatially install any base software provided by the Operating System if they are not already installed onto the machine. In order for this to succeed, the node must have a repository set up providing the base operating system packages.
Configure the Base OS Repository
--------------------------------
xCAT uses Linux Package Managers (yum, zypper, apt, etc) to install and resolve dependency packages provded by the base operating system. Follow this section to create the repository for the base operating system on the management node
#. Copy the dvd .iso file onto the management node: ::
mkdir -p /tmp/iso
scp <user>@<server>:/images/iso/rhels7.1/ppc64le/RHEL-LE-7.1-20150219.1-Server-ppc64le-dvd1.iso /tmp/iso
#. Mount the dvd iso to a directory on the management node. ::
#
# [rhel] mounting at /mnt/iso/rhels7.1
#
mkdir -p /mnt/iso/rhels7.1
mount -o loop /tmp/iso/RHEL-LE-7.1-20150219.1-Server-ppc64le-dvd1.iso /mnt/iso/rhels7.1
#
# [sles] mounting at /mnt/iso/sles12
#
mkdir -p /mnt/iso/sles12
mount -o loop /tmp/iso/SLE-12-Server-DVD-ppc64le-GM-DVD1.iso /mnt/iso/sles12
#. Create the local repository configuration file pointing to mounted iso image. ::
#
# [rhel]
#
vi /etc/yum/yum.repos.d/rhels71-base.repo
#
# [sles]
#
vi /etc/zypp/repos.d/sles12-base.repo
# Setting up OS Repository on Mgmt Node
Disable system services
-----------------------
Disable the Firewall
* Set up Network
* Configure Network Interface Cards (NICs)
* Install the Management Node OS
* Supported OS and Hardware

View File

@ -0,0 +1,9 @@
Install Guides
==============
.. toctree::
:maxdepth: 1
yum/index
zypper/index
apt/index

View File

@ -0,0 +1,2 @@
Configure xCAT
==============

View File

@ -0,0 +1,11 @@
Installation Guide for Red Hat Enterprise Linux
===============================================
For the list of currently supported RHEL operating systems, see :ref:`rhels-os-support-label`.
.. toctree::
:maxdepth: 2
prepare_mgmt_node
install_xcat
configure_xcat

View File

@ -0,0 +1,162 @@
Install xCAT
============
xCAT consists of two software packages:
#. **xcat-core** xCAT's main software package.
The xcat-core package is provided in one of the following options:
* **Latest Release (Stable) Builds**
*This is the latest GA (Generally Availability) build that has been tested throughly*
* **Latest Snapshot Builds**
*This is the latest snapshot of the GA version build that may contain bug fixes but has not yet been tested throughly*
* **Development Builds**
*This is the snapshot builds of the new version of xCAT in development. This version has not been released yet, use as your own risk*
#. **xcat-dep** xCAT's dependency package. This is provided as a convenience for the user and contains dependency packages required by xCAT that are not provided by the operating system.
xCAT is installed by configuring software repositories for ``xcat-core`` and ``xcat-dep`` and using yum package manager. The software repositoreies can publically hosted (requires internet connectivity) or locally configured.
Configure xCAT Software Repository
----------------------------------
Public Internet Repository
~~~~~~~~~~~~~~~~~~~~~~~~~~
TODO: Need to fill this out
Locally Configured Repository
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From the xCAT software download page: `<https://sourceforge.net/p/xcat/wiki/Download_xCAT/>`_, download ``xcat-core`` and ``xcat-dep``.
xcat-core
^^^^^^^^^
#. Download xcat-core, if downloading the latest devepment build: ::
cd /root
mkdir -p ~/xcat
cd ~/xcat/
wget http://sourceforge.net/projects/xcat/files/yum/devel/core-rpms-snap.tar.bz2
#. Extract xcat-core: ::
cd ~/xcat
tar jxvf core-rpms-snap.tar.bz
#. Configure the local repository, by runnin the ``mklocalrepo.sh`` script: ::
cd ~/xcat/xcat-core/
./mklocalrepo.sh
xcat-dep
^^^^^^^^
Unless you are downloading ``xcat-dep`` for a specific GA version of xCAT, select the package with the latest timestamp.
#. Download xcat-dep, if downloading xcat-dep from June 11, 2015, for Linux: ::
mkdir -p ~/xcat/
cd ~/xcat
wget http://sourceforge.net/projects/xcat/files/xcat-dep/2.x_Linux/xcat-dep-201506110324.tar.bz2
#. Extract xcat-dep: ::
cd ~/xcat/
tar jxvf xcat-dep-201506110324.tar.bz2
#. Configure the local repository by switching to the architecture and os of the system you are installing on , and running the ``mklocalrepo.sh`` script: ::
cd ~/xcat/xcat-dep/
# for redhat 6.5 on ppc64...
cd rh6/ppc64
./mklocalrepo.sh
Install xCAT
------------
Install xCAT with the following command: ::
yum clean all (optional)
yum install xCAT
**Note:** During the install, you will need to accept the *xCAT Security Key* to proceed: ::
Retrieving key from file:///root/xcat/xcat-dep/rh6/ppc64/repodata/repomd.xml.key
Importing GPG key 0xC6565BC9:
Userid: "xCAT Security Key <xcat@cn.ibm.com>"
From : /root/xcat/xcat-dep/rh6/ppc64/repodata/repomd.xml.key
Is this ok [y/N]:
Verify xCAT Installation
------------------------
Quick verificaiton can be done with the following steps:
#. Source the profile to add xCAT Commands to your path: ::
source /etc/profile.d/xcat.sh
#. Check the xCAT Install version: ::
lsxcatd -a
#. Check to see the database is initialized by dumping the site table: ::
tabdump site
The output should similar to the following: ::
#key,value,comments,disable
"blademaxp","64",,
"domain","pok.stglabs.ibm.com",,
"fsptimeout","0",,
"installdir","/install",,
"ipmimaxp","64",,
...
Starting and Stopping
---------------------
You can easily start, stop, restart, and check xCAT status using Linux systemd or systemctl:
* start xCAT: ::
service xcatd start
systemctl xcatd.service start
* stop xCAT: ::
service xcatd stop
systemctl xcatd.service stop
* restart xCAT: ::
service xcatd restart
systemctl xcatd.service restart
* check xCAT status: ::
service xcatd status
systemctl xcatd.service status
Updating xCAT
-------------
If at a later date you want to update xCAT, simply update the software repository and run: ::
yum clean metadata (or, yum clean all)
yum update '*xCAT*'

View File

@ -0,0 +1,29 @@
Prepare the Management Node
===========================
These steps prepare the Management Node or xCAT Installation
Install an OS on the Management Node
------------------------------------
Install one of the supported operating systems :ref:`rhels-os-support-label` on to your target management node
.. include:: ../common/install_guide.rst
:start-after: BEGIN_install_os_mgmt_node
:end-before: END_install_os_mgmt_node
Configure the Base OS Repository
--------------------------------
.. include:: yum_common.rst
:start-after: BEGIN_configure_base_os_repository
:end-before: END_configure_base_os_repository
Set up Network
--------------
The management node IP address should be set to a **static** ip address.
Modify the ifcfg-<nic> file under ``/etc/sysconfig/network-scripts`` and configure a static IP address.

View File

@ -0,0 +1,42 @@
.. BEGIN_configure_base_os_repository
xCAT uses the yum package manager on RHEL Linux distributions to install and resolve dependency packages provded by the base operating system. Follow this section to create the repository for the base operating system on the management node
#. Copy the dvd .iso file onto the management node: ::
mkdir -p /tmp/iso
scp <user>@<server>:/images/iso/rhels7.1/ppc64le/RHEL-LE-7.1-20150219.1-Server-ppc64le-dvd1.iso /tmp/iso
#. Mount the dvd iso to a directory on the management node. ::
#
# Assuming we are mounting at /mnt/iso/rhels7.1
#
mkdir -p /mnt/iso/rhels7.1
mount -o loop /tmp/iso/RHEL-LE-7.1-20150219.1-Server-ppc64le-dvd1.iso /mnt/iso/rhels7.1
#. Create the local repository configuration file pointing to mounted iso image. ::
cat /etc/yum/yum.repos.d/rhels71-base.repo
[rhel-7-server]
name=RHEL 7 SERVER packages
baseurl=file:///mnt/iso/rhels71/Server
enabled=1
gpgcheck=1
.. END_configure_base_os_repository
.. BEGIN_disable_firewall
.. DEPRECATED: Firewall instructions is not applicable after xCAT 2.8
The management node provides many services to the cluster nodes. Running a firewall on the management node can interfere with these services.
If your cluster is running on a secure network, the easiest thing to do is disable the firewall on the management node::
service iptables stop
service ip6tables stop
.. END_disable_firewall

View File

@ -0,0 +1,11 @@
Installation Guide for SUSE Linux Enterprise Server
===================================================
For the list of currently supported SLES operating systems, see :ref:`sles-os-support-label`.
.. toctree::
:maxdepth: 2
prepare_mgmt_node
install_xcat
configure_xcat

View File

@ -0,0 +1,2 @@
SLES 11
SLES 12 LE

5
source/help.rst Normal file
View File

@ -0,0 +1,5 @@
Need Help
=========
If you're having trouble, please email the xcat users mailing list: xcat-user@list.sourceforge.net

37
source/index.rst Normal file
View File

@ -0,0 +1,37 @@
xCAT stands for E\ **x**\ treme **C**\ loud/\ **C**\ luster **A**\ dministration **T**\ oolkit.
xCAT offers complete management of clouds, clusters (HPC), grids, datacenters,
renderfarms, online gaming infrastructure, and whatever tomorrows next buzzword may be.
xCAT enables the administrator to:
#. provision operating systems on physical (“bare metal”) or virtual machines.
#. provision machines using scripted install, stateless, statelite, iSCSI, or cloning.
#. remotely manage systems (lights out management, remote console support, distributed shell support).
#. quickly configure and control management nodes services: dns, http, dhcp, tftp, nfs, etc.
**xCAT** is an open source project hosted on `SourceForge <http://sourceforge.net/p/xcat/wiki/Main_Page/>`_ and currently mirrored on `GitHub <https://github.com/xcat2/xcat-core/>`_. (We hope to be natively hosted on GitHub in the near future)
Enjoy!
Content
=======
.. toctree::
:maxdepth: 2
guides/install-guides/index
guides/admin-guides/index
developers/index
advanced/index
help
notes/index
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -0,0 +1,19 @@
IBM HMC
=======
IBM HMC stands for **IBM Hardware Management Console**.
Details about IBM Hardware Management console can be found on the following links:
* `<https://en.wikipedia.org/wiki/IBM_Hardware_Management_Console>`_
* `<http://www.redbooks.ibm.com/abstracts/sg248232.html?Open>`_
Blah Blah....
**Topics:**
.. toctree::
:maxdepth: 2
vioserver

View File

@ -0,0 +1,122 @@
$ lspv
NAME PVID VG STATUS
hdisk0 00f60e589feeb90a rootvg active
hdisk1 00f60e58afa65a6e vdiskvg active
hdisk2 00f60e58286f497c vdisk2vg active
hdisk3 00f60e5828740e18 vdisk3vg active
hdisk4 00f60e5828755bf1 vdisk4vg active
hdisk5 00f60e582875fcbd vdisk5vg active
hdisk6 none None
hdisk7 none None
Create AIX cluster (cluster 4)
Cluster 1:
c910f02c06p02 - RHELS 6.6
...
c910f02c06p08
Cluster 2:
c910f02c06p09 - SLES 11.3
...
c910f02c06p15
Cluster 3:
c910f02c06p16 - RHELS 7.1
...
c910f02c06p22
c910f02c06p23 - 29
1 mgmt node
2 service node
4 compute
AIX DISK:
SVSA Physloc Client Partition ID
--------------- -------------------------------------------- ------------------
vhost21 U8233.E8B.100E58P-V1-C23 0x00000017
VTD vtdisk_p23
Status Available
LUN 0x8100000000000000
Backing device vg5lv1
Physloc
Mirrored N/A
LINUX DISK:
$ mkvg -help
Usage: mkvg [-f] [-vg VolumeGroup] PhysicalVolume ...
The mkvg command creates a new volume group, using the physical
volumes represented by the PhysicalVolume parameter.
-f Forces the volume group to be created on the specified
physical volume
-vg Specifies the volume group name rather than
having the name generated automatically.
$ mkvg -vg vdisk6vg hdisk6
vdisk6vg
0516-1254 mkvg: Changing the PVID in the ODM.
$ lspv
NAME PVID VG STATUS
hdisk0 00f60e589feeb90a rootvg active
hdisk1 00f60e58afa65a6e vdiskvg active
hdisk2 00f60e58286f497c vdisk2vg active
hdisk3 00f60e5828740e18 vdisk3vg active
hdisk4 00f60e5828755bf1 vdisk4vg active
hdisk5 00f60e582875fcbd vdisk5vg active
hdisk6 00f60e586479d7ec vdisk6vg active
hdisk7 none None
Create a logical volume of 1GB using 400PP
$ mklv -help
Usage: mklv [-mirror] [-lv LogicalVolume | -prefix Prefix]
[-type Type] VolumeGroup Size [PhysicalVolume ...]
Creates a logical volume.
-mirror Turns on mirroring.
-lv Specifies the logical volume name to use instead of
using a system-generated name.
-prefix Specifies the Prefix to use instead of the prefix
in a system-generated name for the new logical
volume.
-type Sets the logical volume type.
$ mklv -lv vg6p23 vdisk6vg 400
vg6p23
$ lsvg -lv vdisk6vg
vdisk6vg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
vg6p23 jfs 400 400 1 closed/syncd N/A
Went into VIOSERVER profile
- create new virtual adapter, and save the profile, number 32
Go to the LPAR profile, Virtual Adapter
- duplicated the AIX to Linux
- increased the max virtual adapter to 20
- assigned the CLIENT SCSI to 12, and set the adapter to 32, which was the new virtual adapter ID created in the virtual server
Back in the vioserver profile, -> virtual adapter
- Only selected client partition can connect, select client partition p23 and give it client adapter 12
Select "this adapter is required for partition activition" so the "required=yes"
lsdev -virtual

View File

@ -0,0 +1,306 @@
Virtual I/O Server (vioserver)
==============================
Expand the space of a logical volume
------------------------------------
#. SSH into the VIO server: ::
ssh padmin@<vioserver hostname> # Default password is padmin
# If you need to get to the root user, once logged in:
$ oem_setup_env
#. List out the physical volumes: ``lspv`` ::
$ lspv
NAME PVID VG STATUS
hdisk0 00f60e599ff13987 rootvg active
hdisk1 00f60e59afa94070 vdiskvg active
#. List out the volume groups: ``lsvg`` ::
$ lsvg
rootvg
vdiskvg
#. Get more information about a specific volume group: ``lsvg <volume_group>`` ::
$ lsvg vdiskvg
VOLUME GROUP: vdiskvg VG IDENTIFIER: 00f60e5900004c0000000147afa9411f
VG STATE: active PP SIZE: 256 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 546 (139776 megabytes)
MAX LVs: 256 FREE PPs: 10 (2560 megabytes)
LVs: 29 USED PPs: 536 (137216 megabytes)
OPEN LVs: 29 QUORUM: 2 (Enabled)
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32512
MAX PPs per PV: 1016 MAX PVs: 32
LTG size (Dynamic): 1024 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
PV RESTRICTION: none INFINITE RETRY: no
DISK BLOCK SIZE: 512 CRITICAL VG: no
#. List out the volume groups using the -lv option on lsvg: ``lsvg -lv <volume_group>`` ::
$ lsvg -lv vdiskvg
vdiskvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
vdisk00n02 jfs 160 160 1 open/syncd N/A
vdisk00n03 jfs 160 160 1 open/syncd N/A
vdisk00n04 jfs 40 40 1 open/syncd N/A
vdisk00n05 jfs 40 40 1 open/syncd N/A
vdisk00n06 jfs 40 40 1 open/syncd N/A
vdisk00n07 jfs 4 4 1 open/syncd N/A
vdisk00n08 jfs 4 4 1 open/syncd N/A
vdisk00n09 jfs 4 4 1 open/syncd N/A
vdisk00n10 jfs 4 4 1 open/syncd N/A
....
vdisk00n29 jfs 4 4 1 open/syncd N/A
vdisk00n30 jfs 4 4 1 open/syncd N/A
#. The lsvg command shows how many PPs there are in the volume group.
#. Remove a LV vdev to change from open/syncd to closed/syncd: ``rmvdev -vdev <lv_name>`` ::
$ rmvdev -vdev vdisk00n30
vtscsi28 deleted
$ lsvg -lv vdiskvg
vdiskvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
vdisk00n02 jfs 160 160 1 open/syncd N/A
vdisk00n03 jfs 160 160 1 open/syncd N/A
vdisk00n04 jfs 40 40 1 open/syncd N/A
...
...
vdisk00n29 jfs 4 4 1 open/syncd N/A
vdisk00n30 jfs 4 4 1 closed/syncd N/A
#. Now remove the lv using rmlv to free up the PP: ``rmlv <logical volume>`` ::
$ lsvg vdiskvg | grep FREE
MAX LVs: 256 FREE PPs: 10 (2560 megabytes)
$ rmlv vdisk00n30
Warning, all data contained on logical volume vdisk00n30 will be destroyed.
rmlv: Do you wish to continue? y(es) n(o)? y
rmlv: Logical volume vdisk00n30 is removed.
$ lsvg vdiskvg | grep FREE
MAX LVs: 256 FREE PPs: 14 (3584 megabytes)
#. Extend the Logical Volume: ::
$ extendlv vdisk00n07 40
$ lsvg -lv vdiskvg
vdiskvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
vdisk00n02 jfs 160 160 1 open/syncd N/A
...
vdisk00n07 jfs 44 44 1 open/syncd N/A
...
Add a physical volume into a volume group
-----------------------------------------
#. List out the physical volumes: ``lspv`` ::
$ lspv
NAME PVID VG STATUS
hdisk0 00f60e599ff13987 rootvg active
hdisk1 00f60e59afa94070 vdiskvg active
hdisk2 none None
hdisk3 none None
hdisk4 none None
hdisk5 none None
hdisk6 none None
hdisk7 none None
#. Get details for a volume group (VG) using: ``lsvg <volume_group>`` ::
$ lsvg vdiskvg
VOLUME GROUP: vdiskvg VG IDENTIFIER: 00f60e5900004c0000000147afa9411f
VG STATE: active PP SIZE: 256 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 546 (139776 megabytes)
MAX LVs: 256 FREE PPs: 18 (4608 megabytes)
LVs: 7 USED PPs: 528 (135168 megabytes)
OPEN LVs: 7 QUORUM: 2 (Enabled)
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32512
MAX PPs per PV: 1016 MAX PVs: 32
LTG size (Dynamic): 1024 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
PV RESTRICTION: none INFINITE RETRY: no
DISK BLOCK SIZE: 512 CRITICAL VG: no
#. Extend the volume group: ``extendvg <volume_group> <device_name>`` ::
$ extendvg vdiskvg hdisk2
Changing the PVID in the ODM.
Unable to add at least one of the specified physical volumes to the
volume group. The maximum number of physical partitions (PPs) supported
by the volume group must be increased. Use the lsvg command to display
the current maximum number of physical partitions (MAX PPs per PV:) and
chvg -factor to change the value.
extendvg: Unable to extend volume group.
$ lspv
NAME PVID VG STATUS
hdisk0 00f60e599ff13987 rootvg active
hdisk1 00f60e59afa94070 vdiskvg active
hdisk2 00f60e59529c77f2 None
hdisk3 none None
hdisk4 none None
hdisk5 none None
hdisk6 none None
hdisk7 none None
#. now what?....
$ lsvg vdiskvg
...
MAX PPs per PV: 1016 MAX PVs: 32
$ chvg -factor 2 vdiskvg
$ lsvg vdiskvg
...
MAX PPs per PV: 2032 MAX PVs: 16
Now let's take a look at doing the extend...
$ lsvg vdiskvg
...
VG PERMISSION: read/write TOTAL PPs: 546 (139776 megabytes)
MAX LVs: 256 FREE PPs: 18 (4608 megabytes)
LVs: 7 USED PPs: 528 (135168 megabytes)
$ extendvg vdiskvg hdisk2
$ lsvg vdiskvg
VG PERMISSION: read/write TOTAL PPs: 1663 (425728 megabytes)
MAX LVs: 256 FREE PPs: 1135 (290560 megabytes) <=== SUCCESS!
LVs: 7 USED PPs: 528 (135168 megabytes)
$ lsvg -lv vdiskvg
vdiskvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
vdisk00n02 jfs 160 160 1 open/syncd N/A
vdisk00n03 jfs 160 160 1 open/syncd N/A
vdisk00n04 jfs 40 40 1 open/syncd N/A
vdisk00n05 jfs 40 40 1 open/syncd N/A
vdisk00n06 jfs 80 80 1 open/syncd N/A
vdisk00n07 jfs 44 44 1 open/syncd N/A
vdisk00n11 jfs 4 4 1 open/syncd N/A
$ extendlv vdisk00n06 270
Some error messages may contain invalid information
for the Virtual I/O Server environment.
0516-622 extendlv: Warning, cannot write lv control block data.
0516-622 extendlv: Warning, cannot write lv control block data.
$ lsvg -lv vdiskvg
vdiskvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
vdisk00n02 jfs 160 160 1 open/syncd N/A
vdisk00n03 jfs 160 160 1 open/syncd N/A
vdisk00n04 jfs 40 40 1 open/syncd N/A
vdisk00n05 jfs 40 40 1 open/syncd N/A
vdisk00n06 jfs 350 350 2 open/syncd N/A <============
vdisk00n07 jfs 44 44 1 open/syncd N/A
vdisk00n11 jfs 4 4 1 open/syncd N/A
Create multiple SCSI profile for an LPAR
----------------------------------------
In this scenario, we are going to create another virtual SCSI profile for our management node ``c910f02c06p23`` so that we are able to switch profiles between AIX and Linux.
#. The current vhost for the server holding the AIX partition is: ::
SVSA Physloc Client Partition ID
--------------- -------------------------------------------- ------------------
vhost21 U8233.E8B.100E58P-V1-C23 0x00000017
VTD vtdisk_p23
Status Available
LUN 0x8100000000000000
Backing device vg5lv1
Physloc
Mirrored N/A
#. Locate a physical volume to create the new volume group for LINUX. ::
$ lspv
NAME PVID VG STATUS
hdisk0 00f60e589feeb90a rootvg active
hdisk1 00f60e58afa65a6e vdiskvg active
hdisk2 00f60e58286f497c vdisk2vg active
hdisk3 00f60e5828740e18 vdisk3vg active
hdisk4 00f60e5828755bf1 vdisk4vg active
hdisk5 00f60e582875fcbd vdisk5vg active
hdisk6 none None
hdisk7 none None
Will be using ``hdisk6`` to create the volume group
#. Create the new volume group using the ``mkvg`` command: ::
$ mkvg -vg vdisk6vg hdisk6
vdisk6vg
0516-1254 mkvg: Changing the PVID in the ODM.
Verify the volume group was created: ::
$ lspv
NAME PVID VG STATUS
hdisk0 00f60e589feeb90a rootvg active
...
hdisk6 00f60e586479d7ec vdisk6vg active
hdisk7 none None
#. Create a logical volume of 1GB using 400PP: ::
$ mklv -lv vg6p23 vdisk6vg 400
vg6p23
$ lsvg -lv vdisk6vg
vdisk6vg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
vg6p23 jfs 400 400 1 closed/syncd N/A
#. From the HMC GUI:
Went into VIOSERVER profile
- create new virtual adapter, and save the profile, number 32
Go to the LPAR profile, Virtual Adapter
- duplicated the AIX to Linux
- increased the max virtual adapter to 20
- assigned the CLIENT SCSI to 12, and set the adapter to 32, which was the new virtual adapter ID created in the virtual server
Back in the vioserver profile, -> virtual adapter
- Only selected client partition can connect, select client partition p23 and give it client adapter 12
Select "this adapter is required for partition activition" so the "required=yes"
lsdev -virtual

View File

@ -0,0 +1,8 @@
Hardware Management
===================
.. toctree::
:maxdepth: 2
hmc/index
ipmi/index

View File

@ -0,0 +1,9 @@
IPMI
====
IPMI stands for **Intelligent Platform Management Interface**.
.. toctree::
:maxdepth: 2

9
source/notes/index.rst Normal file
View File

@ -0,0 +1,9 @@
Notes
=====
This section contains my own personal notes
.. toctree::
:maxdepth: 2
hw_mgmt/index

View File

@ -0,0 +1,33 @@
Supported Architectures
=======================
ppc64
ppc64le
x86_64
Supported Operating Systems
===========================
.. _rhels-os-support-label:
Red Hat Enterprise Linux (RHEL) operating systems
-------------------------------------------------
* rhels 6.X
* rhels 7.1 (little endian)
.. _sles-os-support-label:
Suse Linux Enterprise Server (SLES) operating systems
-----------------------------------------------------
* sles 11.3
* sles 12.X
.. _ubuntu-os-support-label:
Ubuntu Server LTS
-----------------
* ubuntu 14.04.1 (ppc64le)
* ubuntu 14.04.2 (ppc64le)