mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-06-02 11:37:07 +00:00
commit
62891bdc25
14
README
14
README
@ -1,14 +0,0 @@
|
||||
xCAT - eXtreme Cloud Administration Toolkit
|
||||
|
||||
xCAT is a toolkit for the deployment and administration of clusters.
|
||||
|
||||
xCAT documentation is available at: http://xcat-docs.readthedocs.org/en/latest/
|
||||
|
||||
xCAT is made available as open source software under the EPL license:
|
||||
http://www.opensource.org/licenses/eclipse-1.0.php
|
||||
|
||||
|
||||
Developers and prospective contributors are encouraged to read the developers
|
||||
guide: http://xcat-docs.readthedocs.org/en/latest/developers/
|
||||
and in particular the github related subsection:
|
||||
http://xcat-docs.readthedocs.org/en/latest/developers/github/
|
39
README.rst
Normal file
39
README.rst
Normal file
@ -0,0 +1,39 @@
|
||||
xCAT
|
||||
----
|
||||
|
||||
xCAT is a toolkit for the deployment and administration of clusters.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
xCAT documentation is available at: http://xcat-docs.readthedocs.io/en/latest/
|
||||
|
||||
|docs_latest| |docs_212| |docs_211|
|
||||
|
||||
Open Source License
|
||||
-------------------
|
||||
|
||||
xCAT is made available as open source software under the EPL license:
|
||||
http://www.opensource.org/licenses/eclipse-1.0.php
|
||||
|
||||
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_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/
|
||||
|
||||
.. |docs_211| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=2.11
|
||||
:alt: 2.11 documentation status
|
||||
:scale: 100%
|
||||
:target: http://xcat-docs.readthedocs.io/en/2.11/
|
||||
|
||||
.. |docs_latest| image:: https://readthedocs.org/projects/xcat-docs/badge/?version=latest
|
||||
:alt: Latest documentation status
|
||||
:scale: 100%
|
||||
:target: http://xcat-docs.readthedocs.io/en/latest/
|
@ -1,21 +1,27 @@
|
||||
# Welcome to the xCAT documentation
|
||||
|
||||
We are working on improving the documentation. The latest docs are here: http://xcat-docs.readthedocs.org/en/latest/
|
||||
The latest docs are here: http://xcat-docs.readthedocs.io/en/latest/
|
||||
|
||||
The documentation project is written in restructured text (.rst) using Sphinx.
|
||||
To build the docs locally:
|
||||
Status:
|
||||
[](http://xcat-docs.readthedocs.io/en/latest/?badge=latest)
|
||||
[](http://xcat-docs.readthedocs.io/en/2.11/?badge=2.11)
|
||||
|
||||
|
||||
The documentation project is written in restructured text (.rst) using Sphinx and hosted on ReadTheDocs.
|
||||
|
||||
## Building Documentation
|
||||
|
||||
* Clone the project
|
||||
|
||||
* Using pip, install sphinx (See: http://pip.readthedocs.org/)
|
||||
```
|
||||
```
|
||||
pip install sphinx
|
||||
```
|
||||
```
|
||||
|
||||
* Build the Docs
|
||||
```
|
||||
```
|
||||
cd xcat-core/docs
|
||||
make html
|
||||
```
|
||||
```
|
||||
|
||||
* View the docs by opening index.html from a web browser under xcat-core/docs/build/html/index.html
|
||||
|
@ -146,9 +146,10 @@ To update the xCAT Docker image, you can run ::
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
.. [1] When you start up xCAT Docker container, you might see an error message at the end of the output like: ::
|
||||
.. [1]
|
||||
When you start up xCAT Docker container, you might see an error message at the end of the output like: ::
|
||||
|
||||
"Couldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable."
|
||||
Couldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.`
|
||||
|
||||
You can ignore it, the container has already been running. It is a Docker bug `#1214 <https://github.com/docker/compose/issues/1214>`_
|
||||
You can ignore it, the container has already been running. It is a Docker bug `#1214 <https://github.com/docker/compose/issues/1214>`_
|
||||
|
||||
|
@ -5,7 +5,8 @@ The Docker linux container technology is currently very popular. xCAT can help m
|
||||
|
||||
This document describes how to use xCAT for docker management, from Docker Host setup to docker container operationis.
|
||||
|
||||
**Note:** The document is based on **Docker Version 1.10.x** and **Docker API version 1.22.** And the Docker Host is based on **ubuntu14.04.3 x86_64**. At the time of this writing (February 2016), docker host images are not available for **ppc64** architecture from docker.org. You can search online to find them or build your own.
|
||||
**Note:** The document was verified with **Docker Version 1.10, 1.11** and **Docker API version 1.22.** The Docker Host was verified on **ubuntu14.04.3 x86_64**, **ubuntu15.10 x86_64**, **ubuntu16.04 x86_64** and **ubuntu16.04 ppc64el**.
|
||||
|
||||
|
||||
Setting up Docker Host
|
||||
----------------------
|
||||
@ -23,17 +24,20 @@ The osimage represents the image of the Operating System which will be deployed
|
||||
|
||||
Copy files out from DVDs/ISOs and generate
|
||||
""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
::
|
||||
**[ubuntu x86_64]** ::
|
||||
|
||||
copycds ubuntu-14.04.3-server-amd64.iso
|
||||
copycds ubuntu-xxx-server-amd64.iso
|
||||
|
||||
**[ubuntu16.04 ppc64el]** ::
|
||||
|
||||
copycds ubuntu-16.04-server-ppc64el.iso
|
||||
|
||||
Create pkglist and otherpkglist of osimage for dockerhost
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
The pkglist file should contain the following: ::
|
||||
|
||||
# cat /install/custom/ubuntu1404/ubuntu1404.pkglist
|
||||
# cat /install/custom/ubuntu/ubuntu.pkglist
|
||||
openssh-server
|
||||
ntp
|
||||
gawk
|
||||
@ -41,14 +45,38 @@ The pkglist file should contain the following: ::
|
||||
snmpd
|
||||
bridge-utils
|
||||
|
||||
The otherpkglist file should contain the following: ::
|
||||
The otherpkglist file should contain the following:
|
||||
|
||||
# cat /install/custom/ubuntu1404/ubuntu1404_docker.pkglist
|
||||
**[ubuntu x86_64]** ::
|
||||
|
||||
# cat /install/custom/ubuntu/ubuntu_docker.pkglist
|
||||
docker-engine
|
||||
|
||||
**[ubuntu16.04 ppc64el]**
|
||||
|
||||
At the time of this writing (February 2016), docker package is not available for **ppc64el** architecture from docker.org. You can follow instructions below on how to manually download and install it.
|
||||
|
||||
* Download docker engine for ppc64el
|
||||
::
|
||||
|
||||
wget http://launchpadlibrarian.net/251622081/docker.io_1.10.3-0ubuntu4_ppc64el.deb -O /install/docker_ppc64el/docker.io_1.10.3-0ubuntu4_ppc64el.deb
|
||||
|
||||
* Configure **otherpkgdir** like this
|
||||
::
|
||||
|
||||
otherpkgdir=/install/docker_ppc64el
|
||||
|
||||
* The **otherpkglist** file should be
|
||||
::
|
||||
|
||||
# cat /install/custom/ubuntu/ubuntu_docker.pkglist
|
||||
docker.io
|
||||
|
||||
Create the osimage for dockerhost
|
||||
"""""""""""""""""""""""""""""""""
|
||||
The osimage for dockerhost will be like this: ::
|
||||
The osimage for dockerhost will be like this:
|
||||
|
||||
**[ubuntu x86_64]** ::
|
||||
|
||||
# lsdef -t osimage ub14.04.03-x86_64-dockerhost
|
||||
Object name: ub14.04.03-x86_64-dockerhost
|
||||
@ -57,13 +85,29 @@ The osimage for dockerhost will be like this: ::
|
||||
osname=Linux
|
||||
osvers=ubuntu14.04.3
|
||||
otherpkgdir=https://apt.dockerproject.org/repo ubuntu-trusty main,http://cz.archive.ubuntu.com/ubuntu trusty main
|
||||
otherpkglist=/install/custom/ubuntu1404/ubuntu1404_docker.pkglist
|
||||
otherpkglist=/install/custom/ubuntu/ubuntu_docker.pkglist
|
||||
pkgdir=/install/ubuntu14.04.3/x86_64
|
||||
pkglist=/install/custom/ubuntu1404/ubuntu1404.pkglist
|
||||
pkglist=/install/custom/ubuntu/ubuntu.pkglist
|
||||
profile=compute
|
||||
provmethod=install
|
||||
template=/opt/xcat/share/xcat/install/ubuntu/compute.tmpl
|
||||
|
||||
**[ubuntu16.04 ppc64el]** ::
|
||||
|
||||
# lsdef -t osimage ub16.04-ppc64el-dockerhost
|
||||
Object name: ub16.04-ppc64el-dockerhost
|
||||
imagetype=linux
|
||||
osarch=ppc64el
|
||||
osname=Linux
|
||||
osvers=ubuntu16.04
|
||||
otherpkgdir=/install/docker_ppc64el
|
||||
otherpkglist=/install/custom/ubuntu/ubuntu_docker.pkglist
|
||||
pkgdir=/install/ubuntu16.04/ppc64el
|
||||
pkglist=/install/custom/ubuntu/ubuntu.pkglist
|
||||
profile=compute
|
||||
provmethod=install
|
||||
template=/opt/xcat/share/xcat/install/ubuntu/compute.tmpl
|
||||
|
||||
Preparing setup trust connection for docker service and create docker network object
|
||||
````````````````````````````````````````````````````````````````````````````````````
|
||||
Currently, a customer defined network object is needed when create a docker container with static IP address, it can be done with the command: ::
|
||||
@ -99,7 +143,7 @@ After the dockerhost is ready, a docker instance can be managed through xCAT com
|
||||
postbootscripts=otherpkgs
|
||||
postscripts=syslog,remoteshell,syncfiles
|
||||
|
||||
The command :doc:`mkdef </guides/admin-guides/references/man1/mkdef.1>` or :doc:`chdef </guides/admin-guides/references/man1/chdef.1>` can be used to create a new docker instance node or change the node attributes. Specify any available unused ip address for *ip* attribute.
|
||||
The command :doc:`mkdef </guides/admin-guides/references/man1/mkdef.1>` or :doc:`chdef </guides/admin-guides/references/man1/chdef.1>` can be used to create a new docker instance node or change the node attributes. Specify any available unused ip address for *ip* attribute. *mac* attribute is optional and if left unset, will be filled in by *mkdocker* command.
|
||||
|
||||
After docker instance node is defined, use command `makehosts host01c01` to add node *host01c01* and its IP address *10.0.120.1* into /etc/hosts.
|
||||
|
||||
@ -173,3 +217,26 @@ Check docker instance status
|
||||
::
|
||||
|
||||
rpower <node> state
|
||||
|
||||
Troubleshooting
|
||||
--------------------------
|
||||
|
||||
If things go wrong:
|
||||
|
||||
* After dockerhost node boots, check contents of **/var/log/xcat/xcat.log** file on the dockerhost for errors.
|
||||
|
||||
* Verify **nicname** specified in **Preparing setup trust connection for docker service and create docker network object** section exists on the docker host. Depending on the version of Ubuntu OS and host architecture, it could be **eth0**, or **em1**, or **eno1**, or **enp0s1**. Verify by running on the dockerhost
|
||||
::
|
||||
|
||||
ip addr show dev <nicname>
|
||||
|
||||
* Run **ps -ef | grep docker** to verify docker engine is running with configured options. It should look something like
|
||||
::
|
||||
|
||||
root 3703 1 0 Apr15 ? 00:12:28 /usr/bin/docker daemon -H unix:///var/run/docker.sock -H tcp://host01:2375 --tls --tlscacert=/root/.docker/ca-cert.pem --tlscert=/root/.docker/dockerhost-cert.pem --tlskey=/root/.docker/dockerhost-cert.pem --tlsverify=true --raw-logs
|
||||
|
||||
If the output is missing some options, verify that file **/lib/systemd/system/docker.service** contains the following lines
|
||||
::
|
||||
|
||||
EnvironmentFile=-/etc/default/docker
|
||||
ExecStart=/usr/bin/docker daemon $DOCKER_OPTS -H fd://
|
||||
|
@ -17,3 +17,4 @@ Within the NVIDIA CUDA Toolkit, installing the ``cuda`` package will install bot
|
||||
deploy_cuda_node.rst
|
||||
verify_cuda_install.rst
|
||||
management.rst
|
||||
update_nvidia_driver.rst
|
||||
|
45
docs/source/advanced/gpu/nvidia/update_nvidia_driver.rst
Normal file
45
docs/source/advanced/gpu/nvidia/update_nvidia_driver.rst
Normal file
@ -0,0 +1,45 @@
|
||||
Update NVIDIA Driver
|
||||
=====================
|
||||
|
||||
If the user wants to update the newer NVIDIA driver on the system, follow the :doc:`Create CUDA software repository </advanced/gpu/nvidia/repo/index>` document to create another repository for the new driver.
|
||||
|
||||
The following example assumes the new driver is in ``/install/cuda-7.5/ppc64le/nvidia_new``.
|
||||
|
||||
Diskful
|
||||
-------
|
||||
|
||||
#. Change pkgdir for the cuda image: ::
|
||||
|
||||
chdef -t osimage -o rhels7.2-ppc64le-install-cudafull \
|
||||
pkgdir=/install/cuda-7.5/ppc64le/nvidia_new,/install/cuda-7.5/ppc64le/cuda-deps
|
||||
|
||||
|
||||
#. Use xdsh command to remove all the NVIDIA rpms: ::
|
||||
|
||||
xdsh <noderange> "yum remove *nvidia* -y"
|
||||
|
||||
|
||||
#. Run updatenode command to update NVIDIA driver on the compute node: ::
|
||||
|
||||
updatenode <noderange> -S
|
||||
|
||||
|
||||
#. Reboot compute node: ::
|
||||
|
||||
rpower <noderange> off
|
||||
rpower <noderange> on
|
||||
|
||||
|
||||
#. Verify the newer driver level: ::
|
||||
|
||||
nvidia-smi | grep Driver
|
||||
|
||||
|
||||
|
||||
|
||||
Diskless
|
||||
--------
|
||||
|
||||
To update a new NVIDIA driver on diskless compute nodes, re-generate the osimage pointing to the new NVIDIA driver repository and reboot the node to load the diskless image.
|
||||
|
||||
Refer to :doc:`Create osimage definitions </advanced/gpu/nvidia/osimage/index>` for specific instructions.
|
@ -18,8 +18,8 @@ The MySQL database is supported by xCAT since xCAT 2.1. MariaDB is a fork of th
|
||||
MySQL/MariaDB packages are shipped as part of most Linux Distributions.
|
||||
|
||||
|
||||
Redhat Enterprise Linux
|
||||
-----------------------
|
||||
Red Hat Enterprise Linux
|
||||
------------------------
|
||||
|
||||
* MySQL - Using ``yum``, ensure that the following packages are installed on the management node: ::
|
||||
|
||||
|
@ -4,13 +4,13 @@ Install PostgreSQL
|
||||
PostgreSQL packages are shipped as part of most Linux Distributions.
|
||||
|
||||
|
||||
Redhat Enterprise Linux
|
||||
-----------------------
|
||||
Red Hat Enterprise Linux
|
||||
------------------------
|
||||
|
||||
Using yum, install the following rpms: ::
|
||||
|
||||
yum install postgresql-libs-* postgresql-server-* postgresql-*
|
||||
yum install perl-DBD-Pg*
|
||||
yum install postgresql*
|
||||
yum install perl-DBD-Pg
|
||||
|
||||
|
||||
Suse Linux Enterprise Server
|
||||
@ -20,8 +20,8 @@ Suse Linux Enterprise Server
|
||||
|
||||
Using zyppr, install the following rpms: ::
|
||||
|
||||
zyppr install postgresql-libs-* postgresql-server-* postgresql-*
|
||||
zyppr install perl-DBD-Pg*
|
||||
zypper install postgresql*
|
||||
zypper install perl-DBD-Pg
|
||||
|
||||
|
||||
Debian/Ubuntu
|
||||
|
@ -36,7 +36,7 @@ Adding Multiple Versions of the Same Kit Component to an OS Image Definition
|
||||
|
||||
xCAT allows to have multiple versions/releases of a product software kit available in the cluster. Typically, different OS image definitions corresponding to the different versions/releases of a product software stack. However, in some instances, may need mulitple versions/releases of the same product available within a single OS image. This is only feasible if the software product supports the install of multiple versions or releases of its product within an OS image.
|
||||
|
||||
Currently, it is not possible to install multiple versions of a product into an OS image using xCAT commands. xCAT uses yum on Redhat and zypper on SLES to install product rpms. These package managers do not provide an interface to install different versions of the same package, and will always force an upgrade of the package. We are investigating different ways to accomplish this function for future xCAT releases.
|
||||
Currently, it is not possible to install multiple versions of a product into an OS image using xCAT commands. xCAT uses yum on RedHat and zypper on SLES to install product rpms. These package managers do not provide an interface to install different versions of the same package, and will always force an upgrade of the package. We are investigating different ways to accomplish this function for future xCAT releases.
|
||||
|
||||
Some software products have designed their packaging to leave previous versions of the software installed in an OS image even when the product is upgraded. This is done by using different package names for each version/release, so that the package manager does not see the new version as an upgrade, but rather as a new package install. In this case, it is possible to use xCAT to install multiple versions of the product into the same image.
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Quick Start Guide
|
||||
=================
|
||||
|
||||
This quick start is provided to guide users through the steps required to install the IBM High Performance Computing (HPC) software stack on a cluster managed by xCAT.
|
||||
This quick start is provided to guide users through the steps required to install the IBM High Performance Computing (HPC) software stack on a cluster managed by xCAT. (*NOTE:* xCAT provides XLC and XLF partial kits, but all other HPC kits are provided by the HPC products teams, xCAT may not have any knowledges of their dependencies and requirements)
|
||||
|
||||
The following software kits will be used to install the IBM HPC software stack on to a RedHat Enterprise Linux 7.2 operating system running on ppc64le architecture.
|
||||
|
||||
@ -101,10 +101,11 @@ The following software kits will be used to install the IBM HPC software stack o
|
||||
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
|
||||
essl-computenode-3264rtecuda-5.4.0-0-rhels-7.2-ppc64le
|
||||
|
||||
If the system doesn't have GPU and the CUDA toolkit is not needed, the adminstrator should not add the following kit components that requires the CUDA packages: ``essl-loginnode-5.4.0-0-rhels-7.2-ppc64le``, ``essl-computenode-3264rte-5.4.0-0-rhels-7.2-ppc64le`` and ``essl-computenode-3264rtecuda-5.4.0-0-rhels-7.2-ppc64le``. Please check the ESSL installation guide: http://www.ibm.com/support/knowledgecenter/SSFHY8_5.4.0/com.ibm.cluster.essl.v5r4.essl300.doc/am5il_xcatinstall.htm
|
||||
|
||||
#. Add the **Parallel ESSL** kitcomponents to osimage.
|
||||
|
||||
*Note:* ESSL kitcomponents are required for the PESSL. ::
|
||||
**Note:** ESSL kitcomponents are required for the PESSL. ::
|
||||
|
||||
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
|
||||
pessl-loginnode-5.2.0-0-rhels-7.2-ppc64le
|
||||
|
@ -18,6 +18,9 @@ Dependencies
|
||||
addkitcomp -a -i rhels7.2-ppc64le-install-compute \
|
||||
essl-computenode-3264rte-5.4.0-0-rhels-7.2-ppc64le
|
||||
|
||||
Reference
|
||||
---------
|
||||
Refer to ESSL installation guide for more information: http://www.ibm.com/support/knowledgecenter/SSFHY8_5.4.0/com.ibm.cluster.essl.v5r4.essl300.doc/am5il_xcatinstall.htm
|
||||
|
||||
|
||||
.. [#] If using an older release, refer to `IBM HPC Stack in an xCAT Cluster <https://sourceforge.net/p/xcat/wiki/IBM_HPC_Stack_in_an_xCAT_Cluster/>`_
|
||||
|
@ -12,7 +12,7 @@ The paralell compression tool ``pigz`` can be enabled by installing ``pigz`` pac
|
||||
|
||||
* **[RHEL]**
|
||||
|
||||
The package ``pigz`` is shipped in Extra Packages for Enterprise Linux (or EPEL) instead of Redhat iso, this involves some complexity.
|
||||
The package ``pigz`` is shipped in Extra Packages for Enterprise Linux (or EPEL) instead of RedHat iso, this involves some complexity.
|
||||
|
||||
Extra Packages for Enterprise Linux (or EPEL) is a Fedora Special Interest Group that creates, maintains, and manages a high quality set of additional packages for Enterprise Linux, including, but not limited to, Red Hat Enterprise Linux (RHEL), CentOS and Scientific Linux (SL), Oracle Linux (OL).
|
||||
|
||||
|
@ -6,7 +6,7 @@ By default, xCAT will install the operating system on the first disk and with de
|
||||
|
||||
- 'Partition definition file' way can be used for RedHat, SLES and Ubuntu.
|
||||
- 'partition definition script' way was tested only for RedHat and Ubuntu, use this feature on SLES at your own risk.
|
||||
- Because disk configuration for ubuntu is different from Redhat, there maybe some section special for ubuntu.
|
||||
- Because disk configuration for ubuntu is different from RedHat, there maybe some section special for ubuntu.
|
||||
|
||||
.. END_Overview
|
||||
|
||||
@ -356,7 +356,7 @@ Run the following commands to associate the partition with the osimage: ::
|
||||
chdef -t osimage <osimagename> partitionfile=/install/custom/my-partitions
|
||||
nodeset <nodename> osimage=<osimage>
|
||||
|
||||
- For Redhat, when nodeset runs and generates the /install/autoinst file for a node, it will replace the #XCAT_PARTITION_START#...#XCAT_PARTITION_END# directives from your osimage template with the contents of your custom partitionfile.
|
||||
- For RedHat, when nodeset runs and generates the /install/autoinst file for a node, it will replace the #XCAT_PARTITION_START#...#XCAT_PARTITION_END# directives from your osimage template with the contents of your custom partitionfile.
|
||||
|
||||
- For Ubuntu, when nodeset runs and generates the /install/autoinst file for a node, it will generate a script to write the partition configuration to /tmp/partitionfile, this script will replace the #XCA_PARTMAN_RECIPE_SCRIPT# directive in /install/autoinst/<node>.pre.
|
||||
|
||||
@ -365,7 +365,7 @@ Run the following commands to associate the partition with the osimage: ::
|
||||
|
||||
.. BEGIN_Partition_Definition_Script_overview
|
||||
|
||||
Create a shell script that will be run on the node during the install process to dynamically create the disk partitioning definition. This script will be run during the OS installer %pre script on Redhat or preseed/early_command on Unbuntu execution and must write the correct partitioning definition into the file /tmp/partitionfile on the node
|
||||
Create a shell script that will be run on the node during the install process to dynamically create the disk partitioning definition. This script will be run during the OS installer %pre script on RedHat or preseed/early_command on Unbuntu execution and must write the correct partitioning definition into the file /tmp/partitionfile on the node
|
||||
|
||||
.. END_Partition_Definition_Script_overview
|
||||
|
||||
@ -379,7 +379,7 @@ The purpose of the partition script is to create the /tmp/partionfile that will
|
||||
|
||||
.. BEGIN_Partition_Definition_Script_Create_partition_script_example_redhat_sles
|
||||
|
||||
Here is an example of the partition script on Redhat and SLES, the partitioning script is ``/install/custom/my-partitions.sh``: ::
|
||||
Here is an example of the partition script on RedHat and SLES, the partitioning script is ``/install/custom/my-partitions.sh``: ::
|
||||
|
||||
instdisk="/dev/sda"
|
||||
|
||||
@ -448,7 +448,7 @@ Run below commands to associate partition script with osimage: ::
|
||||
nodeset <nodename> osimage=<osimage>
|
||||
|
||||
- The "s:" preceding the filename tells nodeset that this is a script.
|
||||
- For Redhat, when nodeset runs and generates the /install/autoinst file for a node, it will add the execution of the contents of this script to the %pre section of that file. The nodeset command will then replace the #XCAT_PARTITION_START#...#XCAT_PARTITION_END# directives from the osimage template file with "%include /tmp/partitionfile" to dynamically include the tmp definition file your script created.
|
||||
- For RedHat, when nodeset runs and generates the /install/autoinst file for a node, it will add the execution of the contents of this script to the %pre section of that file. The nodeset command will then replace the #XCAT_PARTITION_START#...#XCAT_PARTITION_END# directives from the osimage template file with "%include /tmp/partitionfile" to dynamically include the tmp definition file your script created.
|
||||
- For Ubuntu, when nodeset runs and generates the /install/autoinst file for a node, it will replace the "#XCA_PARTMAN_RECIPE_SCRIPT#" directive and add the execution of the contents of this script to the /install/autoinst/<node>.pre, the /install/autoinst/<node>.pre script will be run in the preseed/early_command.
|
||||
|
||||
.. END_Partition_Definition_Script_Associate_partition_script_with_osimage_common
|
||||
|
@ -43,11 +43,15 @@ For ubuntu ppc64le, the initrd.gz shipped with the ISO does not support network
|
||||
|
||||
* Download mini.iso from
|
||||
|
||||
[ubuntu 14.04.1]: http://ports.ubuntu.com/ubuntu-ports/dists/$(lsb_release-sc)/main/installer-ppc64el/current/images/netboot/
|
||||
[ubuntu 14.04.1]: http://xcat.org/files/netboot/ubuntu14.04.1/ppc64el/mini.iso
|
||||
|
||||
[ubuntu 14.04.2]: http://ports.ubuntu.com/ubuntu-ports/dists/trusty-updates/main/installer-ppc64el/current/images/utopic-netboot/
|
||||
[ubuntu 14.04.2]: http://xcat.org/files/netboot/ubuntu14.04.2/ppc64el/mini.iso
|
||||
|
||||
[ubuntu 14.04.3]: http://ports.ubuntu.com/ubuntu-ports/dists/trusty-updates/main/installer-ppc64el/current/images/vivid-netboot/
|
||||
[ubuntu 14.04.3]: http://xcat.org/files/netboot/ubuntu14.04.3/ppc64el/mini.iso
|
||||
|
||||
[ubuntu 14.04.4]: http://xcat.org/files/netboot/ubuntu14.04.4/ppc64el/mini.iso
|
||||
|
||||
[ubuntu 16.04]: http://xcat.org/files/netboot/ubuntu16.04/ppc64el/mini.iso
|
||||
|
||||
* Mount mini.iso ::
|
||||
|
||||
|
@ -1,121 +1,73 @@
|
||||
Trim diskless rootimg
|
||||
=====================
|
||||
|
||||
To reduce the memory and boot-up time for the diskless node, the initrd and rootimg.gz should be kept as compact as possible under the premise of meeting the user's requirements.
|
||||
|
||||
the exclude list attribute: linuximage.exlist
|
||||
----------------------------------------------
|
||||
Exclude list
|
||||
------------
|
||||
|
||||
To reduce the memory occupation and boot-up time for the diskless node, the initrd and rootimg.gz should be kept as compact as possible under the premise of meeting the user's requirements.
|
||||
|
||||
xCAT provides an **exclude list** attribute ``linuximage.exlist`` in the **osimage** object definition, which enables user to trim the rootimg on the diskless node after the rpms are installed into the rootimg directory by ``genimage`` on management node.
|
||||
xCAT provides an attribute ``exlist`` in the **osimage** object definition, that allows the user to select files to exclude when building the ``rootimg.gz`` file for the diskless node.
|
||||
|
||||
|
||||
Take the osimage **sles12.1-ppc64le-netboot-compute** for example::
|
||||
|
||||
# lsdef -t osimage -o sles12.1-ppc64le-netboot-compute
|
||||
# lsdef -t osimage -o sles12.1-ppc64le-netboot-compute -i exlist
|
||||
Object name: sles12.1-ppc64le-netboot-compute
|
||||
exlist=/opt/xcat/share/xcat/netboot/sles/compute.sles12.ppc64le.exlist
|
||||
imagetype=linux
|
||||
osarch=ppc64le
|
||||
osdistroname=sles12.1-ppc64le
|
||||
osname=Linux
|
||||
osvers=sles12.1
|
||||
otherpkgdir=/install/post/otherpkgs/sles12.1/ppc64le
|
||||
permission=755
|
||||
pkgdir=/install/sles12.1/ppc64le
|
||||
pkglist=/opt/xcat/share/xcat/netboot/sles/compute.sles12.ppc64le.pkglist
|
||||
postinstall=/opt/xcat/share/xcat/netboot/sles/compute.sles12.ppc64le.postinstall
|
||||
profile=compute
|
||||
provmethod=netboot
|
||||
rootimgdir=/install/netboot/sles12.1/ppc64le/compute
|
||||
|
||||
|
||||
the content of exlist file
|
||||
--------------------------
|
||||
Content of the Exclude List file
|
||||
--------------------------------
|
||||
|
||||
The file specified in ``linuximage.exlist`` includes **relative path** of the directories and files that will be excluded from the **rootimg.gz** generated by ``packimage``. The **relative path** suppose the ``rootimg`` directory, ``/install/netboot/sles12.1/ppc64le/compute/rootimg`` here, to be the base directory. [1]_ [2]_
|
||||
The file specified in ``linuximage.exlist`` includes **relative path** of the directories and files that will be excluded from the **rootimg.gz** generated by ``packimage``. The **relative path** assumes the ``rootimg`` directory, ``/install/netboot/sles12.1/ppc64le/compute/rootimg`` here, to be the base directory. [1]_
|
||||
|
||||
xCAT ships a default exlist file, user can add or remove entries based on it according to their need.
|
||||
The following is a sample of ``exlist`` file ::
|
||||
|
||||
The content of the default exlist file ``/opt/xcat/share/xcat/netboot/sles/compute.sles12.ppc64le.exlist`` is: ::
|
||||
|
||||
# cat /opt/xcat/share/xcat/netboot/sles/compute.sles12.ppc64le.exlist
|
||||
./boot*
|
||||
./etc/bootsplash/themes/SLES/images*
|
||||
./opt/sci/include*
|
||||
./usr/include*
|
||||
./usr/lib/locale*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/auto/Encode/CN*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/auto/Encode/JP*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/auto/Encode/TW*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/auto/Encode/KR*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/CN*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/JP*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/KR*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/TW*
|
||||
./usr/lib64/gcc/powerpc64le-suse-linux/4.8/include*
|
||||
./usr/local/include*
|
||||
./usr/local/man*
|
||||
./usr/powerpc64le-suse-linux/include*
|
||||
...
|
||||
./usr/share/X11/locale/*
|
||||
+./usr/share/X11/locale/en_US.UTF-8*
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/JP*
|
||||
+./usr/share/X11/locale/C*
|
||||
./usr/share/cracklib*
|
||||
./usr/share/doc*
|
||||
./usr/share/doc/packages/cyrus-sasl/doc*
|
||||
./usr/share/gnome*
|
||||
./usr/share/i18n*
|
||||
./usr/share/info*
|
||||
./usr/share/locale/*
|
||||
+./usr/share/locale/en_US*
|
||||
+./usr/share/locale/C*
|
||||
./usr/share/man*
|
||||
./usr/share/omf*
|
||||
./usr/share/vim/site/doc*
|
||||
./usr/share/vim/vim[0-9]*/doc*
|
||||
./var/cache/man*
|
||||
./var/cache/zypp*
|
||||
...
|
||||
|
||||
The content above presents some syntax supported in exlist file:
|
||||
|
||||
* exclude entry::
|
||||
* Exclude files::
|
||||
|
||||
./usr/share/X11/locale/*
|
||||
./usr/share/X11/locale/*
|
||||
|
||||
all the files and subdirectories under ``rootimg/usr/share/X11/locale/`` will be excluded.
|
||||
All the files and subdirectories under ``rootimg/usr/share/X11/locale/`` will be excluded.
|
||||
|
||||
* include entry::
|
||||
..
|
||||
|
||||
+./usr/share/locale/C*
|
||||
* Exclude Files using Patterns [2]_::
|
||||
|
||||
all the files and subdirectories with the name matching pattern ``C*`` under ``/usr/share/locale/`` will be included in the **rootimg.gz**, it is quite useful to use ``+`` initialed entries following an exclude entry to include some specific files or directories under the excluded parent directory.
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/JP*
|
||||
|
||||
* pattern of the file name and directory [3]_::
|
||||
Use regular expression to easily exclude files. The above example will exclude any Perl library installed under ``/usr/lib/`` matching ``ppc64le-linux-thread-multi/Encode/JP*``
|
||||
|
||||
./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/JP*
|
||||
..
|
||||
|
||||
all the files and subdirectories matching the pattern ``./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/JP*`` will be excluded, such as ::
|
||||
* Include files::
|
||||
|
||||
./usr/lib/perl5/5.18.2/ppc64le-linux-thread-multi/Encode/JP
|
||||
./usr/lib/perl5/5.18.2/ppc64le-linux-thread-multi/Encode/JP/H2Z.pm
|
||||
./usr/lib/perl5/5.18.2/ppc64le-linux-thread-multi/Encode/JP/JIS7.pm
|
||||
./usr/lib/perl5/5.18.2/ppc64le-linux-thread-multi/Encode/JP.pm
|
||||
+./usr/share/locale/C*
|
||||
|
||||
It is useful to include files following an exclude entry to qiuckly remove a larger set of files using a wildcard and then adding back the few necessary files using the + sign. In the above example, all the files and sub-directories matching the pattern ``/usr/share/locale/C*`` will be included in the ``rootimg.gz`` file.
|
||||
|
||||
|
||||
customize the exlist file and the osimage definition
|
||||
----------------------------------------------------
|
||||
Customize the ``exlist`` file and the osimage definition
|
||||
--------------------------------------------------------
|
||||
|
||||
Please check the default exlist file and make sure:
|
||||
Check the default exlist file and make sure:
|
||||
|
||||
* all files and directories you do not want in the image will be excluded from the rootimg.
|
||||
|
||||
* no file or directory you need will be excluded from the rootimg.
|
||||
|
||||
|
||||
If you want to customize the osimage ``sles12.1-ppc64le-netboot-compute`` with your own exlist file, please follow the following steps: ::
|
||||
If you want to customize the osimage ``sles12.1-ppc64le-netboot-compute`` with your own exlist file, follow the following steps: ::
|
||||
|
||||
#create a customized exlist file based on the default one
|
||||
cp /opt/xcat/share/xcat/netboot/sles/compute.sles12.ppc64le.exlist /install/custom/netboot/sles/compute.sles12.ppc64le.exlist
|
||||
cp /opt/xcat/share/xcat/netboot/sles/compute.sles12.ppc64le.exlist /install/custom/netboot/sles/compute.sles12.ppc64le.exlist
|
||||
|
||||
#edit the newly created exlist file according to your need
|
||||
vi /install/custom/netboot/sles/compute.sles12.ppc64le.exlist
|
||||
@ -123,8 +75,6 @@ If you want to customize the osimage ``sles12.1-ppc64le-netboot-compute`` with y
|
||||
#specify the newly created exlist file in the osimage definition
|
||||
chdef -t osimage -o sles12.1-ppc64le-netboot-compute exlist=/install/custom/netboot/sles/compute.sles12.ppc64le.exlist
|
||||
|
||||
.. [1] It would only make sense to use an absolute path name here. It means that this entry will never match anything: ``/usr/share/locale/*``.
|
||||
.. [1] The ``exlist`` file entry should not end with a slash ``/``, For example, this entry will never match anything: ``./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/``.
|
||||
|
||||
.. [2] The exlist file entry should not be ended with a slash ``/``, it means that this entry will never match anything: ``./usr/lib/perl[0-9]/[0-9.]*/ppc64le-linux-thread-multi/Encode/``.
|
||||
|
||||
.. [3] Pattern match test applies to the whole file name,starting from one of the start points specified in the exlist file entry. The regex syntax comply the with the regex syntax of system command ``find -path``, please refer to its doc for details.
|
||||
.. [2] Pattern match test applies to the whole file name,starting from one of the start points specified in the ``exlist`` file entry. The regex syntax should comply with the regex syntax of system command ``find -path``, refer to its doc for details.
|
||||
|
@ -23,11 +23,11 @@ SYNOPSIS
|
||||
|
||||
\ **bmcdiscover**\ [\ **-v | -**\ **-version**\ ]
|
||||
|
||||
\ **bmcdiscover**\ [\ **-s**\ \ *scan_method*\ ] \ **-**\ **-range**\ \ *ip_ranges*\ [\ **-z**\ ] [\ **-w**\ ] [\ **-t**\ ]
|
||||
\ **bmcdiscover**\ [\ **-s**\ \ *scan_method*\ ] [\ **-u**\ \ *bmc_user*\ ] [\ **-p**\ \ *bmc_passwd*\ ] [\ **-z**\ ] [\ **-w**\ ] [\ **-t**\ ] \ **-**\ **-range**\ \ *ip_ranges*\
|
||||
|
||||
\ **bmcdiscover**\ {\ **-i | -**\ **-bmcip**\ } \ *bmc_ip*\ {\ **-u | -**\ **-bmcuser**\ } \ *bmc_username*\ {\ **-p | -**\ **-bmcpasswd**\ } \ *bmc_password*\ \ **-**\ **-check**\
|
||||
\ **bmcdiscover**\ \ **-u**\ \ *bmc_user*\ \ **-p**\ \ *bmc_passwd*\ \ **-i**\ \ *bmc_ip*\ \ **-**\ **-check**\
|
||||
|
||||
\ **bmcdiscover**\ {\ **-i | -**\ **-bmcip**\ } \ *bmc_ip*\ {\ **-u | -**\ **-bmcuser**\ } \ *bmc_username*\ {\ **-p | -**\ **-bmcpasswd**\ } \ *bmc_password*\ \ **-**\ **-ipsource**\
|
||||
\ **bmcdiscover**\ [\ **-u**\ \ *bmc_user*\ ] [\ **-p**\ \ *bmc_passwd*\ ] \ **-i**\ \ *bmc_ip*\ \ **-**\ **-ipsource**\
|
||||
|
||||
|
||||
***********
|
||||
@ -98,15 +98,15 @@ OPTIONS
|
||||
|
||||
|
||||
|
||||
\ **-c|-**\ **-check**\
|
||||
\ **-**\ **-check**\
|
||||
|
||||
Check
|
||||
Check BMC administrator User/Password.
|
||||
|
||||
|
||||
|
||||
\ **-**\ **-ipsource**\
|
||||
|
||||
BMC IP source
|
||||
Display the BMC IP configuration.
|
||||
|
||||
|
||||
|
||||
@ -169,7 +169,7 @@ Note: Input for IP range can be in the form: scanme.nmap.org, microsoft.com/24,
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
bmcdiscover -i 10.4.23.254 -u USERID -p PASSW0RD -c
|
||||
bmcdiscover -i 10.4.23.254 -u USERID -p PASSW0RD --check
|
||||
|
||||
|
||||
5. Get BMC IP Address source, DHCP Address or static Address
|
||||
|
@ -11,7 +11,7 @@ NAME
|
||||
****
|
||||
|
||||
|
||||
\ **lsvm**\ - Lists partition profile information for HMC-, DFM-, IVM-, KVM-, Vmware- and zVM-managed nodes. For Power 775, it lists the LPARs' I/O slots information and CEC configuration.
|
||||
\ **lsvm**\ - Lists partition profile information for HMC-, DFM-, IVM-, KVM-, VMware- and zVM-managed nodes. For Power 775, it lists the LPARs' I/O slots information and CEC configuration.
|
||||
|
||||
|
||||
********
|
||||
@ -36,6 +36,13 @@ For PPC (using Direct FSP Management):
|
||||
\ **lsvm**\ \ *noderange*\
|
||||
|
||||
|
||||
For KVM and VMware
|
||||
==================
|
||||
|
||||
|
||||
\ **lsvm**\ \ *noderange*\
|
||||
|
||||
|
||||
For zVM:
|
||||
========
|
||||
|
||||
@ -72,11 +79,11 @@ More information about this part, refer to the section Using the \*vm commands t
|
||||
XCAT_Power_775_Hardware_Management
|
||||
|
||||
|
||||
For KVM and Vmware
|
||||
For KVM and VMware
|
||||
==================
|
||||
|
||||
|
||||
The virtual machines that defined in the hypervisor \ *noderange*\ will be displayed. \ *noderange*\ only can be hypervisor. The type of the hypervisor should be set: hypervisor.type before running the lsvm.
|
||||
The virtual machines that defined in the hypervisor \ *noderange*\ will be displayed. \ *noderange*\ can only be hypervisor.
|
||||
|
||||
Note: Only the virtual machine which is in power on state can be listed by lsvm command.
|
||||
|
||||
|
@ -52,7 +52,7 @@ For KVM:
|
||||
========
|
||||
|
||||
|
||||
\ **mkvm**\ \ *noderange*\ [\ **-m|-**\ **-master**\ \ *mastername*\ ] [\ **-s|-**\ **-size**\ \ *disksize*\ ] [\ **-**\ **-mem**\ \ *memsize*\ ] [\ **-**\ **-cpus**\ \ *cpucount*\ ] [\ **-f|-**\ **-force**\ ]
|
||||
\ **mkvm**\ \ *noderange*\ [\ **-s|-**\ **-size**\ \ *disksize*\ ] [\ **-**\ **-mem**\ \ *memsize*\ ] [\ **-**\ **-cpus**\ \ *cpucount*\ ] [\ **-f|-**\ **-force**\ ]
|
||||
|
||||
|
||||
For Vmware:
|
||||
|
@ -19,9 +19,9 @@ SYNOPSIS
|
||||
********
|
||||
|
||||
|
||||
\ **pasu**\ [\ **-V**\ ] [\ **-d**\ ] [\ **-n**\ ] [\ **-l**\ \ *user*\ ] [\ **-p**\ \ *passwd*\ ] [\ **-f**\ \ *fanout*\ ] [\ **-i**\ \ *hostname-suffix*\ ] \ *noderange*\ \ *command*\
|
||||
\ **pasu**\ [\ **-V**\ ] [\ **-d**\ ] [\ **-l**\ \ *user*\ ] [\ **-p**\ \ *passwd*\ ] [\ **-f**\ \ *fanout*\ ] [\ **-i**\ \ *hostname-suffix*\ ] \ *noderange*\ \ *command*\
|
||||
|
||||
\ **pasu**\ [\ **-V**\ ] [\ **-d**\ ] [\ **-n**\ ] [\ **-l**\ \ *user*\ ] [\ **-p**\ \ *passwd*\ ] [\ **-f**\ \ *fanout*\ ] [\ **-i**\ \ *hostname-suffix*\ ] \ **-b**\ \ *batchfile*\ \ *noderange*\
|
||||
\ **pasu**\ [\ **-V**\ ] [\ **-d**\ ] [\ **-l**\ \ *user*\ ] [\ **-p**\ \ *passwd*\ ] [\ **-f**\ \ *fanout*\ ] [\ **-i**\ \ *hostname-suffix*\ ] \ **-b**\ \ *batchfile*\ \ *noderange*\
|
||||
|
||||
\ **pasu**\ [\ **-h**\ | \ **-**\ **-help**\ ]
|
||||
|
||||
@ -47,13 +47,6 @@ OPTIONS
|
||||
|
||||
|
||||
|
||||
\ **-n|-**\ **-nonodecheck**\
|
||||
|
||||
Do not send the noderange to xcatd to expand it into a list of nodes. Use the noderange exactly as it is specified
|
||||
to pasu. In this case, the noderange must be a simple list of comma-separated hostnames of the IMMs.
|
||||
|
||||
|
||||
|
||||
\ **-l|-**\ **-loginname**\ \ *username*\
|
||||
|
||||
The username to use to connect to the IMMs. If not specified, the row in the xCAT \ **passwd**\ table with key "ipmi"
|
||||
|
@ -63,9 +63,9 @@ mpa Attributes:
|
||||
\ **slots**\
|
||||
|
||||
The number of available slots in the chassis. For PCM, this attribute is used to store the number of slots in the following format: <slot rows>,<slot columns>,<slot orientation> Where:
|
||||
<slot rows> = number of rows of slots in chassis
|
||||
<slot columns> = number of columns of slots in chassis
|
||||
<slot orientation> = set to 0 if slots are vertical, and set to 1 if slots of horizontal
|
||||
<slot rows> = number of rows of slots in chassis
|
||||
<slot columns> = number of columns of slots in chassis
|
||||
<slot orientation> = set to 0 if slots are vertical, and set to 1 if slots of horizontal
|
||||
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ SYNOPSIS
|
||||
********
|
||||
|
||||
|
||||
\ **noderes Attributes:**\ \ *node*\ , \ *servicenode*\ , \ *netboot*\ , \ *tftpserver*\ , \ *tftpdir*\ , \ *nfsserver*\ , \ *monserver*\ , \ *nfsdir*\ , \ *installnic*\ , \ *primarynic*\ , \ *discoverynics*\ , \ *cmdinterface*\ , \ *xcatmaster*\ , \ *current_osimage*\ , \ *next_osimage*\ , \ *nimserver*\ , \ *routenames*\ , \ *nameservers*\ , \ *proxydhcp*\ , \ *comments*\ , \ *disable*\
|
||||
\ **noderes Attributes:**\ \ *node*\ , \ *servicenode*\ , \ *netboot*\ , \ *tftpserver*\ , \ *tftpdir*\ , \ *nfsserver*\ , \ *monserver*\ , \ *nfsdir*\ , \ *installnic*\ , \ *primarynic*\ , \ *discoverynics*\ , \ *cmdinterface*\ , \ *xcatmaster*\ , \ *current_osimage*\ , \ *next_osimage*\ , \ *nimserver*\ , \ *routenames*\ , \ *nameservers*\ , \ *proxydhcp*\ , \ *syslog*\ , \ *comments*\ , \ *disable*\
|
||||
|
||||
|
||||
***********
|
||||
@ -156,6 +156,12 @@ noderes Attributes:
|
||||
|
||||
|
||||
|
||||
\ **syslog**\
|
||||
|
||||
To configure how to configure syslog for compute node. Valid values:blank(not set), ignore. blank - run postscript syslog; ignore - do NOT run postscript syslog
|
||||
|
||||
|
||||
|
||||
\ **comments**\
|
||||
|
||||
Any user-written notes.
|
||||
|
@ -300,16 +300,16 @@ site Attributes:
|
||||
xcatconfdir: Where xCAT config data is (default /etc/xcat).
|
||||
|
||||
xcatdebugmode: the xCAT debug level. xCAT provides a batch of techniques
|
||||
to help user debug problems while using xCAT, especially on OS provision,
|
||||
such as collecting logs of the whole installation process and accessing
|
||||
the installing system via ssh, etc. These techniques will be enabled
|
||||
according to different xCAT debug levels specified by 'xcatdebugmode',
|
||||
currently supported values:
|
||||
'0': disable debug mode
|
||||
'1': enable basic debug mode
|
||||
'2': enalbe expert debug mode
|
||||
For the details on 'basic debug mode' and 'expert debug mode',
|
||||
please refer to xCAT documentation.
|
||||
to help user debug problems while using xCAT, especially on OS provision,
|
||||
such as collecting logs of the whole installation process and accessing
|
||||
the installing system via ssh, etc. These techniques will be enabled
|
||||
according to different xCAT debug levels specified by 'xcatdebugmode',
|
||||
currently supported values:
|
||||
'0': disable debug mode
|
||||
'1': enable basic debug mode
|
||||
'2': enalbe expert debug mode
|
||||
For the details on 'basic debug mode' and 'expert debug mode',
|
||||
please refer to xCAT documentation.
|
||||
|
||||
--------------------
|
||||
REMOTESHELL ATTRIBUTES
|
||||
@ -380,6 +380,10 @@ site Attributes:
|
||||
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
|
||||
|
||||
|
@ -19,7 +19,7 @@ SYNOPSIS
|
||||
********
|
||||
|
||||
|
||||
\ **group Attributes:**\ \ *addkcmdline*\ , \ *arch*\ , \ *authdomain*\ , \ *bmc*\ , \ *bmcpassword*\ , \ *bmcport*\ , \ *bmcusername*\ , \ *cfgmgr*\ , \ *cfgmgtroles*\ , \ *cfgserver*\ , \ *chain*\ , \ *chassis*\ , \ *cmdmapping*\ , \ *cons*\ , \ *conserver*\ , \ *consoleondemand*\ , \ *cpucount*\ , \ *cputype*\ , \ *currchain*\ , \ *currstate*\ , \ *dhcpinterfaces*\ , \ *disksize*\ , \ *displayname*\ , \ *dockercpus*\ , \ *dockerflag*\ , \ *dockerhost*\ , \ *dockermemory*\ , \ *dockernics*\ , \ *domainadminpassword*\ , \ *domainadminuser*\ , \ *domaintype*\ , \ *getmac*\ , \ *groupname*\ , \ *grouptype*\ , \ *hcp*\ , \ *height*\ , \ *hostcluster*\ , \ *hostinterface*\ , \ *hostmanager*\ , \ *hostnames*\ , \ *hosttype*\ , \ *hwtype*\ , \ *id*\ , \ *initrd*\ , \ *installnic*\ , \ *interface*\ , \ *ip*\ , \ *iscsipassword*\ , \ *iscsiserver*\ , \ *iscsitarget*\ , \ *iscsiuserid*\ , \ *kcmdline*\ , \ *kernel*\ , \ *linkports*\ , \ *mac*\ , \ *membergroups*\ , \ *members*\ , \ *memory*\ , \ *mgt*\ , \ *micbridge*\ , \ *michost*\ , \ *micid*\ , \ *miconboot*\ , \ *micpowermgt*\ , \ *micvlog*\ , \ *migrationdest*\ , \ *monserver*\ , \ *mpa*\ , \ *mtm*\ , \ *nameservers*\ , \ *netboot*\ , \ *nfsdir*\ , \ *nfsserver*\ , \ *nicaliases*\ , \ *niccustomscripts*\ , \ *nicdevices*\ , \ *nicextraparams*\ , \ *nichostnameprefixes*\ , \ *nichostnamesuffixes*\ , \ *nicips*\ , \ *nicnetworks*\ , \ *nicsadapter*\ , \ *nictypes*\ , \ *nimserver*\ , \ *nodetype*\ , \ *ondiscover*\ , \ *os*\ , \ *osvolume*\ , \ *otherinterfaces*\ , \ *ou*\ , \ *parent*\ , \ *passwd.HMC*\ , \ *passwd.admin*\ , \ *passwd.celogin*\ , \ *passwd.general*\ , \ *passwd.hscroot*\ , \ *password*\ , \ *postbootscripts*\ , \ *postscripts*\ , \ *power*\ , \ *pprofile*\ , \ *prescripts-begin*\ , \ *prescripts-end*\ , \ *primarynic*\ , \ *productkey*\ , \ *profile*\ , \ *protocol*\ , \ *provmethod*\ , \ *rack*\ , \ *room*\ , \ *routenames*\ , \ *serial*\ , \ *serialflow*\ , \ *serialport*\ , \ *serialspeed*\ , \ *servicenode*\ , \ *setupconserver*\ , \ *setupdhcp*\ , \ *setupftp*\ , \ *setupipforward*\ , \ *setupldap*\ , \ *setupnameserver*\ , \ *setupnfs*\ , \ *setupnim*\ , \ *setupntp*\ , \ *setupproxydhcp*\ , \ *setuptftp*\ , \ *sfp*\ , \ *side*\ , \ *slot*\ , \ *slotid*\ , \ *slots*\ , \ *snmpauth*\ , \ *snmppassword*\ , \ *snmpprivacy*\ , \ *snmpusername*\ , \ *snmpversion*\ , \ *storagcontroller*\ , \ *storagetype*\ , \ *supernode*\ , \ *supportedarchs*\ , \ *supportproxydhcp*\ , \ *switch*\ , \ *switchinterface*\ , \ *switchport*\ , \ *switchtype*\ , \ *switchvlan*\ , \ *termport*\ , \ *termserver*\ , \ *tftpdir*\ , \ *tftpserver*\ , \ *unit*\ , \ *urlpath*\ , \ *usercomment*\ , \ *userid*\ , \ *username*\ , \ *vmbeacon*\ , \ *vmbootorder*\ , \ *vmcfgstore*\ , \ *vmcluster*\ , \ *vmcpus*\ , \ *vmhost*\ , \ *vmmanager*\ , \ *vmmaster*\ , \ *vmmemory*\ , \ *vmnicnicmodel*\ , \ *vmnics*\ , \ *vmothersetting*\ , \ *vmphyslots*\ , \ *vmstorage*\ , \ *vmstoragecache*\ , \ *vmstorageformat*\ , \ *vmstoragemodel*\ , \ *vmtextconsole*\ , \ *vmvirtflags*\ , \ *vmvncport*\ , \ *webport*\ , \ *wherevals*\ , \ *xcatmaster*\
|
||||
\ **group Attributes:**\ \ *addkcmdline*\ , \ *arch*\ , \ *authdomain*\ , \ *bmc*\ , \ *bmcpassword*\ , \ *bmcport*\ , \ *bmcusername*\ , \ *cfgmgr*\ , \ *cfgmgtroles*\ , \ *cfgserver*\ , \ *chain*\ , \ *chassis*\ , \ *cmdmapping*\ , \ *cons*\ , \ *conserver*\ , \ *consoleondemand*\ , \ *cpucount*\ , \ *cputype*\ , \ *currchain*\ , \ *currstate*\ , \ *dhcpinterfaces*\ , \ *disksize*\ , \ *displayname*\ , \ *dockercpus*\ , \ *dockerflag*\ , \ *dockerhost*\ , \ *dockermemory*\ , \ *dockernics*\ , \ *domainadminpassword*\ , \ *domainadminuser*\ , \ *domaintype*\ , \ *getmac*\ , \ *groupname*\ , \ *grouptype*\ , \ *hcp*\ , \ *height*\ , \ *hostcluster*\ , \ *hostinterface*\ , \ *hostmanager*\ , \ *hostnames*\ , \ *hosttype*\ , \ *hwtype*\ , \ *id*\ , \ *initrd*\ , \ *installnic*\ , \ *interface*\ , \ *ip*\ , \ *iscsipassword*\ , \ *iscsiserver*\ , \ *iscsitarget*\ , \ *iscsiuserid*\ , \ *kcmdline*\ , \ *kernel*\ , \ *linkports*\ , \ *mac*\ , \ *membergroups*\ , \ *members*\ , \ *memory*\ , \ *mgt*\ , \ *micbridge*\ , \ *michost*\ , \ *micid*\ , \ *miconboot*\ , \ *micpowermgt*\ , \ *micvlog*\ , \ *migrationdest*\ , \ *monserver*\ , \ *mpa*\ , \ *mtm*\ , \ *nameservers*\ , \ *netboot*\ , \ *nfsdir*\ , \ *nfsserver*\ , \ *nicaliases*\ , \ *niccustomscripts*\ , \ *nicdevices*\ , \ *nicextraparams*\ , \ *nichostnameprefixes*\ , \ *nichostnamesuffixes*\ , \ *nicips*\ , \ *nicnetworks*\ , \ *nicsadapter*\ , \ *nictypes*\ , \ *nimserver*\ , \ *nodetype*\ , \ *ondiscover*\ , \ *os*\ , \ *osvolume*\ , \ *otherinterfaces*\ , \ *ou*\ , \ *parent*\ , \ *passwd.HMC*\ , \ *passwd.admin*\ , \ *passwd.celogin*\ , \ *passwd.general*\ , \ *passwd.hscroot*\ , \ *password*\ , \ *postbootscripts*\ , \ *postscripts*\ , \ *power*\ , \ *pprofile*\ , \ *prescripts-begin*\ , \ *prescripts-end*\ , \ *primarynic*\ , \ *productkey*\ , \ *profile*\ , \ *protocol*\ , \ *provmethod*\ , \ *rack*\ , \ *room*\ , \ *routenames*\ , \ *serial*\ , \ *serialflow*\ , \ *serialport*\ , \ *serialspeed*\ , \ *servicenode*\ , \ *setupconserver*\ , \ *setupdhcp*\ , \ *setupftp*\ , \ *setupipforward*\ , \ *setupldap*\ , \ *setupnameserver*\ , \ *setupnfs*\ , \ *setupnim*\ , \ *setupntp*\ , \ *setupproxydhcp*\ , \ *setuptftp*\ , \ *sfp*\ , \ *side*\ , \ *slot*\ , \ *slotid*\ , \ *slots*\ , \ *snmpauth*\ , \ *snmppassword*\ , \ *snmpprivacy*\ , \ *snmpusername*\ , \ *snmpversion*\ , \ *storagcontroller*\ , \ *storagetype*\ , \ *supernode*\ , \ *supportedarchs*\ , \ *supportproxydhcp*\ , \ *switch*\ , \ *switchinterface*\ , \ *switchport*\ , \ *switchtype*\ , \ *switchvlan*\ , \ *syslog*\ , \ *termport*\ , \ *termserver*\ , \ *tftpdir*\ , \ *tftpserver*\ , \ *unit*\ , \ *urlpath*\ , \ *usercomment*\ , \ *userid*\ , \ *username*\ , \ *vmbeacon*\ , \ *vmbootorder*\ , \ *vmcfgstore*\ , \ *vmcluster*\ , \ *vmcpus*\ , \ *vmhost*\ , \ *vmmanager*\ , \ *vmmaster*\ , \ *vmmemory*\ , \ *vmnicnicmodel*\ , \ *vmnics*\ , \ *vmothersetting*\ , \ *vmphyslots*\ , \ *vmstorage*\ , \ *vmstoragecache*\ , \ *vmstorageformat*\ , \ *vmstoragemodel*\ , \ *vmtextconsole*\ , \ *vmvirtflags*\ , \ *vmvncport*\ , \ *webport*\ , \ *wherevals*\ , \ *xcatmaster*\
|
||||
|
||||
|
||||
***********
|
||||
@ -1120,11 +1120,11 @@ group Attributes:
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
<slot rows> = number of rows of slots in chassis
|
||||
<slot rows> = number of rows of slots in chassis
|
||||
|
||||
<slot columns> = number of columns of slots in chassis
|
||||
<slot columns> = number of columns of slots in chassis
|
||||
|
||||
<slot orientation> = set to 0 if slots are vertical, and set to 1 if slots of horizontal
|
||||
<slot orientation> = set to 0 if slots are vertical, and set to 1 if slots of horizontal
|
||||
|
||||
|
||||
|
||||
@ -1227,6 +1227,12 @@ group Attributes:
|
||||
|
||||
|
||||
|
||||
\ **syslog**\ (noderes.syslog)
|
||||
|
||||
To configure how to configure syslog for compute node. Valid values:blank(not set), ignore. blank - run postscript syslog; ignore - do NOT run postscript syslog
|
||||
|
||||
|
||||
|
||||
\ **termport**\ (nodehm.termport)
|
||||
|
||||
The port number on the terminal server that this node is connected to.
|
||||
|
@ -19,7 +19,7 @@ SYNOPSIS
|
||||
********
|
||||
|
||||
|
||||
\ **node Attributes:**\ \ *addkcmdline*\ , \ *appstatus*\ , \ *appstatustime*\ , \ *arch*\ , \ *authdomain*\ , \ *bmc*\ , \ *bmcpassword*\ , \ *bmcport*\ , \ *bmcusername*\ , \ *cfgmgr*\ , \ *cfgmgtroles*\ , \ *cfgserver*\ , \ *chain*\ , \ *chassis*\ , \ *cmdmapping*\ , \ *cons*\ , \ *conserver*\ , \ *consoleondemand*\ , \ *cpucount*\ , \ *cputype*\ , \ *currchain*\ , \ *currstate*\ , \ *dhcpinterfaces*\ , \ *disksize*\ , \ *displayname*\ , \ *dockercpus*\ , \ *dockerflag*\ , \ *dockerhost*\ , \ *dockermemory*\ , \ *dockernics*\ , \ *domainadminpassword*\ , \ *domainadminuser*\ , \ *domaintype*\ , \ *getmac*\ , \ *groups*\ , \ *hcp*\ , \ *height*\ , \ *hidden*\ , \ *hostcluster*\ , \ *hostinterface*\ , \ *hostmanager*\ , \ *hostnames*\ , \ *hosttype*\ , \ *hwtype*\ , \ *id*\ , \ *initrd*\ , \ *installnic*\ , \ *interface*\ , \ *ip*\ , \ *iscsipassword*\ , \ *iscsiserver*\ , \ *iscsitarget*\ , \ *iscsiuserid*\ , \ *kcmdline*\ , \ *kernel*\ , \ *linkports*\ , \ *mac*\ , \ *memory*\ , \ *mgt*\ , \ *micbridge*\ , \ *michost*\ , \ *micid*\ , \ *miconboot*\ , \ *micpowermgt*\ , \ *micvlog*\ , \ *migrationdest*\ , \ *monserver*\ , \ *mpa*\ , \ *mtm*\ , \ *nameservers*\ , \ *netboot*\ , \ *nfsdir*\ , \ *nfsserver*\ , \ *nicaliases*\ , \ *niccustomscripts*\ , \ *nicdevices*\ , \ *nicextraparams*\ , \ *nichostnameprefixes*\ , \ *nichostnamesuffixes*\ , \ *nicips*\ , \ *nicnetworks*\ , \ *nicsadapter*\ , \ *nictypes*\ , \ *nimserver*\ , \ *node*\ , \ *nodetype*\ , \ *ondiscover*\ , \ *os*\ , \ *osvolume*\ , \ *otherinterfaces*\ , \ *ou*\ , \ *parent*\ , \ *passwd.HMC*\ , \ *passwd.admin*\ , \ *passwd.celogin*\ , \ *passwd.general*\ , \ *passwd.hscroot*\ , \ *password*\ , \ *postbootscripts*\ , \ *postscripts*\ , \ *power*\ , \ *pprofile*\ , \ *prescripts-begin*\ , \ *prescripts-end*\ , \ *primarynic*\ , \ *primarysn*\ , \ *productkey*\ , \ *profile*\ , \ *protocol*\ , \ *provmethod*\ , \ *rack*\ , \ *room*\ , \ *routenames*\ , \ *serial*\ , \ *serialflow*\ , \ *serialport*\ , \ *serialspeed*\ , \ *servicenode*\ , \ *setupconserver*\ , \ *setupdhcp*\ , \ *setupftp*\ , \ *setupipforward*\ , \ *setupldap*\ , \ *setupnameserver*\ , \ *setupnfs*\ , \ *setupnim*\ , \ *setupntp*\ , \ *setupproxydhcp*\ , \ *setuptftp*\ , \ *sfp*\ , \ *side*\ , \ *slot*\ , \ *slotid*\ , \ *slots*\ , \ *snmpauth*\ , \ *snmppassword*\ , \ *snmpprivacy*\ , \ *snmpusername*\ , \ *snmpversion*\ , \ *status*\ , \ *statustime*\ , \ *storagcontroller*\ , \ *storagetype*\ , \ *supernode*\ , \ *supportedarchs*\ , \ *supportproxydhcp*\ , \ *switch*\ , \ *switchinterface*\ , \ *switchport*\ , \ *switchtype*\ , \ *switchvlan*\ , \ *termport*\ , \ *termserver*\ , \ *tftpdir*\ , \ *tftpserver*\ , \ *unit*\ , \ *updatestatus*\ , \ *updatestatustime*\ , \ *urlpath*\ , \ *usercomment*\ , \ *userid*\ , \ *username*\ , \ *vmbeacon*\ , \ *vmbootorder*\ , \ *vmcfgstore*\ , \ *vmcluster*\ , \ *vmcpus*\ , \ *vmhost*\ , \ *vmmanager*\ , \ *vmmaster*\ , \ *vmmemory*\ , \ *vmnicnicmodel*\ , \ *vmnics*\ , \ *vmothersetting*\ , \ *vmphyslots*\ , \ *vmstorage*\ , \ *vmstoragecache*\ , \ *vmstorageformat*\ , \ *vmstoragemodel*\ , \ *vmtextconsole*\ , \ *vmvirtflags*\ , \ *vmvncport*\ , \ *webport*\ , \ *xcatmaster*\ , \ *zonename*\
|
||||
\ **node Attributes:**\ \ *addkcmdline*\ , \ *appstatus*\ , \ *appstatustime*\ , \ *arch*\ , \ *authdomain*\ , \ *bmc*\ , \ *bmcpassword*\ , \ *bmcport*\ , \ *bmcusername*\ , \ *cfgmgr*\ , \ *cfgmgtroles*\ , \ *cfgserver*\ , \ *chain*\ , \ *chassis*\ , \ *cmdmapping*\ , \ *cons*\ , \ *conserver*\ , \ *consoleondemand*\ , \ *cpucount*\ , \ *cputype*\ , \ *currchain*\ , \ *currstate*\ , \ *dhcpinterfaces*\ , \ *disksize*\ , \ *displayname*\ , \ *dockercpus*\ , \ *dockerflag*\ , \ *dockerhost*\ , \ *dockermemory*\ , \ *dockernics*\ , \ *domainadminpassword*\ , \ *domainadminuser*\ , \ *domaintype*\ , \ *getmac*\ , \ *groups*\ , \ *hcp*\ , \ *height*\ , \ *hidden*\ , \ *hostcluster*\ , \ *hostinterface*\ , \ *hostmanager*\ , \ *hostnames*\ , \ *hosttype*\ , \ *hwtype*\ , \ *id*\ , \ *initrd*\ , \ *installnic*\ , \ *interface*\ , \ *ip*\ , \ *iscsipassword*\ , \ *iscsiserver*\ , \ *iscsitarget*\ , \ *iscsiuserid*\ , \ *kcmdline*\ , \ *kernel*\ , \ *linkports*\ , \ *mac*\ , \ *memory*\ , \ *mgt*\ , \ *micbridge*\ , \ *michost*\ , \ *micid*\ , \ *miconboot*\ , \ *micpowermgt*\ , \ *micvlog*\ , \ *migrationdest*\ , \ *monserver*\ , \ *mpa*\ , \ *mtm*\ , \ *nameservers*\ , \ *netboot*\ , \ *nfsdir*\ , \ *nfsserver*\ , \ *nicaliases*\ , \ *niccustomscripts*\ , \ *nicdevices*\ , \ *nicextraparams*\ , \ *nichostnameprefixes*\ , \ *nichostnamesuffixes*\ , \ *nicips*\ , \ *nicnetworks*\ , \ *nicsadapter*\ , \ *nictypes*\ , \ *nimserver*\ , \ *node*\ , \ *nodetype*\ , \ *ondiscover*\ , \ *os*\ , \ *osvolume*\ , \ *otherinterfaces*\ , \ *ou*\ , \ *parent*\ , \ *passwd.HMC*\ , \ *passwd.admin*\ , \ *passwd.celogin*\ , \ *passwd.general*\ , \ *passwd.hscroot*\ , \ *password*\ , \ *postbootscripts*\ , \ *postscripts*\ , \ *power*\ , \ *pprofile*\ , \ *prescripts-begin*\ , \ *prescripts-end*\ , \ *primarynic*\ , \ *primarysn*\ , \ *productkey*\ , \ *profile*\ , \ *protocol*\ , \ *provmethod*\ , \ *rack*\ , \ *room*\ , \ *routenames*\ , \ *serial*\ , \ *serialflow*\ , \ *serialport*\ , \ *serialspeed*\ , \ *servicenode*\ , \ *setupconserver*\ , \ *setupdhcp*\ , \ *setupftp*\ , \ *setupipforward*\ , \ *setupldap*\ , \ *setupnameserver*\ , \ *setupnfs*\ , \ *setupnim*\ , \ *setupntp*\ , \ *setupproxydhcp*\ , \ *setuptftp*\ , \ *sfp*\ , \ *side*\ , \ *slot*\ , \ *slotid*\ , \ *slots*\ , \ *snmpauth*\ , \ *snmppassword*\ , \ *snmpprivacy*\ , \ *snmpusername*\ , \ *snmpversion*\ , \ *status*\ , \ *statustime*\ , \ *storagcontroller*\ , \ *storagetype*\ , \ *supernode*\ , \ *supportedarchs*\ , \ *supportproxydhcp*\ , \ *switch*\ , \ *switchinterface*\ , \ *switchport*\ , \ *switchtype*\ , \ *switchvlan*\ , \ *syslog*\ , \ *termport*\ , \ *termserver*\ , \ *tftpdir*\ , \ *tftpserver*\ , \ *unit*\ , \ *updatestatus*\ , \ *updatestatustime*\ , \ *urlpath*\ , \ *usercomment*\ , \ *userid*\ , \ *username*\ , \ *vmbeacon*\ , \ *vmbootorder*\ , \ *vmcfgstore*\ , \ *vmcluster*\ , \ *vmcpus*\ , \ *vmhost*\ , \ *vmmanager*\ , \ *vmmaster*\ , \ *vmmemory*\ , \ *vmnicnicmodel*\ , \ *vmnics*\ , \ *vmothersetting*\ , \ *vmphyslots*\ , \ *vmstorage*\ , \ *vmstoragecache*\ , \ *vmstorageformat*\ , \ *vmstoragemodel*\ , \ *vmtextconsole*\ , \ *vmvirtflags*\ , \ *vmvncport*\ , \ *webport*\ , \ *xcatmaster*\ , \ *zonename*\
|
||||
|
||||
|
||||
***********
|
||||
@ -1132,11 +1132,11 @@ node Attributes:
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
<slot rows> = number of rows of slots in chassis
|
||||
<slot rows> = number of rows of slots in chassis
|
||||
|
||||
<slot columns> = number of columns of slots in chassis
|
||||
<slot columns> = number of columns of slots in chassis
|
||||
|
||||
<slot orientation> = set to 0 if slots are vertical, and set to 1 if slots of horizontal
|
||||
<slot orientation> = set to 0 if slots are vertical, and set to 1 if slots of horizontal
|
||||
|
||||
|
||||
|
||||
@ -1251,6 +1251,12 @@ node Attributes:
|
||||
|
||||
|
||||
|
||||
\ **syslog**\ (noderes.syslog)
|
||||
|
||||
To configure how to configure syslog for compute node. Valid values:blank(not set), ignore. blank - run postscript syslog; ignore - do NOT run postscript syslog
|
||||
|
||||
|
||||
|
||||
\ **termport**\ (nodehm.termport)
|
||||
|
||||
The port number on the terminal server that this node is connected to.
|
||||
|
@ -35,4 +35,5 @@ Table of Contents
|
||||
troubleshooting/index.rst
|
||||
developers/index.rst
|
||||
help.rst
|
||||
security/index.rst
|
||||
|
||||
|
28
docs/source/security/2016/20160115_openssl.rst
Normal file
28
docs/source/security/2016/20160115_openssl.rst
Normal file
@ -0,0 +1,28 @@
|
||||
2016-01-15 - OpenSSL Vulnerabilities (SLOTH)
|
||||
============================================
|
||||
|
||||
A detailed description of this issue can be seen in the following blog posting: http://www.mitls.org/pages/attacks/SLOTH
|
||||
|
||||
Advisory CVEs
|
||||
-------------
|
||||
|
||||
`CVE-2015-7575 <https://access.redhat.com/security/cve/CVE-2015-7575>`_ - TLS 1.2 Transcipt Collision attacks against MD5 in key exchange protocol (SLOTH)
|
||||
|
||||
Action
|
||||
------
|
||||
|
||||
xCAT uses OpenSSL for client-server communication but **does not** ship it.
|
||||
|
||||
It is highly recommended to keep your OpenSSL levels up-to-date with the indicated versions in the security bulletins to prevent any potential security threats. Obtain the updated software packages from your Operating system distribution channels.
|
||||
|
||||
|
||||
|
||||
Disable MD5 authentication in the cipher list using the site table keyword ``xcatsslciphers``.
|
||||
|
||||
1. Check if MD5 is already disabled: ``tabdump site | grep xcatssl``
|
||||
|
||||
2. If nothing is set, add ``ALL:!MD5`` to the cipher list: ``chtab key=xcatsslciphers site.value='ALL:!MD5'``
|
||||
|
||||
3. Restart xcat: ``service xcatd restart``
|
||||
|
||||
|
28
docs/source/security/2016/20160128_openssl.rst
Normal file
28
docs/source/security/2016/20160128_openssl.rst
Normal file
@ -0,0 +1,28 @@
|
||||
2016-01-28 - OpenSSL Vulnerabilities
|
||||
====================================
|
||||
|
||||
*Jan 28, 2016* OpenSSL announced the following security advisories: https://mta.openssl.org/pipermail/openssl-announce/2016-January/000061.html
|
||||
|
||||
Advisory CVEs
|
||||
-------------
|
||||
|
||||
* CVE-2016-0701 - **DH small subgroups** (Severity:High)
|
||||
|
||||
This issue affects OpenSSL version 1.0.2.
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2f
|
||||
|
||||
* CVE-2015-3197 - **SSLv2 doesn't block disabled ciphers** (Severity:Low)
|
||||
|
||||
This issue affects OpenSSL versions 1.0.2 and 1.0.1.
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2f
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1r
|
||||
|
||||
|
||||
Action
|
||||
------
|
||||
|
||||
xCAT uses OpenSSL for client-server communication but **does not** ship it.
|
||||
|
||||
It is recommended to keep your OpenSSL levels up-to-date with the indicated versions in the security bulletins to prevent any potential security threats.
|
||||
|
68
docs/source/security/2016/20160301_openssl.rst
Normal file
68
docs/source/security/2016/20160301_openssl.rst
Normal file
@ -0,0 +1,68 @@
|
||||
2016-03-01 - OpenSSL Vulnerabilities (DROWN)
|
||||
============================================
|
||||
|
||||
*March 1, 2016* OpenSSL announced the following security advisories: https://www.openssl.org/news/secadv/20160301.txt
|
||||
|
||||
Advisory CVEs
|
||||
-------------
|
||||
|
||||
* CVE-2016-0800 - **Cross-protocol attack on TLS using SSLv2 (DROWN)** (Severity:High)
|
||||
|
||||
This issue affects OpenSSL versions 1.0.1 and 1.0.2.
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2g
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1s
|
||||
|
||||
* CVE-2016-0705 - **Double-free in DSA code** (Severity:Low)
|
||||
|
||||
This issue affects OpenSSL versions 1.0.2 and 1.0.1.
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2g
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1s
|
||||
|
||||
* CVE-2016-0798 - **Memory leak in SRP database lookups** (Severity:Low)
|
||||
|
||||
This issue affects OpenSSL versions 1.0.2 and 1.0.1.
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2g
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1s
|
||||
|
||||
* CVE-2016-0797 - **BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption** (Severity:Low)
|
||||
|
||||
This issue affects OpenSSL versions 1.0.2 and 1.0.1.
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2g
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1s
|
||||
|
||||
|
||||
* CVE-2016-0797 - **Fix memory issues in BIO_*printf functions** (Severity:Low)
|
||||
|
||||
This issue affects OpenSSL versions 1.0.2 and 1.0.1.
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2g
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1s
|
||||
|
||||
|
||||
* CVE-2016-0702 - **Side channel attack on modular exponentiation** (Severity:Low)
|
||||
|
||||
This issue affects OpenSSL versions 1.0.2 and 1.0.1.
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2g
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1s
|
||||
|
||||
* CVE-2016-0703 - **Divide-and-conquer session key recovery in SSLv2** (Severity:High)
|
||||
|
||||
This issue affected OpenSSL versions 1.0.2, 1.0.1l, 1.0.0q, 0.9.8ze and all earlier versions. It was fixed in OpenSSL 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf
|
||||
|
||||
* CVE-2016-0704 - **Bleichenbacher oracle in SSLv2** (Severity:Moderate)
|
||||
|
||||
This issue affected OpenSSL versions 1.0.2, 1.0.1l, 1.0.0q, 0.9.8ze and all earlier versions. It was fixed in OpenSSL 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf
|
||||
|
||||
|
||||
Action
|
||||
------
|
||||
|
||||
xCAT uses OpenSSL for client-server communication but **does not** ship it. Regarding CVE-2016-0800, xCAT also does not use SSLv2 layer but uses the newer TLS transport layer security.
|
||||
|
||||
It is recommended to keep your OpenSSL levels up-to-date with the indicated versions in the security bulletins to prevent any potential security threats.
|
||||
|
52
docs/source/security/2016/20160503_openssl.rst
Normal file
52
docs/source/security/2016/20160503_openssl.rst
Normal file
@ -0,0 +1,52 @@
|
||||
2016-05-03 - OpenSSL Vulnerabilities (ANS.1 encoder)
|
||||
====================================================
|
||||
|
||||
*May 3, 2016* OpenSSL announced the following security advisories: https://www.openssl.org/news/secadv/20160503.txt
|
||||
|
||||
Advisory CVEs
|
||||
-------------
|
||||
|
||||
* CVE-2016-2108 - **Memory corruption in the ASN.1 encoder** (Severity:High)
|
||||
|
||||
This issue affects all OpenSSL version prior to April 2015
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2c
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1o
|
||||
|
||||
* CVE-2016-2107 - **Padding oracle in AES-NI CBC MAC check** (Severity: High)
|
||||
|
||||
This issue was introduced as part of the fix for Lucky 13 padding attack (CVE-2013-0169)
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2h
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1t
|
||||
|
||||
* CVE-2016-2105 - **EVP_EncodeUpdate overflow** (Severity:Low)
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2h
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1t
|
||||
|
||||
* CVE-2016-2106 - **EVP_EncryptUpdate overflow** (Severity:Low)
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2h
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1t
|
||||
|
||||
|
||||
* CVE-2016-2109 - **ASN.1 BIO excessive memory allocation** (Severity:Low)
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2h
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1t
|
||||
|
||||
|
||||
* CVE-2016-2176 - **EBCDIC overread** (Severity:Low)
|
||||
|
||||
OpenSSL 1.0.2 users should upgrade to 1.0.2h
|
||||
OpenSSL 1.0.1 users should upgrade to 1.0.1t
|
||||
|
||||
|
||||
Action
|
||||
------
|
||||
|
||||
xCAT uses OpenSSL for client-server communication but **does not** ship it.
|
||||
|
||||
It is recommended to keep your OpenSSL levels up-to-date with the indicated versions in the security bulletins to prevent any potential security threats.
|
||||
|
10
docs/source/security/2016/index.rst
Normal file
10
docs/source/security/2016/index.rst
Normal file
@ -0,0 +1,10 @@
|
||||
2016 Notices
|
||||
============
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
20160503_openssl.rst
|
||||
20160301_openssl.rst
|
||||
20160128_openssl.rst
|
||||
20160115_openssl.rst
|
8
docs/source/security/index.rst
Normal file
8
docs/source/security/index.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Security Notices
|
||||
================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
2016/index.rst
|
||||
2015/index.rst
|
@ -24,6 +24,10 @@ The ssh access to the installer is enabled, the admin can login into the install
|
||||
|
||||
Just as the message above suggests, the admin should run ``ssh -X root@<node>`` to access the installer and run ``yast.ssh`` to finish the installation.
|
||||
|
||||
**Note**: For sles12, during the second stage of an SSH installation YaST freezes. It is blocked by the SuSEFirewall service because the ``SYSTEMCTL_OPTIONS`` environment variable is not set properly. Workaround: When logged in for the second time to start the second stage of the SSH installation, call **yast.ssh** with the ``--ignore-dependencies`` as follows: ::
|
||||
|
||||
SYSTEMCTL_OPTIONS=--ignore-dependencies yast.ssh
|
||||
|
||||
#. For UBT, the installation will halt on the following similar message in the console: ::
|
||||
|
||||
┌───────────┤ [!!] Continue installation remotely using SSH ├───────────┐
|
||||
|
@ -129,7 +129,7 @@ sub remote_copy_command
|
||||
# if only syncing the service node or
|
||||
# (no postscripts and no append lines) then do not
|
||||
# get update file notification
|
||||
if (($::SYNCSN == 1) || ((!(defined @::postscripts)) && (!(defined @::appendlines)) && (!(defined @::mergelines)))) {
|
||||
if (($::SYNCSN == 1) || ((!(@::postscripts)) && (!(@::appendlines)) && (!(@::mergelines)))) {
|
||||
$sync_opt .= '-Lprogtz ';
|
||||
} else {
|
||||
$sync_opt .= '-Liprogtz --out-format=%f%L '; # add notify of update
|
||||
|
@ -1188,6 +1188,9 @@ use xCAT::ExtTab;
|
||||
"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" .
|
||||
|
@ -2554,16 +2554,25 @@ sub getNodeAttribs_nosub_returnany
|
||||
|
||||
my $attrib;
|
||||
my $result;
|
||||
|
||||
my @hierarchy_attrs;
|
||||
my $hierarchy_field = xCAT::TableUtils->get_site_attribute("hierarchicalattrs");
|
||||
if ($hierarchy_field) {
|
||||
@hierarchy_attrs = split(/,/, $hierarchy_field);
|
||||
}
|
||||
|
||||
my $data = $results[0];
|
||||
if(defined{$data}) { #if there was some data for the node, loop through and check it
|
||||
foreach $result (@results) {
|
||||
foreach $attrib (keys %attribsToDo) {
|
||||
if (defined($result) && defined($result->{$attrib}) && $self->{tabname} ne 'nodelist'
|
||||
&& @hierarchy_attrs && grep (/^$attrib$/, @hierarchy_attrs) ) {
|
||||
$result->{$attrib} .= ',+=NEXTRECORD';
|
||||
}
|
||||
#check each item in the results to see which attributes were satisfied
|
||||
if(defined($result) && defined($result->{$attrib}) && $result->{$attrib} !~ $nextRecordAtEnd) {
|
||||
delete $attribsToDo{$attrib};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2571,6 +2580,16 @@ sub getNodeAttribs_nosub_returnany
|
||||
return @results;
|
||||
}
|
||||
|
||||
if ($self->{tabname} eq 'nodelist') {
|
||||
return @results;
|
||||
}
|
||||
|
||||
# As self->nodelist is a weak reference, if error haddpens, log it.
|
||||
if (!defined($self->{nodelist})) {
|
||||
xCAT::MsgUtils->message("S","xcat Table: Unexpected error, nodelist object is undef.");
|
||||
return undef;
|
||||
}
|
||||
|
||||
#find the groups for this node
|
||||
my ($nodeghash) = $self->{nodelist}->getAttribs({node => $node}, 'groups');
|
||||
|
||||
@ -2578,7 +2597,7 @@ sub getNodeAttribs_nosub_returnany
|
||||
unless (defined($nodeghash) && defined($nodeghash->{groups})) {
|
||||
return @results;
|
||||
}
|
||||
|
||||
|
||||
my @nodegroups = split(/,/, $nodeghash->{groups});
|
||||
my $group;
|
||||
my @groupResults;
|
||||
@ -2601,8 +2620,10 @@ sub getNodeAttribs_nosub_returnany
|
||||
#print "looking for attrib $attrib\n";
|
||||
if(defined($groupResult->{$attrib})){
|
||||
$attribsDone{$attrib} = 0;
|
||||
#print "found attArib $attrib = $groupResult->{$attrib}\n";
|
||||
#print "and results look like this: \n".Dumper(\@results)."\n\n\n";
|
||||
# for hierarchy attribute, append attributes from all the node's group
|
||||
if (@hierarchy_attrs && grep (/^$attrib$/, @hierarchy_attrs) ) {
|
||||
$groupResult->{$attrib} .= ',+=NEXTRECORD';
|
||||
}
|
||||
foreach $result (@results){ #loop through our existing results to add or modify the value for this attribute
|
||||
if(defined($result)) {
|
||||
if(defined($result->{$attrib})) {
|
||||
@ -2639,7 +2660,6 @@ sub getNodeAttribs_nosub_returnany
|
||||
}
|
||||
}
|
||||
else {#no results in the array so far
|
||||
#print "pushing for the first time. attr=$attrib groupResults=$groupResult->{$attrib}\n";
|
||||
$toPush{$attrib} = $groupResult->{$attrib};
|
||||
if($options{withattribution} && $attrib ne $nodekey){
|
||||
$toPush{'!!xcatgroupattribution!!'}->{$attrib} = $group;
|
||||
@ -2685,6 +2705,13 @@ sub getNodeAttribs_nosub_returnany
|
||||
for $result (@results) {
|
||||
for my $key (keys %$result) {
|
||||
$result->{$key} =~ s/\+=NEXTRECORD//g;
|
||||
if (@hierarchy_attrs && grep (/^$key$/, @hierarchy_attrs) ) {
|
||||
my @attribs = split(/,/, $result->{$key});
|
||||
my %count;
|
||||
# remove the repeat value
|
||||
@attribs = grep { ++$count{ $_ } < 2; } @attribs;
|
||||
$result->{$key} = join(',', @attribs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3474,10 +3501,12 @@ sub close
|
||||
my $self = shift;
|
||||
#if ($self->{dbh}) { $self->{dbh}->disconnect(); }
|
||||
#undef $self->{dbh};
|
||||
if ($self->{tabname} eq 'nodelist') {
|
||||
undef $self->{nodelist};
|
||||
} else {
|
||||
$self->{nodelist}->close();
|
||||
if ($0 ne "xcatd: DB Access") {
|
||||
if ($self->{tabname} eq 'nodelist') {
|
||||
undef $self->{nodelist};
|
||||
} else {
|
||||
$self->{nodelist}->close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1606,7 +1606,7 @@ sub checkCredFiles
|
||||
$dir = "/etc/xcat/hostkeys";
|
||||
if (-d $dir)
|
||||
{
|
||||
my $file = "$dir/ssh_host_key.pub";
|
||||
my $file = "$dir/ssh_host_rsa_key.pub";
|
||||
if (-e $file)
|
||||
{
|
||||
my $file2 = "$dir/*.pub"; # all public keys
|
||||
|
@ -215,7 +215,7 @@ my %usage = (
|
||||
[vmphyslots=drc_index1,drc_index2...] [vmothersetting=hugepage:N,bsr:N]
|
||||
[vmnics=vlan1,vlan2] [vmstorage=<N|viosnode:slotid>] [--vios]
|
||||
For KVM
|
||||
mkvm noderange -m|--master mastername -s|--size disksize -f|--force
|
||||
mkvm noderange [-s|--size disksize] [--mem memsize] [--cpus cpucount] [-f|--force]
|
||||
For zVM
|
||||
mkvm noderange directory_entry_file_path
|
||||
mkvm noderange source_virtual_machine pool=disk_pool pw=multi_password",
|
||||
|
@ -3896,30 +3896,55 @@ sub servicemap{
|
||||
my $path=undef;
|
||||
my $postfix="";
|
||||
my $retdefault=$svcname;
|
||||
my $svcmgrcmd;
|
||||
if($svcmgrtype == 0){
|
||||
#for sysvinit
|
||||
$path="/etc/init.d/";
|
||||
$svcmgrcmd="service";
|
||||
}elsif ($svcmgrtype == 1){
|
||||
$path="/usr/lib/systemd/system/";
|
||||
#for systemd
|
||||
#ubuntu 16.04 replace upstart with systemd,
|
||||
#all the service unit files are placed under /lib/systemd/system/ on ubuntu
|
||||
#all the service unit files are placed under /usr/lib/systemd/system/ on redhat and sles
|
||||
#$path delimited with space
|
||||
$path="/usr/lib/systemd/system/ /lib/systemd/system/";
|
||||
$postfix=".service";
|
||||
$svcmgrcmd="systemctl";
|
||||
# $retdefault=$svcname.".service";
|
||||
}elsif ($svcmgrtype == 2){
|
||||
$path="/etc/init/";
|
||||
$postfix=".conf";
|
||||
$svcmgrcmd="initctl";
|
||||
}
|
||||
|
||||
#check whether service management command is available
|
||||
system "type $svcmgrcmd >/dev/null 2>&1";
|
||||
if($? != 0){
|
||||
return undef;
|
||||
}
|
||||
|
||||
|
||||
my @paths=split(" ",$path);
|
||||
my $ret=undef;
|
||||
if($svchash{$svcname}){
|
||||
foreach my $file (@{$svchash{$svcname}}){
|
||||
if(-e $path.$file.$postfix ){
|
||||
$ret=$file;
|
||||
last;
|
||||
foreach my $file (@{$svchash{$svcname}}){
|
||||
foreach my $ipath (@paths){
|
||||
if(-e $ipath.$file.$postfix ){
|
||||
$ret=$file;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(defined $ret){
|
||||
last;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(-e $path.$retdefault.$postfix){
|
||||
$ret=$retdefault;
|
||||
}
|
||||
foreach my $ipath (@paths){
|
||||
if(-e $ipath.$retdefault.$postfix){
|
||||
$ret=$retdefault;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
@ -75,6 +75,8 @@ require Exporter;
|
||||
"1411733344.616389" => "rhels6.6", #ppc64
|
||||
"1435823078.283602" => "rhels6.7", #ppc64
|
||||
"1435823078.298912" => "rhels6.7", #x86_64
|
||||
"1460645249.800975" => "rhels6.8", #ppc64
|
||||
"1460645249.825876" => "rhels6.8", #x86_64
|
||||
"1399449226.171922" => "rhels7", #x86_64
|
||||
"1399449226.155578" => "rhels7", #ppc64
|
||||
"1424360759.989976" => "rhels7.1", #x86_64
|
||||
|
@ -8,11 +8,11 @@ B<bmcdiscover> [B<-?>|B<-h>|B<--help>]
|
||||
|
||||
B<bmcdiscover> [B<-v>|B<--version>]
|
||||
|
||||
B<bmcdiscover> [B<-s> I<scan_method>] B<--range> I<ip_ranges> [B<-z>] [B<-w>] [B<-t>]
|
||||
B<bmcdiscover> [B<-s> I<scan_method>] [B<-u> I<bmc_user>] [B<-p> I<bmc_passwd>] [B<-z>] [B<-w>] [B<-t>] B<--range> I<ip_ranges>
|
||||
|
||||
B<bmcdiscover> {B<-i>|B<--bmcip>} I<bmc_ip> {B<-u>|B<--bmcuser>} I<bmc_username> {B<-p>|B<--bmcpasswd>} I<bmc_password> B<--check>
|
||||
B<bmcdiscover> B<-u> I<bmc_user> B<-p> I<bmc_passwd> B<-i> I<bmc_ip> B<--check>
|
||||
|
||||
B<bmcdiscover> {B<-i>|B<--bmcip>} I<bmc_ip> {B<-u>|B<--bmcuser>} I<bmc_username> {B<-p>|B<--bmcpasswd>} I<bmc_password> B<--ipsource>
|
||||
B<bmcdiscover> [B<-u> I<bmc_user>] [B<-p> I<bmc_passwd>] B<-i> I<bmc_ip> B<--ipsource>
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
@ -61,13 +61,13 @@ BMC user name.
|
||||
|
||||
BMC user password.
|
||||
|
||||
=item B<-c|--check>
|
||||
=item B<--check>
|
||||
|
||||
Check
|
||||
Check BMC administrator User/Password.
|
||||
|
||||
=item B<--ipsource>
|
||||
|
||||
BMC IP source
|
||||
Display the BMC IP configuration.
|
||||
|
||||
=item B<-h|--help>
|
||||
|
||||
@ -104,7 +104,7 @@ Note: Input for IP range can be in the form: scanme.nmap.org, microsoft.com/24,
|
||||
|
||||
4. To check if the username or password is correct against the BMC:
|
||||
|
||||
bmcdiscover -i 10.4.23.254 -u USERID -p PASSW0RD -c
|
||||
bmcdiscover -i 10.4.23.254 -u USERID -p PASSW0RD --check
|
||||
|
||||
5. Get BMC IP Address source, DHCP Address or static Address
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
=head1 NAME
|
||||
|
||||
B<lsvm> - Lists partition profile information for HMC-, DFM-, IVM-, KVM-, Vmware- and zVM-managed nodes. For Power 775, it lists the LPARs' I/O slots information and CEC configuration.
|
||||
B<lsvm> - Lists partition profile information for HMC-, DFM-, IVM-, KVM-, VMware- and zVM-managed nodes. For Power 775, it lists the LPARs' I/O slots information and CEC configuration.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
@ -18,6 +18,10 @@ B<lsvm> [B<-l>| B<--long>] B<--p775> I<noderange>
|
||||
|
||||
B<lsvm> I<noderange>
|
||||
|
||||
=head2 For KVM and VMware
|
||||
|
||||
B<lsvm> I<noderange>
|
||||
|
||||
=head2 For zVM:
|
||||
|
||||
B<lsvm> I<noderange>
|
||||
@ -44,9 +48,9 @@ The Memory Interleaving Mode has 3 valid options:
|
||||
More information about this part, refer to the section Using the *vm commands to define partitions in xCAT DFM in the doc below.
|
||||
XCAT_Power_775_Hardware_Management
|
||||
|
||||
=head2 For KVM and Vmware
|
||||
=head2 For KVM and VMware
|
||||
|
||||
The virtual machines that defined in the hypervisor I<noderange> will be displayed. I<noderange> only can be hypervisor. The type of the hypervisor should be set: hypervisor.type before running the lsvm.
|
||||
The virtual machines that defined in the hypervisor I<noderange> will be displayed. I<noderange> can only be hypervisor.
|
||||
|
||||
Note: Only the virtual machine which is in power on state can be listed by lsvm command.
|
||||
|
||||
|
@ -26,7 +26,7 @@ B<mkvm> I<noderange> [B<vmcpus=> I<min/req/max>] [B<vmmemory=> I<min/req/max>] [
|
||||
|
||||
=head2 For KVM:
|
||||
|
||||
B<mkvm> I<noderange> [B<-m|--master> I<mastername>] [B<-s|--size> I<disksize>] [B<--mem> I<memsize>] [B<--cpus> I<cpucount>] [B<-f|--force>]
|
||||
B<mkvm> I<noderange> [B<-s|--size> I<disksize>] [B<--mem> I<memsize>] [B<--cpus> I<cpucount>] [B<-f|--force>]
|
||||
|
||||
=head2 For Vmware:
|
||||
|
||||
|
@ -4,9 +4,9 @@ B<pasu> - run the ASU to many nodes in parallel
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<pasu> [B<-V>] [B<-d>] [B<-n>] [B<-l> I<user>] [B<-p> I<passwd>] [B<-f> I<fanout>] [B<-i> I<hostname-suffix>] I<noderange> I<command>
|
||||
B<pasu> [B<-V>] [B<-d>] [B<-l> I<user>] [B<-p> I<passwd>] [B<-f> I<fanout>] [B<-i> I<hostname-suffix>] I<noderange> I<command>
|
||||
|
||||
B<pasu> [B<-V>] [B<-d>] [B<-n>] [B<-l> I<user>] [B<-p> I<passwd>] [B<-f> I<fanout>] [B<-i> I<hostname-suffix>] B<-b> I<batchfile> I<noderange>
|
||||
B<pasu> [B<-V>] [B<-d>] [B<-l> I<user>] [B<-p> I<passwd>] [B<-f> I<fanout>] [B<-i> I<hostname-suffix>] B<-b> I<batchfile> I<noderange>
|
||||
|
||||
B<pasu> [B<-h> | B<--help>]
|
||||
|
||||
@ -25,11 +25,6 @@ to confirm that the IMMs are configured properly.
|
||||
|
||||
=over 10
|
||||
|
||||
=item B<-n|--nonodecheck>
|
||||
|
||||
Do not send the noderange to xcatd to expand it into a list of nodes. Use the noderange exactly as it is specified
|
||||
to pasu. In this case, the noderange must be a simple list of comma-separated hostnames of the IMMs.
|
||||
|
||||
=item B<-l|--loginname> I<username>
|
||||
|
||||
The username to use to connect to the IMMs. If not specified, the row in the xCAT B<passwd> table with key "ipmi"
|
||||
|
@ -1 +0,0 @@
|
||||
SUBSYSTEM=="pci", ATTRS{subsystem_vendor}=="0x15b3", ATTRS{class}=="0x020000", RUN+="/sbin/loadmlxeth"
|
@ -38,6 +38,7 @@ if [ $BUILDARCH = "x86_64" ]; then
|
||||
sed -i 's/\/lib64\/libmenu.so.5//' $DRACUTMODDIR/install
|
||||
sed -i 's/\/lib64\/libsysfs.so.2//' $DRACUTMODDIR/install
|
||||
sed -i 's/\/usr\/sbin\/iprconfig//' $DRACUTMODDIR/install
|
||||
sed -i '/hwdb.bin/ d' $DRACUTMODDIR/install
|
||||
sed -i 's/instmods ipr//' $DRACUTMODDIR/installkernel
|
||||
fi
|
||||
if [ "$HOSTOS" = "mcp" ]; then
|
||||
|
@ -588,8 +588,6 @@ inst "$moddir/restart" "/bin/restart"
|
||||
inst "$moddir/dhclient.conf" "/etc/dhclient.conf"
|
||||
inst "$moddir/dhclient-script" "/sbin/dhclient-script"
|
||||
inst "$moddir/rsyslog.conf" "/etc/rsyslog.conf"
|
||||
inst "$moddir/98-mlx.rules" "/etc/udev/rules.d/98-mlx.rules"
|
||||
inst "$moddir/loadmlxeth" "/sbin/loadmlxeth"
|
||||
dracut_install /sbin/rpc.statd /usr/sbin/sm-notify /etc/netconfig rpcbind /etc/host.conf /usr/sbin/rpc.idmapd
|
||||
dracut_install ps free find #debug
|
||||
inst_dir /var/lib/nfs
|
||||
|
@ -620,9 +620,7 @@ inst "$moddir/dhclient.conf" "/etc/dhclient.conf"
|
||||
inst "$moddir/dhclient-script" "/sbin/dhclient-script"
|
||||
inst "$moddir/rsyslog.conf" "/etc/rsyslog.conf"
|
||||
inst "$moddir/99-imm.rules" "/etc/udev/rules.d/99-imm.rules"
|
||||
inst "$moddir/98-mlx.rules" "/etc/udev/rules.d/98-mlx.rules"
|
||||
inst "$moddir/setupimmnic" "/sbin/setupimmnic"
|
||||
inst "$moddir/loadmlxeth" "/sbin/loadmlxeth"
|
||||
if [ -n $version12 ];then
|
||||
dracut_install rpcbind
|
||||
else
|
||||
|
@ -1,4 +1,4 @@
|
||||
%define version 2.11
|
||||
%define version 2.12
|
||||
%ifarch i386 i586 i686 x86
|
||||
%define tarch x86
|
||||
%endif
|
||||
|
@ -99,7 +99,9 @@ elif [ "$IPMIMFG" == 20301 -o "$IPMIMFG" == 19046 ] ; then
|
||||
let idev=0
|
||||
IFS=','
|
||||
for p in $BMCPORT; do
|
||||
unset IFS
|
||||
ipmitool -d $idev raw 0xc 1 1 0xc0 $p > /dev/null
|
||||
IFS=','
|
||||
# after this change, we need to watch and wait to see that it
|
||||
# actually takes effect. On port change, the service processor
|
||||
# does not migrate the network configuration over
|
||||
|
@ -283,10 +283,11 @@ while :; do
|
||||
destiny=''
|
||||
dest=''
|
||||
elif [ "$dest" = shell ]; then
|
||||
echo "Dropping to debug shell, exit to check for further action"
|
||||
echo "Dropping to debug shell, exit to run next destiny"
|
||||
destiny=''
|
||||
dest=''
|
||||
/bin/bash
|
||||
/bin/nextdestiny $XCATMASTER:$XCATPORT
|
||||
elif [ "$dest" = runcmd ]; then
|
||||
destiny=`/bin/nextdestiny $XCATMASTER:$XCATPORT`
|
||||
dest=`echo $destiny|awk -F= '{print $1}'`
|
||||
|
2
xCAT-genesis-scripts/etc/udev/rules.d/98-mlx.rules
Normal file
2
xCAT-genesis-scripts/etc/udev/rules.d/98-mlx.rules
Normal file
@ -0,0 +1,2 @@
|
||||
SUBSYSTEM=="pci", ATTRS{subsystem_vendor}=="15b3", ATTRS{class}=="0x020000", RUN+="/sbin/loadmlxeth"
|
||||
SUBSYSTEM=="pci", ATTRS{subsystem_vendor}=="15b3", ATTRS{class}=="0x028000", RUN+="/sbin/loadmlxeth"
|
0
xCAT-genesis-builder/loadmlxeth → xCAT-genesis-scripts/sbin/loadmlxeth
Executable file → Normal file
0
xCAT-genesis-builder/loadmlxeth → xCAT-genesis-scripts/sbin/loadmlxeth
Executable file → Normal file
@ -112,4 +112,6 @@ touch /etc/xcat/genesis-scripts-updated
|
||||
%{rpminstallroot}/debian/rules
|
||||
%{rpminstallroot}/etc/init.d/functions
|
||||
%{rpminstallroot}/etc/udev/rules.d/99-imm.rules
|
||||
%{rpminstallroot}/etc/udev/rules.d/98-mlx.rules
|
||||
%{rpminstallroot}/sbin/setupimmnic
|
||||
%{rpminstallroot}/sbin/loadmlxeth
|
||||
|
@ -7738,7 +7738,7 @@ sub update_dd_boot
|
||||
}
|
||||
print DDBOOT $l;
|
||||
}
|
||||
if ($l =~ /rmdev -l \${BASECUST_REMOVAL}/ && !$dontupdt5)
|
||||
if ($l =~ /rmdev -l \$\{BASECUST_REMOVAL\}/ && !$dontupdt5)
|
||||
{
|
||||
print DDBOOT " #Remove ODM object definition\n";
|
||||
print DDBOOT " odmdelete -o CuDv -q name=\${BASECUST_REMOVAL}\n";
|
||||
|
@ -113,9 +113,13 @@ sub bmcdiscovery_usage {
|
||||
push @{ $rsp->{data} }, "Usage:";
|
||||
push @{ $rsp->{data} }, "\tbmcdiscover [-?|-h|--help]";
|
||||
push @{ $rsp->{data} }, "\tbmcdiscover [-v|--version]";
|
||||
push @{ $rsp->{data} }, "\tbmcdiscover [-s scan_method] --range ip_range [-z] [-w] [-t]";
|
||||
push @{ $rsp->{data} }, "\tbmcdiscover {-i|--bmcip} bmc_ip {-u|--bmcuser} bmc_user {-p|--bmcpasswd} bmc_password --check";
|
||||
push @{ $rsp->{data} }, "\tbmcdiscover {-i|--bmcip} bmc_ip {-u|--bmcuser} bmc_user {-p|--bmcpasswd} bmc_password --ipsource";
|
||||
push @{ $rsp->{data} }, "\tbmcdiscover [-s scan_method] [-u bmc_user] [-p bmc_passwd] [-z] [-w] [-t] --range ip_range\n";
|
||||
|
||||
push @{ $rsp->{data} }, "\tCheck BMC administrator User/Password:\n";
|
||||
push @{ $rsp->{data} }, "\t\tbmcdiscover -u bmc_user -p bmc_password -i bmc_ip --check\n";
|
||||
|
||||
push @{ $rsp->{data} }, "\tDisplay the BMC IP configuration:\n";
|
||||
push @{ $rsp->{data} }, "\t\tbmcdiscover [-u bmc_user] [-p bmc_passwd] -i bmc_ip --ipsource";
|
||||
|
||||
xCAT::MsgUtils->message( "I", $rsp, $::CALLBACK );
|
||||
return 0;
|
||||
@ -197,43 +201,43 @@ sub bmcdiscovery_processargs {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#
|
||||
# Get the default bmc account from passwd table
|
||||
#
|
||||
($bmc_user, $bmc_pass) = bmcaccount_from_passwd();
|
||||
# overwrite the default user/pass with what is passed in
|
||||
if ($::opt_U) {
|
||||
$bmc_user = $::opt_U;
|
||||
}
|
||||
if ($::opt_P) {
|
||||
$bmc_pass = $::opt_P;
|
||||
}
|
||||
|
||||
#########################################
|
||||
# Option -s -r should be together
|
||||
######################################
|
||||
if ( defined($::opt_R) )
|
||||
{
|
||||
|
||||
######################################
|
||||
# check if there is nmap or not
|
||||
######################################
|
||||
if ( -x '/usr/bin/nmap' )
|
||||
{
|
||||
$nmap_path="/usr/bin/nmap";
|
||||
}
|
||||
elsif ( -x '/usr/local/bin/nmap' )
|
||||
{
|
||||
$nmap_path="/usr/local/bin/nmap";
|
||||
}
|
||||
else
|
||||
{
|
||||
my $rsp;
|
||||
push @{ $rsp->{data} }, "\tThere is no nmap in /usr/bin/ or /usr/local/bin/. \n ";
|
||||
xCAT::MsgUtils->message( "E", $rsp, $::CALLBACK );
|
||||
return 1;
|
||||
|
||||
}
|
||||
($bmc_user, $bmc_pass) = bmcaccount_from_passwd();
|
||||
if ($::opt_P) {
|
||||
$bmc_pass = $::opt_P;
|
||||
if (!$::opt_U) {
|
||||
$bmc_user = '';
|
||||
} else {
|
||||
$bmc_user = $::opt_U;
|
||||
}
|
||||
}
|
||||
scan_process($::opt_M,$::opt_R,$::opt_Z,$::opt_W,$request_command);
|
||||
|
||||
return 0;
|
||||
######################################
|
||||
# check if there is nmap or not
|
||||
######################################
|
||||
if ( -x '/usr/bin/nmap' )
|
||||
{
|
||||
$nmap_path="/usr/bin/nmap";
|
||||
}
|
||||
elsif ( -x '/usr/local/bin/nmap' )
|
||||
{
|
||||
$nmap_path="/usr/local/bin/nmap";
|
||||
}
|
||||
else
|
||||
{
|
||||
my $rsp;
|
||||
push @{ $rsp->{data} }, "\tThere is no nmap in /usr/bin/ or /usr/local/bin/. \n ";
|
||||
xCAT::MsgUtils->message( "E", $rsp, $::CALLBACK );
|
||||
return 1;
|
||||
}
|
||||
scan_process($::opt_M,$::opt_R,$::opt_Z,$::opt_W,$request_command);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( defined($::opt_C) && defined($::opt_S) ) {
|
||||
@ -244,19 +248,20 @@ sub bmcdiscovery_processargs {
|
||||
return 2;
|
||||
}
|
||||
|
||||
####################################################
|
||||
# --check option, requires -i and -p to be specified
|
||||
####################################################
|
||||
#########################################################
|
||||
# --check option, requires -i, -u, and -p to be specified
|
||||
#########################################################
|
||||
if ( defined($::opt_C) ) {
|
||||
if ( defined($::opt_P) && defined($::opt_I) ) {
|
||||
my $option_u = defined $::opt_U ? $::opt_U : "none";
|
||||
my $res=check_auth_process($::opt_I,$option_u,$::opt_P);
|
||||
if ( defined($::opt_P) && defined($::opt_U) && defined($::opt_I) ) {
|
||||
my $res=check_auth_process($::opt_I,$::opt_U,$::opt_P);
|
||||
return $res;
|
||||
}
|
||||
else {
|
||||
my $msg = "";
|
||||
if (!defined($::opt_I)) {
|
||||
$msg = "The check option requires a BMC IP. Specify the IP using the -i|--bmcip option.";
|
||||
} elsif (!defined($::opt_U)) {
|
||||
$msg = "The check option requires a user. Specify the user with the -u|--bmcuser option.";
|
||||
} elsif (!defined($::opt_P)) {
|
||||
$msg = "The check option requires a password. Specify the password with the -p|--bmcpasswd option.";
|
||||
}
|
||||
@ -271,9 +276,8 @@ sub bmcdiscovery_processargs {
|
||||
# --ipsource option, requires -i, -p to be specified
|
||||
####################################################
|
||||
if ( defined($::opt_S) ) {
|
||||
if ( defined($::opt_P) && defined($::opt_I) ) {
|
||||
my $option_u = defined $::opt_U ? $::opt_U : "none";
|
||||
my $res=get_bmc_ip_source($::opt_I,$option_u,$::opt_P);
|
||||
if ( defined($bmc_user) && defined($bmc_pass) && defined($::opt_I) ) {
|
||||
my $res=get_bmc_ip_source($::opt_I,$bmc_user,$bmc_pass);
|
||||
return $res;
|
||||
}
|
||||
else {
|
||||
@ -439,6 +443,7 @@ sub scan_process{
|
||||
my $callback = $::CALLBACK;
|
||||
my $children; # The number of child process
|
||||
my %sp_children; # Record the pid of child process
|
||||
my $bcmd;
|
||||
my $sub_fds = new IO::Select; # Record the parent fd for each child process
|
||||
|
||||
if ( !defined($method) )
|
||||
@ -451,7 +456,18 @@ sub scan_process{
|
||||
# get live ip list
|
||||
###########################################################
|
||||
if ( $method eq "nmap" ) {
|
||||
my $bcmd = join(" ",$nmap_path," -sn -n $range | grep for |cut -d ' ' -f5 |tr -s '\n' ' ' ");
|
||||
#check nmap version first
|
||||
my $ccmd = "$nmap_path -V | grep version";
|
||||
my $version_result = xCAT::Utils->runcmd($ccmd, 0);
|
||||
my @version_array = split / /, $version_result;
|
||||
my $nmap_version = $version_array[2];
|
||||
# the output of nmap is different for version under 4.75
|
||||
if (xCAT::Utils->version_cmp($nmap_version,"4.75") <= 0) {
|
||||
$bcmd = join(" ",$nmap_path," -sP -n $range | grep Host |cut -d ' ' -f2 |tr -s '\n' ' ' ");
|
||||
} else {
|
||||
$bcmd = join(" ",$nmap_path," -sn -n $range | grep for |cut -d ' ' -f5 |tr -s '\n' ' ' ");
|
||||
}
|
||||
|
||||
$ip_list = xCAT::Utils->runcmd("$bcmd", -1);
|
||||
if ($::RUNCMD_RC != 0) {
|
||||
my $rsp = {};
|
||||
@ -884,23 +900,25 @@ sub bmcdiscovery_ipmi {
|
||||
$node =~ s/(.*)/\L$1/g;
|
||||
}
|
||||
} elsif ($output =~ /error : unauthorized name/){
|
||||
xCAT::MsgUtils->message("I", {data=>["Warning: bmc username is incorrect for $node"]}, $::CALLBACK);
|
||||
xCAT::MsgUtils->message("E", {data=>["BMC username is incorrect for $ip"]}, $::CALLBACK);
|
||||
return 1;
|
||||
} elsif ($output =~ /RAKP \S* \S* is invalid/) {
|
||||
xCAT::MsgUtils->message("I", {data=>["Warning: bmc password is incorrect for $node"]}, $::CALLBACK);
|
||||
xCAT::MsgUtils->message("E", {data=>["BMC password is incorrect for $ip"]}, $::CALLBACK);
|
||||
return 1;
|
||||
}
|
||||
if ( defined($opz) || defined($opw) )
|
||||
{
|
||||
format_stanza($node, $ip);
|
||||
if (defined($opw))
|
||||
{
|
||||
write_to_xcatdb($node, $ip,$request_command);
|
||||
}
|
||||
}
|
||||
else{
|
||||
my $rsp = {};
|
||||
push @{ $rsp->{data} }, "$ip";
|
||||
xCAT::MsgUtils->message("I", $rsp, $::CALLBACK);
|
||||
}
|
||||
if ( defined($opz) || defined($opw) )
|
||||
{
|
||||
format_stanza($node, $ip);
|
||||
if (defined($opw))
|
||||
{
|
||||
write_to_xcatdb($node, $ip,$request_command);
|
||||
}
|
||||
}
|
||||
else{
|
||||
my $rsp = {};
|
||||
push @{ $rsp->{data} }, "$ip";
|
||||
xCAT::MsgUtils->message("I", $rsp, $::CALLBACK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -191,7 +191,7 @@ sub docfheaders {
|
||||
my $idx = 0;
|
||||
my $skip = 0;
|
||||
my @meat = grep(!/^#/,@$content);
|
||||
unless (grep(/^config \* {/,@meat)) {
|
||||
unless (grep(/^config \* \{/,@meat)) {
|
||||
# do not add the ssl configurations
|
||||
# if conserver is not compiled with ssl support
|
||||
my $cmd = "console -h 2>&1";
|
||||
|
@ -1060,35 +1060,35 @@ sub update_namedconf {
|
||||
my $skip=0;
|
||||
do {
|
||||
#push @newnamed,"\t\t//listen-on-v6 { any; };\n";
|
||||
if ($ctx->{forwarders} and $line =~ /forwarders {/) {
|
||||
if ($ctx->{forwarders} and $line =~ /forwarders \{/) {
|
||||
push @newnamed,"\tforwarders \{\n";
|
||||
$skip=1;
|
||||
foreach (@{$ctx->{forwarders}}) {
|
||||
push @newnamed,"\t\t".$_.";\n";
|
||||
}
|
||||
push @newnamed,"\t};\n";
|
||||
} elsif ($ctx->{slaves} and $line =~ /allow-transfer {/) {
|
||||
} elsif ($ctx->{slaves} and $line =~ /allow-transfer \{/) {
|
||||
push @newnamed,"\tallow-transfer \{\n";
|
||||
$skip=1;
|
||||
foreach (@{$ctx->{slaves}}) {
|
||||
push @newnamed,"\t\t".$_.";\n";
|
||||
}
|
||||
push @newnamed,"\t};\n";
|
||||
} elsif ($ctx->{slaves} and $line =~ /also-notify {/) {
|
||||
} elsif ($ctx->{slaves} and $line =~ /also-notify \{/) {
|
||||
push @newnamed,"\talso-notify \{\n";
|
||||
$skip=1;
|
||||
foreach (@{$ctx->{slaves}}) {
|
||||
push @newnamed,"\t\t".$_.";\n";
|
||||
}
|
||||
push @newnamed,"\t};\n";
|
||||
} elsif (defined($ctx->{dnslistenonifs}) and defined($ctx->{dnslistenonifs}->{ipv4}) and $line =~ /listen-on {/) {
|
||||
} elsif (defined($ctx->{dnslistenonifs}) and defined($ctx->{dnslistenonifs}->{ipv4}) and $line =~ /listen-on \{/) {
|
||||
push @newnamed,"\tlisten-on \{\n";
|
||||
$skip=1;
|
||||
foreach (@{$ctx->{dnslistenonifs}->{ipv4}}) {
|
||||
push @newnamed,"\t\t".$_.";\n";
|
||||
}
|
||||
push @newnamed,"\t};\n";
|
||||
} elsif (defined($ctx->{dnslistenonifs}) and defined($ctx->{dnslistenonifs}->{ipv6}) and $line =~ /listen-on-v6 {/) {
|
||||
} elsif (defined($ctx->{dnslistenonifs}) and defined($ctx->{dnslistenonifs}->{ipv6}) and $line =~ /listen-on-v6 \{/) {
|
||||
push @newnamed,"\tlisten-on-v6 \{\n";
|
||||
$skip=1;
|
||||
foreach (@{$ctx->{dnslistenonifs}->{ipv6}}) {
|
||||
|
@ -87,6 +87,7 @@ sub addnode
|
||||
# we're processing the nics table and we found an
|
||||
# existing entry for this ip so just add this
|
||||
# ode name as an alias for the existing entry
|
||||
chomp($hosts[$idx]);
|
||||
my ($hip, $hnode, $hdom, $hother)= split(/ /, $hosts[$idx]);
|
||||
|
||||
# at this point "othernames", if any is just a space
|
||||
|
@ -2666,8 +2666,22 @@ sub got_backup_imm_builddate {
|
||||
$fru->desc("Backup IMM Version");
|
||||
$fru->value($sessdata->{backupimmversion}." (".$sessdata->{backupimmbuild}." ".$sessdata->{backupimmdate}.")");
|
||||
$sessdata->{fru_hash}->{backupimm} = $fru;
|
||||
}
|
||||
get_imm_property(property=>"/v2/ibmc/trusted_buildid",callback=>\&got_trusted_imm,sessdata=>$sessdata);
|
||||
} else {
|
||||
initfru_with_mprom($sessdata);
|
||||
}
|
||||
}
|
||||
sub got_trusted_imm {
|
||||
my %res = @_;
|
||||
my $sessdata = $res{sessdata};
|
||||
if ($res{data}) {
|
||||
my $fru = FRU->new();
|
||||
$fru->rec_type("bios,uefi,firmware");
|
||||
$fru->desc("Trusted IMM Build");
|
||||
$fru->value($res{data});
|
||||
$sessdata->{fru_hash}->{trustedimm} = $fru;
|
||||
}
|
||||
initfru_with_mprom($sessdata);
|
||||
}
|
||||
sub got_fpga_version {
|
||||
my %res = @_;
|
||||
@ -3396,10 +3410,15 @@ sub readcurrfrudevice {
|
||||
}
|
||||
my @data = @{$rsp->{data}};
|
||||
if ($data[0] != $sessdata->{currfruchunk}) {
|
||||
add_fruhash($sessdata);
|
||||
my $text = "Received incorrect data from BMC for FRU ID: " . $sessdata->{currfruid};
|
||||
xCAT::SvrUtils::sendmsg($text,$callback,$sessdata->{node},%allerrornodes);
|
||||
return;
|
||||
# Fix FRU 43,48 and 49 for GRS server that they can not return as much data as shall return
|
||||
if ($data[0] gt 0) {
|
||||
$sessdata->{currfrudone}=1;
|
||||
} else {
|
||||
my $text = "Received incorrect data from BMC for FRU ID: " . $sessdata->{currfruid};
|
||||
xCAT::SvrUtils::sendmsg($text,$callback,$sessdata->{node},%allerrornodes);
|
||||
add_fruhash($sessdata);
|
||||
return;
|
||||
}
|
||||
}
|
||||
shift @data;
|
||||
push @{$sessdata->{currfrudata}},@data;
|
||||
|
@ -79,7 +79,7 @@ sub handled_commands {
|
||||
#rvitals => 'nodehm:mgt',
|
||||
#rinv => 'nodehm:mgt',
|
||||
getrvidparms => 'nodehm:mgt',
|
||||
lsvm => 'hypervisor:type',
|
||||
lsvm => 'nodehm:mgt=ipmi',
|
||||
rbeacon => 'nodehm:mgt',
|
||||
revacuate => 'hypervisor:type',
|
||||
vmstatenotify => 'hypervisor:type',
|
||||
@ -1751,9 +1751,29 @@ sub rmvm {
|
||||
my $disktype = $disk->parentNode()->getAttribute("device");
|
||||
if ($disktype eq "cdrom") { next; }
|
||||
my $file = $disk->getAttribute("file");
|
||||
my $vol = $hypconn->get_storage_volume_by_path($file);
|
||||
if ($vol) {
|
||||
$vol->delete();
|
||||
|
||||
# try to check the existence first, if cannot find, do nothing.
|
||||
# we do retry because we found sometimes the delete might fail
|
||||
my $retry = 0;
|
||||
my $vol;
|
||||
while ($retry < 10) {
|
||||
eval { $vol = $hypconn->get_storage_volume_by_path($file); };
|
||||
if ($@) {
|
||||
# Cannot find volumn, then stop delete
|
||||
xCAT::MsgUtils->trace(0, "e", "kvm: $@") if ($retry == 0);
|
||||
last;
|
||||
}
|
||||
if ($vol) {
|
||||
eval {
|
||||
# Need to call get_info() before deleting a volume, without that, delete() will sometimes fail. Issue #455
|
||||
$vol->get_info();
|
||||
$vol->delete();
|
||||
};
|
||||
if ($@) {
|
||||
xCAT::MsgUtils->trace(0, "e", "kvm: $@");
|
||||
}
|
||||
}
|
||||
$retry++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -120,14 +120,12 @@ sub process_request {
|
||||
chmod(0700,$tempdir."$sshdir");
|
||||
copy("/root/.ssh/id_rsa.pub","$tempdir$sshdir/authorized_keys");
|
||||
chmod(0600,"$tempdir$sshdir/authorized_keys");
|
||||
if (not $invisibletouch and -r "/etc/xcat/hostkeys/ssh_host_key") {
|
||||
copy("/etc/xcat/hostkeys/ssh_host_key","$tempdir/etc/ssh_host_key");
|
||||
if (not $invisibletouch and -r "/etc/xcat/hostkeys/ssh_host_rsa_key") {
|
||||
copy("/etc/xcat/hostkeys/ssh_host_rsa_key","$tempdir/etc/ssh_host_rsa_key");
|
||||
copy("/etc/xcat/hostkeys/ssh_host_dsa_key","$tempdir/etc/ssh_host_dsa_key");
|
||||
chmod(0600,<$tempdir/etc/ssh_*>);
|
||||
}
|
||||
unless ($invisibletouch or -r "$tempdir/etc/ssh_host_key") {
|
||||
system("ssh-keygen -t rsa1 -f $tempdir/etc/ssh_host_key -C '' -N ''");
|
||||
unless ($invisibletouch or -r "$tempdir/etc/ssh_host_rsa_key") {
|
||||
system("ssh-keygen -t rsa -f $tempdir/etc/ssh_host_rsa_key -C '' -N ''");
|
||||
system("ssh-keygen -t dsa -f $tempdir/etc/ssh_host_dsa_key -C '' -N ''");
|
||||
}
|
||||
@ -200,17 +198,13 @@ CREAT_CONF_FILE:
|
||||
chmod(0755,"$tftpdir/xcat/xnba/nets");
|
||||
mkpath("$tftpdir/pxelinux.cfg");
|
||||
chmod(0755,"$tftpdir/pxelinux.cfg");
|
||||
if (! -r "$tftpdir/pxelinux.0") {
|
||||
unless (-r "/usr/lib/syslinux/pxelinux.0" or -r "/usr/share/syslinux/pxelinux.0") {
|
||||
$callback->({error=>["Unable to find pxelinux.0 "],errorcode=>[1]});
|
||||
return;
|
||||
}
|
||||
if (-r "/usr/lib/syslinux/pxelinux.0") {
|
||||
copy("/usr/lib/syslinux/pxelinux.0","$tftpdir/pxelinux.0");
|
||||
} else {
|
||||
copy("/usr/share/syslinux/pxelinux.0","$tftpdir/pxelinux.0");
|
||||
}
|
||||
chmod(0644,"$tftpdir/pxelinux.0");
|
||||
if (-r "/usr/lib/syslinux/pxelinux.0") {
|
||||
copy("/usr/lib/syslinux/pxelinux.0","$tftpdir/pxelinux.0");
|
||||
} elsif (-r "/usr/share/syslinux/pxelinux.0") {
|
||||
copy("/usr/share/syslinux/pxelinux.0","$tftpdir/pxelinux.0");
|
||||
}
|
||||
if (-r "$tftpdir/pxelinux.0") {
|
||||
chmod(0644,"$tftpdir/pxelinux.0");
|
||||
}
|
||||
} elsif ($arch =~ /ppc/) {
|
||||
mkpath("$tftpdir/pxelinux.cfg/p/");
|
||||
|
@ -371,8 +371,11 @@ sub process_request {
|
||||
$callback->({error=> ["The node [$node] should have a correct IP address which belongs to the management network."], errorcode=>["1"]});
|
||||
return;
|
||||
}
|
||||
# Other arch such as IBM system x need also to go into this function.
|
||||
xCAT::Utils->cleanup_for_powerLE_hardware_discovery($request, $doreq);
|
||||
if ($request->{arch}->[0] =~ /ppc/ and $request->{platform}->[0] =~ /PowerNV/) {
|
||||
# This is a slow thing to do, and frequently breaks things thoroughly
|
||||
xCAT::Utils->cleanup_for_powerLE_hardware_discovery($request, $doreq);
|
||||
}
|
||||
|
||||
|
||||
my $restartstring = "restart";
|
||||
if (scalar @forcenics > 0) {
|
||||
|
@ -1070,6 +1070,11 @@ sub mkinstall
|
||||
and -r "$pkgdir/1/boot/ppc64le/linux"
|
||||
and -r "$pkgdir/1/boot/ppc64le/initrd"
|
||||
)
|
||||
or (
|
||||
$arch eq "ppc64"
|
||||
and -r "$pkgdir/1/suseboot/linux64"
|
||||
and -r "$pkgdir/1/suseboot/initrd64"
|
||||
)
|
||||
or ($arch =~ /ppc/ and -r "$pkgdir/1/suseboot/inst64")
|
||||
)
|
||||
{
|
||||
@ -1120,12 +1125,25 @@ sub mkinstall
|
||||
xCAT::MsgUtils->trace($verbose_on_off,"d","sles->mkinstall: copy initrd.img and linux to $tftppath");
|
||||
}
|
||||
}
|
||||
elsif ($arch =~ /ppc/)
|
||||
{
|
||||
elsif($arch eq "ppc64"){
|
||||
unless ($noupdateinitrd) {
|
||||
copy("$pkgdir/1/suseboot/inst64", "$tftppath");
|
||||
@dd_drivers = &insert_dd($callback, $os, $arch, "$tftppath/inst64", undef, $driverupdatesrc, $netdrivers, $osupdir, $ignorekernelchk);
|
||||
xCAT::MsgUtils->trace($verbose_on_off,"d","sles->mkinstall: copy inst64 to $tftppath");
|
||||
if(-r "$pkgdir/1/suseboot/linux64" and -r "$pkgdir/1/suseboot/initrd64"){
|
||||
#from sles11.3, suseboot/linux64 and suseboot/initrd64 are used for diskful
|
||||
#network installation
|
||||
#the previous suseboot/inst64 can not be run on Power8 BE
|
||||
copy("$pkgdir/1/suseboot/linux64", "$tftppath");
|
||||
copy("$pkgdir/1/suseboot/initrd64", "$tftppath");
|
||||
#TODO: need to verify whether initrd64 and linux64 can be inserted into initrd
|
||||
#@dd_drivers = &insert_dd($callback, $os, $arch,"$tftppath/initrd64" ,"$tftppath/linux64", undef, $driverupdatesrc, $netdrivers, $osupdir, $ignorekernelchk);
|
||||
xCAT::MsgUtils->trace($verbose_on_off,"d","sles->mkinstall: copy initrd64 and linux64 to $tftppath");
|
||||
}
|
||||
elsif(-r "$pkgdir/1/suseboot/inst64"){
|
||||
#suseboot/inst64 is used for network installation before sles11.3
|
||||
#suseboot/inst64 can not be run on Power8 BE
|
||||
copy("$pkgdir/1/suseboot/inst64", "$tftppath");
|
||||
@dd_drivers = &insert_dd($callback, $os, $arch, "$tftppath/inst64", undef, $driverupdatesrc, $netdrivers, $osupdir, $ignorekernelchk);
|
||||
xCAT::MsgUtils->trace($verbose_on_off,"d","sles->mkinstall: copy inst64 to $tftppath");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1318,21 +1336,40 @@ sub mkinstall
|
||||
kcmdline => $kcmdline
|
||||
}
|
||||
);
|
||||
}
|
||||
elsif ($arch =~ /ppc/)
|
||||
}
|
||||
elsif ($arch eq "ppc64")
|
||||
{
|
||||
$kernelpath = "$rtftppath/inst64";
|
||||
xCAT::MsgUtils->trace($verbose_on_off,"d","sles->mkinstall: kcmdline=$kcmdline kernal=$kernelpath initrd=");
|
||||
$bptab->setNodeAttribs(
|
||||
$node,
|
||||
{
|
||||
kernel => $kernelpath,
|
||||
initrd => "",
|
||||
kcmdline => $kcmdline
|
||||
}
|
||||
);
|
||||
if(-r "$tftppath/linux64" and -r "$tftppath/initrd64"){
|
||||
#from sles11.3, suseboot/linux64 and suseboot/initrd64 are used for diskful
|
||||
#network installation
|
||||
#the previous suseboot/inst64 can not be run on Power8 BE
|
||||
$kernelpath = "$rtftppath/linux64";
|
||||
$initrdpath = "$rtftppath/initrd64";
|
||||
xCAT::MsgUtils->trace($verbose_on_off,"d","sles->mkinstall: kcmdline=$kcmdline kernal=$kernelpath initrd=$initrdpath");
|
||||
$bptab->setNodeAttribs(
|
||||
$node,
|
||||
{
|
||||
kernel => $kernelpath,
|
||||
initrd => $initrdpath,
|
||||
kcmdline => $kcmdline
|
||||
}
|
||||
);
|
||||
}
|
||||
elsif(-r "$tftppath/inst64"){
|
||||
#suseboot/inst64 is used for network installation before sles11.3
|
||||
#suseboot/inst64 can not be run on Power8 BE
|
||||
$kernelpath = "$rtftppath/inst64";
|
||||
xCAT::MsgUtils->trace($verbose_on_off,"d","sles->mkinstall: kcmdline=$kcmdline kernal=$kernelpath initrd=");
|
||||
$bptab->setNodeAttribs(
|
||||
$node,
|
||||
{
|
||||
kernel => $kernelpath,
|
||||
initrd => "",
|
||||
kcmdline => $kcmdline
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -37,10 +37,11 @@ my %global_switch_type = (
|
||||
mellanox => "Mellanox",
|
||||
MLNX => "Mellanox",
|
||||
MELLAN => "Mellanox",
|
||||
IBM => "BNT",
|
||||
IBM => "BNT"
|
||||
);
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
=head1 xCAT_plugin:switchdiscover
|
||||
=head2 Package Description
|
||||
@ -423,7 +424,7 @@ sub process_request {
|
||||
|
||||
if (!$display_done) {
|
||||
#display header
|
||||
$format = "%-12s\t%-15s\t%-40.50s\t%-12s";
|
||||
$format = "%-12s\t%-20s\t%-50s\t%-12s";
|
||||
$header = sprintf $format, "ip", "name","vendor", "mac";
|
||||
send_msg(\%request, 0, $header);
|
||||
my $sep = "------------";
|
||||
@ -801,8 +802,10 @@ sub nmap_scan {
|
||||
sub snmp_scan {
|
||||
my $request = shift;
|
||||
my $ccmd;
|
||||
my $result;
|
||||
my $switches;
|
||||
my $counter = 0;
|
||||
my $nmap_version;
|
||||
|
||||
# snmpwalk command has to be available for snmp_scan
|
||||
if (-x "/usr/bin/snmpwalk" ){
|
||||
@ -819,13 +822,30 @@ sub snmp_scan {
|
||||
##################################################
|
||||
my $ranges = get_ip_ranges($request);
|
||||
|
||||
$ccmd = "nmap -V | grep version";
|
||||
$result = xCAT::Utils->runcmd($ccmd, 0);
|
||||
my @version_array = split / /, $result;
|
||||
$nmap_version = $version_array[2];
|
||||
if (exists($globalopt{verbose})) {
|
||||
send_msg($request, 0, "version of nmap: $nmap_version\n");
|
||||
}
|
||||
|
||||
#use nmap to find if snmp port is enabled
|
||||
$ccmd = "/usr/bin/nmap -P0 -v -sU -p 161 -oA snmp_scan @$ranges | grep 'open port 161' ";
|
||||
# only open port will be scan
|
||||
# currently, we know nmap version 4.75 has different output for snmp_scan
|
||||
# command.
|
||||
# for version 4.75, the line as :"Host 10.4.25.1 appears to be up ... good."
|
||||
# other higher version has line like this: "Discovered open port 161/udp on 10.4.25.1"
|
||||
if (xCAT::Utils->version_cmp($nmap_version,"4.75") <= 0) {
|
||||
$ccmd = "/usr/bin/nmap -P0 -v -sU -p 161 -oA snmp_scan @$ranges | grep up | grep good ";
|
||||
} else {
|
||||
$ccmd = "/usr/bin/nmap -P0 -v -sU -p 161 -oA snmp_scan @$ranges | grep 'open port 161' ";
|
||||
}
|
||||
if (exists($globalopt{verbose})) {
|
||||
send_msg($request, 0, "Process command: $ccmd\n");
|
||||
}
|
||||
|
||||
my $result = xCAT::Utils->runcmd($ccmd, 0);
|
||||
$result = xCAT::Utils->runcmd($ccmd, 0);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
send_msg($request, 1, "Could not process this command: $ccmd" );
|
||||
@ -840,11 +860,14 @@ sub snmp_scan {
|
||||
}
|
||||
my @lines = split /\n/, $result;
|
||||
|
||||
# each line like this: "Discovered open port 161/udp on 10.4.25.1"
|
||||
# only open port will be scan
|
||||
foreach my $line (@lines) {
|
||||
my @array = split / /, $line;
|
||||
my $ip = $array[5];
|
||||
my $ip;
|
||||
if (xCAT::Utils->version_cmp($nmap_version,"4.75") <= 0) {
|
||||
$ip = $array[1];
|
||||
} else {
|
||||
$ip = $array[5];
|
||||
}
|
||||
if (exists($globalopt{verbose})) {
|
||||
send_msg($request, 0, "Run snmpwalk command to get information for $ip");
|
||||
}
|
||||
@ -885,7 +908,9 @@ sub get_snmpvendorinfo {
|
||||
my $snmpwalk_vendor;
|
||||
|
||||
|
||||
my $ccmd = "snmpwalk -Os -v1 -c public $ip sysDescr.0";
|
||||
#Ubuntu only takes OID
|
||||
#my $ccmd = "snmpwalk -Os -v1 -c public $ip sysDescr.0";
|
||||
my $ccmd = "snmpwalk -Os -v1 -c public $ip 1.3.6.1.2.1.1.1";
|
||||
if (exists($globalopt{verbose})) {
|
||||
send_msg($request, 0, "Process command: $ccmd\n");
|
||||
}
|
||||
@ -922,7 +947,10 @@ sub get_snmpmac {
|
||||
my $ip = shift;
|
||||
my $mac;
|
||||
|
||||
my $ccmd = "snmpwalk -Os -v1 -c public $ip ipNetToMediaPhysAddress | grep $ip";
|
||||
#Ubuntu only takes OID
|
||||
#my $ccmd = "snmpwalk -Os -v1 -c public $ip ipNetToMediaPhysAddress | grep $ip";
|
||||
my $ccmd = "snmpwalk -Os -v1 -c public $ip 1.3.6.1.2.1.4.22.1.2 | grep $ip";
|
||||
|
||||
if (exists($globalopt{verbose})) {
|
||||
send_msg($request, 0, "Process command: $ccmd\n");
|
||||
}
|
||||
@ -937,6 +965,10 @@ sub get_snmpmac {
|
||||
}
|
||||
|
||||
my ($desc,$mac) = split /: /, $result;
|
||||
#trim the white space at begin and end of mac
|
||||
$mac =~ s/^\s+|\s+$//g;
|
||||
#replace space to :
|
||||
$mac =~ tr/ /:/;
|
||||
|
||||
if (exists($globalopt{verbose})) {
|
||||
send_msg($request, 0, "switch mac = $mac\n" );
|
||||
@ -959,7 +991,9 @@ sub get_snmphostname {
|
||||
my $ip = shift;
|
||||
my $hostname;
|
||||
|
||||
my $ccmd = "snmpwalk -Os -v1 -c public $ip sysName";
|
||||
#Ubuntu only takes OID
|
||||
#my $ccmd = "snmpwalk -Os -v1 -c public $ip sysName";
|
||||
my $ccmd = "snmpwalk -Os -v1 -c public $ip 1.3.6.1.2.1.1.5";
|
||||
if (exists($globalopt{verbose})) {
|
||||
send_msg($request, 0, "Process command: $ccmd\n");
|
||||
}
|
||||
|
@ -949,19 +949,10 @@ sub genSSHNodeHostKey
|
||||
# generate new hostkeys
|
||||
#
|
||||
xCAT::MsgUtils->message('I', "Generating new node hostkeys...");
|
||||
xCAT::MsgUtils->message('I', "Generating SSH1 RSA Key...");
|
||||
my $cmd =
|
||||
"/usr/bin/ssh-keygen -t rsa1 -f /etc/xcat/hostkeys/ssh_host_key -C '' -N ''";
|
||||
my $outref = xCAT::Utils->runcmd("$cmd", 0);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
xCAT::MsgUtils->message('E', "Could not generate SSH1 RSA key.");
|
||||
}
|
||||
|
||||
xCAT::MsgUtils->message('I', "Generating SSH2 RSA Key...");
|
||||
$cmd =
|
||||
my $cmd =
|
||||
"/usr/bin/ssh-keygen -t rsa -f /etc/xcat/hostkeys/ssh_host_rsa_key -C '' -N ''";
|
||||
$outref = xCAT::Utils->runcmd("$cmd", 0);
|
||||
my $outref = xCAT::Utils->runcmd("$cmd", 0);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
xCAT::MsgUtils->message('E', "Could not generate SSH2 RSA key.");
|
||||
@ -1172,6 +1163,7 @@ sub initDB
|
||||
$chtabcmds .= "$::XCATROOT/sbin/chtab key=dhcplease site.value=43200;";
|
||||
$chtabcmds .= "$::XCATROOT/sbin/chtab key=auditnosyslog site.value=0;";
|
||||
$chtabcmds .= "$::XCATROOT/sbin/chtab key=xcatsslversion site.value=TLSv1;";
|
||||
$chtabcmds .= "$::XCATROOT/sbin/chtab key=auditskipcmds site.value=ALL;";
|
||||
#$chtabcmds .= "$::XCATROOT/sbin/chtab key=useflowcontrol site.value=yes;"; # need to fix 4031
|
||||
|
||||
if ($::osname eq 'AIX')
|
||||
|
@ -585,13 +585,13 @@ sub do_discovery_process {
|
||||
populate_vpd_hash();
|
||||
populate_mp_hash();
|
||||
while (not $quit) {
|
||||
my $msg = fd_retrieve($broker);
|
||||
if ((time()-$vintage)> 15) {
|
||||
populate_site_hash();
|
||||
populate_vpd_hash();
|
||||
populate_mp_hash();
|
||||
$vintage = time();
|
||||
} # site table reread every 15 second
|
||||
my $msg = fd_retrieve($broker);
|
||||
my $data;
|
||||
my $client;
|
||||
my $clientn;
|
||||
@ -616,7 +616,7 @@ sub do_discovery_process {
|
||||
# xcatrequest xml, so go ahead and decompress it
|
||||
my $bigdata;
|
||||
IO::Uncompress::Gunzip::gunzip(\$data,\$bigdata);
|
||||
$data = $bigdata
|
||||
$data = $bigdata;
|
||||
}
|
||||
my $req = eval { XMLin($data, SuppressEmpty=>undef,ForceArray=>1) };
|
||||
if ($req and $req->{command} and ($req->{command}->[0] eq "findme" and $sport < 1000)) { # only consider priveleged port requests to start with
|
||||
@ -962,7 +962,6 @@ $SIG{TERM} = $SIG{INT} = sub {
|
||||
kill 'USR2', $pid_UDP;
|
||||
}
|
||||
if ($pid_MON) {
|
||||
kill 'INT', $pid_MON;
|
||||
kill 'USR2', $pid_MON;
|
||||
}
|
||||
xCAT::Table::shut_dbworker;
|
||||
@ -1294,6 +1293,8 @@ my @pendingconnections;
|
||||
my $tconn;
|
||||
my $sslfudgefactor = 0;
|
||||
my $udpalive = 1;
|
||||
# Make sure DB process is ready.
|
||||
wait_db_process();
|
||||
until ($quit) {
|
||||
$SIG{CHLD} = \&ssl_reaper; # set here to ensure that signal handler is not corrupted during loop
|
||||
while ($udpalive and $udpwatcher->can_read(0)) { # take an intermission to broker some state requests from udp traffic control
|
||||
@ -2353,6 +2354,33 @@ sub becomeuser {
|
||||
# If here, unable to validate given credential
|
||||
return undef;
|
||||
}
|
||||
|
||||
# Wait for the db process
|
||||
sub wait_db_process {
|
||||
my $retry = 100;
|
||||
my $ready = 0;
|
||||
# Make sure DB process is ready, so that no direct access
|
||||
while($retry) {
|
||||
if (!xCAT::Utils::is_process_exists($dbmaster)) {
|
||||
sleep 0.1;
|
||||
} else {
|
||||
$ready = 1;
|
||||
last;
|
||||
}
|
||||
$retry --;
|
||||
}
|
||||
if (!$ready) {
|
||||
xCAT::MsgUtils->message("S","Error: xcat db process has not been started in 10 seconds.");
|
||||
return -1;
|
||||
}
|
||||
# use create 1 to make sure nodelist and site object cached.
|
||||
my $tmptab = xCAT::Table->new('site',-create=>1);
|
||||
if(!$tmptab) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub populate_site_hash {
|
||||
%::XCATSITEVALS=();
|
||||
my $sitetab = xCAT::Table->new('site',-create=>0);
|
||||
|
@ -67,7 +67,7 @@ cert_opt = ca_default # Certificate field options
|
||||
|
||||
default_days = 7300 # how long to certify for
|
||||
default_crl_days= 30 # how long before next CRL
|
||||
default_md = sha256 # which md to use.
|
||||
default_md = sha1 # which md to use.
|
||||
preserve = no # keep passed DN ordering
|
||||
|
||||
# A few difference way of specifying how similar the request should look
|
||||
|
50
xCAT-server/share/xcat/ib/scripts/Mellanox/mlnxofed_ib_install.v2
Normal file → Executable file
50
xCAT-server/share/xcat/ib/scripts/Mellanox/mlnxofed_ib_install.v2
Normal file → Executable file
@ -250,18 +250,27 @@ if [ "$OS" = "Linux" ]; then
|
||||
echo "[Error] please make your $HOSTNAME has ability to access ports.ubuntu.com" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
echo "get distro name form /etc/lsb-release ......"
|
||||
source /etc/lsb-release >/dev/null 2>&1
|
||||
if [ -z "$DISTRIB_CODENAME" ]; then
|
||||
echo "[Error] can't get DISTRIB_CODENAME " >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "DISTRIB_CODENAME=$DISTRIB_CODENAME ...[OK]"
|
||||
|
||||
cp /etc/apt/sources.list /etc/apt/sources.list.bak
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty main/d" /etc/apt/sources.list
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty-updates main/d" /etc/apt/sources.list
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty universe/d" /etc/apt/sources.list
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty-updates universe/d" /etc/apt/sources.list
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME main/d" /etc/apt/sources.list
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME-updates main/d" /etc/apt/sources.list
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME universe/d" /etc/apt/sources.list
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME-updates universe/d" /etc/apt/sources.list
|
||||
|
||||
cat <<-EOF >>/etc/apt/sources.list
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty universe
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates universe
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-updates main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME universe
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-updates universe
|
||||
EOF
|
||||
|
||||
apt-get clean all
|
||||
@ -354,18 +363,25 @@ EOF
|
||||
|
||||
sourceslist="$IMGROOTPATH/etc/apt/sources.list"
|
||||
cp "$sourceslist" "${sourceslist}.bak"
|
||||
|
||||
echo "get distro name form $IMGROOTPATH/etc/lsb-release ......"
|
||||
source $IMGROOTPATH/etc/lsb-release >/dev/null 2>&1
|
||||
if [ -z "$DISTRIB_CODENAME" ]; then
|
||||
echo "[Error] can't get DISTRIB_CODENAME " >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "DISTRIB_CODENAME=$DISTRIB_CODENAME ...[OK]"
|
||||
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty main/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty main/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty-updates main/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty universe/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ trusty-updates universe/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME main/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME-updates main/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME universe/d" $sourceslist
|
||||
sed -i "/deb http:\\/\\/ports.ubuntu.com\\/ubuntu-ports\\/ $DISTRIB_CODENAME-updates universe/d" $sourceslist
|
||||
|
||||
cat <<-EOF >>"$sourceslist"
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty universe
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates universe
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-updates main
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME universe
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-updates universe
|
||||
EOF
|
||||
|
||||
chroot "$IMGROOTPATH" apt-get clean all
|
||||
|
@ -76,7 +76,12 @@ clearpart --all --initlabel
|
||||
# --useLilo
|
||||
# --md5pass <crypted MD5 password for GRUB>
|
||||
#
|
||||
bootloader
|
||||
#The bootloader config here is commented out
|
||||
#For user customized partition file or partition script,
|
||||
#the bootloader configuration should be specified in the user customized partition file/script
|
||||
#For the xCAT default partition scheme, the bootloader configuration is in /tmp/partitioning
|
||||
#which is generated in %pre section
|
||||
##KICKSTARTBOOTLOADER#
|
||||
|
||||
#
|
||||
# install or upgrade
|
||||
@ -147,9 +152,19 @@ reboot
|
||||
#INCLUDE_DEFAULT_PKGLIST#
|
||||
%end
|
||||
%pre
|
||||
{
|
||||
echo "Running Kickstart Pre-Installation script..."
|
||||
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/pre.rh.rhels7#
|
||||
} >>/tmp/pre-install.log 2>&1
|
||||
%end
|
||||
%post
|
||||
mkdir -p /var/log/xcat/
|
||||
{
|
||||
cat >> /var/log/xcat/xcat.log << "EOF"
|
||||
%include /tmp/pre-install.log
|
||||
EOF
|
||||
echo "Running Kickstart Post-Installation script..."
|
||||
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/post.xcat#
|
||||
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/post.rhels7#
|
||||
} >>/var/log/xcat/xcat.log 2>&1
|
||||
%end
|
||||
|
@ -75,7 +75,12 @@ clearpart --all --initlabel
|
||||
# --useLilo
|
||||
# --md5pass <crypted MD5 password for GRUB>
|
||||
#
|
||||
#KICKSTARTBOOTLOADER#
|
||||
#The bootloader config here is commented out
|
||||
#For user customized partition file or partition script,
|
||||
#the bootloader configuration should be specified in the user customized partition file/script
|
||||
#For the xCAT default partition scheme, the bootloader configuration is in /tmp/partitioning
|
||||
#which is generated in %pre section
|
||||
##KICKSTARTBOOTLOADER#
|
||||
|
||||
|
||||
#
|
||||
|
@ -75,7 +75,13 @@ clearpart --all --initlabel
|
||||
# --useLilo
|
||||
# --md5pass <crypted MD5 password for GRUB>
|
||||
#
|
||||
#KICKSTARTBOOTLOADER#
|
||||
#The bootloader config here is commented out
|
||||
#For user customized partition file or partition script,
|
||||
#the bootloader configuration should be specified in the user customized partition file/script
|
||||
#For the xCAT default partition scheme, the bootloader configuration is in /tmp/partitioning
|
||||
#which is generated in %pre section
|
||||
##KICKSTARTBOOTLOADER#
|
||||
|
||||
#
|
||||
# install or upgrade
|
||||
#
|
||||
|
@ -18,11 +18,11 @@
|
||||
#-----------------------------------------------------------
|
||||
|
||||
install_disk=""
|
||||
rm /tmp/install_disk
|
||||
rm -f /tmp/install_disk
|
||||
tmpdir="/tmp/xcat.getinstalldisk"
|
||||
mkdir -p $tmpdir
|
||||
|
||||
has_awk=$(find / -name "awk")
|
||||
has_awk=$(find /usr/* -name "awk")
|
||||
|
||||
utolcmd="sed -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"
|
||||
|
||||
@ -36,9 +36,9 @@ if [ -z "$install_disk" ]; then
|
||||
|
||||
# Get all partitions and disks from /proc/partitions file
|
||||
if [ -z "$has_awk" ]; then
|
||||
entries=$(cat /proc/partitions | sed 's/ */ /g' | cut -d " " -f5 | grep -v "name" | grep -e "[s|h]d.*$")
|
||||
entries=$(cat /proc/partitions | sed 's/ */ /g' | cut -d " " -f5 | grep -v "name" | grep -e "[s|h|v]d.*$")
|
||||
else
|
||||
entries=$(awk -F ' ' '{print $4}' /proc/partitions | grep -v "name" | grep -e "[s|h]d.*$")
|
||||
entries=$(awk -F ' ' '{print $4}' /proc/partitions | grep -v "name" | grep -e "[s|h|v]d.*$")
|
||||
fi
|
||||
|
||||
# Classify entries by DEVTYPE
|
||||
@ -133,10 +133,10 @@ if [ -z "$install_disk" ]; then
|
||||
for disk in $disks; do
|
||||
# Get disk's information: WWN, PATH and DRIVER
|
||||
disk_info=$(udevadm info --query=property --name=$disk)
|
||||
output_for_wwn=$(echo $disk_info | grep '\<ID_WWN\>' | cut -d "=" -f2 | $utolcmd)
|
||||
disk_wwn=$(IFS= ;echo $output_for_wwn)
|
||||
output_for_path=$(echo $disk_info | grep DEVPATH | cut -d "=" -f2 | $utolcmd)
|
||||
disk_path=$(IFS= ;echo $output_for_path)
|
||||
output_for_wwn=$(IFS= ;echo $disk_info | grep '\<ID_WWN\>' | cut -d "=" -f2)
|
||||
disk_wwn=$(echo $output_for_wwn | $utolcmd)
|
||||
output_for_path=$(IFS= ;echo $disk_info | grep DEVPATH | cut -d "=" -f2)
|
||||
disk_path=$(echo $output_for_path | $utolcmd)
|
||||
disk_driver=$(udevadm info --attribute-walk --name=$disk | grep DRIVERS| grep -v '""'| grep -v '"sd"'|
|
||||
\head -n 1| sed -e 's/[^"]*"//' -e 's/"//' | $utolcmd)
|
||||
|
||||
|
@ -421,6 +421,19 @@ updateflag.awk $MASTER 3002
|
||||
|
||||
cd /
|
||||
|
||||
# fix the issue#929@github, the "service network restart" in <sles post scripts>
|
||||
# makes the 'network' service in start status, then it causes the
|
||||
# services YaST2-Second-Stage.service and xcatpostinit1 services to be run in parallel.
|
||||
# But the YaST2-Second-Stage.service calls the Yast2 which conflics with the zypper
|
||||
# which is called in xcatpostinit1->otherpkgs.
|
||||
# The correct services start order is 'YaST2-Second-Stage.service'->'network'->'xcatpostinit1' in serial.
|
||||
# To skip the conflict, the network service should be stoped in the yast first stage. Then base on the service
|
||||
# dependency, the service start order will be 'YaST2-Second-Stage.service'->'network'->'xcatpostinit1' in serial.
|
||||
# Then the Yast2 will be stopped before running the zypper in otherpkgs.
|
||||
if [[ $OSVER =~ sles && $OSVER != sles11* ]]; then
|
||||
service network stop
|
||||
fi
|
||||
|
||||
if [ "$XCATDEBUGMODE" = "1" ] || [ "$XCATDEBUGMODE" = "2" ]; then
|
||||
set +x
|
||||
fi
|
||||
|
@ -191,6 +191,18 @@ echo "part swap --recommended --ondisk $instdisk" >> /tmp/partitioning
|
||||
echo "part pv.01 --size 1 --grow --ondisk $instdisk" >> /tmp/partitioning
|
||||
echo "volgroup system pv.01" >> /tmp/partitioning
|
||||
echo "logvol / --vgname=system --name=root --size 1 --grow --fstype $FSTYPE" >> /tmp/partitioning
|
||||
|
||||
#specify "bootloader" configuration in "/tmp/partitioning" if there is no user customized partition file
|
||||
BOOTLOADER="bootloader "
|
||||
|
||||
#specify the kernel options which will be persistent after installation
|
||||
[ -n "#ENV:PERSKCMDLINE#" ] && BOOTLOADER=$BOOTLOADER" --append=#ENV:PERSKCMDLINE#"
|
||||
|
||||
#Specifies which drive the boot loader should be written to
|
||||
#and therefore which drive the computer will boot from.
|
||||
[ -n "$instdisk" ] && BOOTLOADER=$BOOTLOADER" --boot-drive=$(basename $instdisk)"
|
||||
|
||||
echo "$BOOTLOADER" >> /tmp/partitioning
|
||||
|
||||
#XCA_PARTITION_SCRIPT#
|
||||
|
||||
|
22
xCAT-server/share/xcat/install/sles/service.sles12.pkglist
Normal file
22
xCAT-server/share/xcat/install/sles/service.sles12.pkglist
Normal file
@ -0,0 +1,22 @@
|
||||
@base
|
||||
@x11
|
||||
openssl
|
||||
ntp
|
||||
rsync
|
||||
nmap
|
||||
perl-DBI
|
||||
vsftpd
|
||||
perl-IO-Tty
|
||||
perl-Expect
|
||||
perl-SNMP
|
||||
unixODBC
|
||||
perl-Net-DNS
|
||||
perl-DBD-mysql
|
||||
mariadb-client
|
||||
libmysqlclient18
|
||||
# The following rpms are available on the SLES SDK
|
||||
# You will need to locate and make these rpms available in your zypper
|
||||
# repository for service node installs and uncomment the following lines:
|
||||
#MyODBC-unixODBC
|
||||
#perl-DBD-Pg
|
||||
|
@ -0,0 +1,2 @@
|
||||
xcat/xcat-core/xCATsn
|
||||
xcat/xcat-dep/sles12/ppc64le/conserver-xcat
|
126
xCAT-server/share/xcat/install/sles/service.sles12.tmpl
Normal file
126
xCAT-server/share/xcat/install/sles/service.sles12.tmpl
Normal file
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE profile SYSTEM "/usr/share/YaST2/include/autoinstall/profile.dtd">
|
||||
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
|
||||
<install>
|
||||
<bootloader>
|
||||
<write_bootloader config:type="boolean">true</write_bootloader>
|
||||
<activate config:type="boolean">true</activate>
|
||||
<kernel_parameters>#XCATVAR:PERSKCMDLINE#</kernel_parameters>
|
||||
<lba_support config:type="boolean">false</lba_support>
|
||||
<linear config:type="boolean">false</linear>
|
||||
<location>mbr</location>
|
||||
</bootloader>
|
||||
<general>
|
||||
<clock>
|
||||
<hwclock>GMT</hwclock>
|
||||
<timezone>#TABLE:site:key=timezone:value#</timezone>
|
||||
</clock>
|
||||
<keyboard>
|
||||
<keymap>english-us</keymap>
|
||||
</keyboard>
|
||||
<language>en_US</language>
|
||||
<mode>
|
||||
<confirm config:type="boolean">false</confirm>
|
||||
<forceboot config:type="boolean">false</forceboot>
|
||||
<interactive_boot config:type="boolean">false</interactive_boot>
|
||||
<reboot config:type="boolean">true</reboot>
|
||||
</mode>
|
||||
<mouse>
|
||||
<id>non</id>
|
||||
</mouse>
|
||||
<signature-handling>
|
||||
<accept_non_trusted_gpg_key config:type="boolean">true</accept_non_trusted_gpg_key>
|
||||
<accept_unknown_gpg_key config:type="boolean">true</accept_unknown_gpg_key>
|
||||
<accept_unsigned_file config:type="boolean">true</accept_unsigned_file>
|
||||
</signature-handling>
|
||||
</general>
|
||||
<partitioning config:type="list">
|
||||
<!-- XCAT-PARTITION-START -->
|
||||
<drive>
|
||||
<device>XCATPARTITIONHOOK</device>
|
||||
<initialize config:type="boolean">true</initialize>
|
||||
<use>all</use>
|
||||
<partitions config:type="list">
|
||||
<partition>
|
||||
<create config:type="boolean">true</create>
|
||||
<loop_fs config:type="boolean">false</loop_fs>
|
||||
<mountby config:type="symbol">device</mountby>
|
||||
<partition_id config:type="integer">65</partition_id>
|
||||
<partition_nr config:type="integer">1</partition_nr>
|
||||
<resize config:type="boolean">false</resize>
|
||||
<size>8225280</size>
|
||||
</partition>
|
||||
<partition>
|
||||
<create config:type="boolean">true</create>
|
||||
<crypt_fs config:type="boolean">false</crypt_fs>
|
||||
<filesystem config:type="symbol">swap</filesystem>
|
||||
<format config:type="boolean">true</format>
|
||||
<loop_fs config:type="boolean">false</loop_fs>
|
||||
<mount>swap</mount>
|
||||
<mountby config:type="symbol">uuid</mountby>
|
||||
<partition_id config:type="integer">130</partition_id>
|
||||
<partition_nr config:type="integer">2</partition_nr>
|
||||
<resize config:type="boolean">false</resize>
|
||||
<size>auto</size>
|
||||
</partition>
|
||||
<partition>
|
||||
<create config:type="boolean">true</create>
|
||||
<crypt_fs config:type="boolean">false</crypt_fs>
|
||||
<filesystem config:type="symbol">btrfs</filesystem>
|
||||
<format config:type="boolean">true</format>
|
||||
<loop_fs config:type="boolean">false</loop_fs>
|
||||
<mount>/</mount>
|
||||
<mountby config:type="symbol">uuid</mountby>
|
||||
<partition_id config:type="integer">131</partition_id>
|
||||
<partition_nr config:type="integer">3</partition_nr>
|
||||
<size>100%</size>
|
||||
</partition>
|
||||
</partitions>
|
||||
</drive>
|
||||
<!-- XCAT-PARTITION-END -->
|
||||
</partitioning>
|
||||
<software>
|
||||
<patterns config:type="list">
|
||||
#INCLUDE_DEFAULT_PTRNLIST_S#
|
||||
</patterns>
|
||||
<packages config:type="list">
|
||||
#INCLUDE_DEFAULT_PKGLIST_S#
|
||||
</packages>
|
||||
</software>
|
||||
</install>
|
||||
<configure>
|
||||
<users config:type="list">
|
||||
<user>
|
||||
<username>root</username>
|
||||
<user_password>#CRYPT:passwd:key=system,username=root:password#</user_password>
|
||||
<encrypted config:type="boolean">true</encrypted>
|
||||
<forename/>
|
||||
<surname/>
|
||||
</user>
|
||||
</users>
|
||||
<networking>
|
||||
<dns>
|
||||
<dhcp_hostname config:type="boolean">true</dhcp_hostname>
|
||||
<dhcp_resolv config:type="boolean">true</dhcp_resolv>
|
||||
<domain>local</domain>
|
||||
<hostname>linux</hostname>
|
||||
</dns>
|
||||
<interfaces config:type="list">
|
||||
<interface>
|
||||
<bootproto>dhcp</bootproto>
|
||||
<device>eth0</device>
|
||||
<startmode>onboot</startmode>
|
||||
</interface>
|
||||
</interfaces>
|
||||
<routing>
|
||||
<ip_forward config:type="boolean">false</ip_forward>
|
||||
<routes config:type="list"/>
|
||||
</routing>
|
||||
</networking>
|
||||
<scripts>
|
||||
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/pre.sles#
|
||||
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/chroot.sles#
|
||||
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/post.sles11#
|
||||
</scripts>
|
||||
</configure>
|
||||
</profile>
|
@ -0,0 +1,2 @@
|
||||
xcat/xcat-core/xCATsn
|
||||
xcat/xcat-dep/sles12/x86_64/conserver-xcat
|
@ -1,5 +1,6 @@
|
||||
openssh-server
|
||||
ntp
|
||||
ntpdate
|
||||
gawk
|
||||
nfs-common
|
||||
snmpd
|
||||
|
@ -8,6 +8,7 @@ openssh-client
|
||||
wget
|
||||
vim
|
||||
ntp
|
||||
ntpdate
|
||||
rsync
|
||||
busybox-static
|
||||
gawk
|
||||
|
@ -251,10 +251,8 @@ my @sysfilelist = (
|
||||
"/etc/nsswitch.conf",
|
||||
"/etc/ssh/ssh_host_rsa_key",
|
||||
"/etc/ssh/ssh_config",
|
||||
"/etc/ssh/ssh_host_key",
|
||||
"/etc/ssh/sshd_config",
|
||||
"/etc/ssh/ssh_host_dsa_key",
|
||||
"/etc/ssh/ssh_host_key.pub",
|
||||
"/root/.ssh/id_rsa",
|
||||
"/root/.ssh/id_rsa.pub",
|
||||
"/root/.ssh/authorized_keys",);
|
||||
|
@ -91,15 +91,18 @@ sub mount_chroot {
|
||||
my $rootimage_dir = shift;
|
||||
|
||||
#postinstall script of some packages might access the /proc, /sys and /dev filesystem
|
||||
#For Redhat7 or above, mount these directories readonly from host to avoid error messages
|
||||
#For Redhat7 or above, mount /proc,/sys from host to avoid error messages
|
||||
#For Redhat7 or above, create /dev according to /dev on the host to avoid error messages
|
||||
#For Redhat6 or below, mount these directories might introduce error messages
|
||||
if(majversion($osver) > 6){
|
||||
system("mkdir -p $rootimage_dir/proc");
|
||||
system("mount proc $rootimage_dir/proc -t proc -o ro");
|
||||
system("mount proc $rootimage_dir/proc -t proc");
|
||||
system("mkdir -p $rootimage_dir/sys");
|
||||
system("mount sysfs $rootimage_dir/sys -t sysfs -o ro");
|
||||
system("mount sysfs $rootimage_dir/sys -t sysfs");
|
||||
system("mkdir -p $rootimage_dir/dev");
|
||||
system("mount devtmpfs $rootimage_dir/dev -t devtmpfs -o ro");
|
||||
#system("mount devtmpfs $rootimage_dir/dev -t devtmpfs");
|
||||
system("cd /dev;find .|cpio -H newc -o >$rootimage_dir/dev/dev.archive;cd -");
|
||||
system("cd $rootimage_dir/dev;cpio -idum<./dev.archive;rm -f ./dev.archive;cd -");
|
||||
}
|
||||
}
|
||||
|
||||
@ -109,9 +112,10 @@ sub umount_chroot {
|
||||
my $rootimage_dir = shift;
|
||||
|
||||
if(majversion($osver) >6){
|
||||
system("umount $rootimage_dir/proc");
|
||||
system("umount $rootimage_dir/sys");
|
||||
system("umount $rootimage_dir/dev");
|
||||
system("umount -l $rootimage_dir/proc");
|
||||
system("umount -l $rootimage_dir/sys");
|
||||
#system("umount -l $rootimage_dir/dev");
|
||||
system("rm -rf $rootimage_dir/dev/*");
|
||||
}
|
||||
}
|
||||
|
||||
|
69
xCAT-server/share/xcat/netboot/sles/service.sles12.pkglist
Normal file
69
xCAT-server/share/xcat/netboot/sles/service.sles12.pkglist
Normal file
@ -0,0 +1,69 @@
|
||||
aaa_base
|
||||
adaptec-firmware
|
||||
apache2
|
||||
apache2-prefork
|
||||
bash
|
||||
bind
|
||||
bind-utils
|
||||
binutils
|
||||
bc
|
||||
btrfsprogs
|
||||
bzip2
|
||||
cifs-utils
|
||||
coreutils
|
||||
cron
|
||||
cryptsetup
|
||||
curl
|
||||
dhcp
|
||||
dhcp-client
|
||||
dhcp-relay
|
||||
dhcp-server
|
||||
dmraid
|
||||
e2fsprogs
|
||||
fcoe-utils
|
||||
gpg2
|
||||
gzip
|
||||
kernel-default
|
||||
keyutils
|
||||
lvm2
|
||||
mdadm
|
||||
multipath-tools
|
||||
nfs-kernel-server
|
||||
ntp
|
||||
openssh
|
||||
openssl
|
||||
open-iscsi
|
||||
open-lldp
|
||||
pam
|
||||
pam-modules
|
||||
parted
|
||||
perl-doc
|
||||
perl-Expect
|
||||
plymouth
|
||||
plymouth-dracut
|
||||
procps
|
||||
psmisc
|
||||
rpm
|
||||
rsync
|
||||
sysconfig
|
||||
tar
|
||||
timezone
|
||||
udev
|
||||
util-linux
|
||||
util-linux-systemd
|
||||
vim
|
||||
vsftpd
|
||||
wget
|
||||
which
|
||||
zypper
|
||||
|
||||
#for database
|
||||
unixODBC
|
||||
perl-DBD-mysql
|
||||
mariadb-client
|
||||
libmysqlclient18
|
||||
# The following rpms are available on the SLES SDK
|
||||
# You will need to locate and make these rpms available in your zypper
|
||||
# repository for service node installs and uncomment the following lines:
|
||||
#MyODBC-unixODBC
|
||||
#perl-DBD-Pg
|
68
xCAT-server/share/xcat/netboot/sles/service.sles12.postinstall
Executable file
68
xCAT-server/share/xcat/netboot/sles/service.sles12.postinstall
Executable file
@ -0,0 +1,68 @@
|
||||
#!/bin/sh
|
||||
#-- Do not remove following line if you want to make use of CVS version tracking
|
||||
#-- $Id: compute.postinstall,v 1.21 2008/09/04 12:05:45 sikorsky Exp $
|
||||
#-- jurij.sikorsky@t-systems.cz
|
||||
#--
|
||||
#-- this script is run after all packages from $profile.pkglist are installed
|
||||
#--
|
||||
#-- it gets these arguments:
|
||||
#--
|
||||
#-- $1 = install root (chroot directory for profile)
|
||||
#-- $2 = OS version
|
||||
#-- $3 = architecture
|
||||
#-- $4 = profile name
|
||||
#-- $5 = work dir (where genimage is located)
|
||||
#--
|
||||
#--
|
||||
installroot=$1
|
||||
osver=$2
|
||||
arch=$3
|
||||
profile=$4
|
||||
workdir=$5
|
||||
|
||||
#-- Example how /etc/fstab can be automatically generated during image generation:
|
||||
cp $installroot/etc/fstab $installroot/etc/fstab.prev
|
||||
cat <<END >$installroot/etc/fstab
|
||||
proc /proc proc rw 0 0
|
||||
sysfs /sys sysfs rw 0 0
|
||||
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
|
||||
${profile}_${arch} / tmpfs rw 0 1
|
||||
none /tmp tmpfs defaults,size=10m 0 2
|
||||
none /var/tmp tmpfs defaults,size=10m 0 2
|
||||
END
|
||||
|
||||
|
||||
cat <<END >>$installroot/etc/hosts
|
||||
`getent hosts $HOSTNAME`
|
||||
END
|
||||
|
||||
#Prevent DHCP from starting up until xcatd has had a chance to configure it:
|
||||
chroot $installroot chkconfig dhcpd off
|
||||
chroot $installroot chkconfig dhcrelay off
|
||||
|
||||
#turn on some services
|
||||
chroot $installroot chkconfig dbus on
|
||||
chroot $installroot chkconfig boot.localnet on
|
||||
chroot $installroot chkconfig haldaemon on
|
||||
chroot $installroot chkconfig network on
|
||||
chroot $installroot chkconfig syslog on
|
||||
chroot $installroot chkconfig apache2 on
|
||||
|
||||
#export /install as read-only
|
||||
mkdir -p /install
|
||||
echo '/install *(ro,no_root_squash,sync,fsid=13)' > $installroot/etc/exports
|
||||
|
||||
#uncomment out the cons line in etc/inittab
|
||||
#sed -i 's/^\#\(\s\)*cons/cons/' $installroot/etc/inittab
|
||||
|
||||
TMP_inittab=`sed 's/\(#\)\(cons:12345.*\)$/\2/' $installroot/etc/inittab`
|
||||
echo "$TMP_inittab" > $installroot/etc/inittab
|
||||
|
||||
|
||||
#-- Example of booted image versioning
|
||||
#-- We want to know, with what configuration (version of the image) each node was booted.
|
||||
#-- Hence, we keep image definition files and postscripts in CVS. During image generation we create file /etc/IMGVERSION and fill it with CVS "$Id$" of files with image definition (.pkglist, .exlist, .repolist, .postinstall). Then, during boot, each "CVS enabled" postscript (see /install/postscripts/cvs_template.sh and /install/postscripts/cvs_template.pl) adds one line to /etc/IMGVERSION. Then you can determine in any time what image you are running and what postscipts in which versions were run.
|
||||
#cat /dev/null > $installroot/etc/IMGVERSION
|
||||
#for ext in pkglist exlist postinstall repolist; do
|
||||
# [ -r $workdir/$profile.$ext ] && cat $workdir/$profile.$ext | grep -E '^[[:space:]]*#.*[[:space:]]\$Id' >> $installroot/etc/IMGVERSION
|
||||
#done
|
@ -0,0 +1,2 @@
|
||||
xcat/xcat-core/xCATsn
|
||||
xcat/xcat-dep/sles12/ppc64le/conserver-xcat
|
46
xCAT-server/share/xcat/netboot/sles/service.sles12.ppc64le.postinstall
Executable file
46
xCAT-server/share/xcat/netboot/sles/service.sles12.ppc64le.postinstall
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
#-- Do not remove following line if you want to make use of CVS version tracking
|
||||
#-- $Id: compute.postinstall,v 1.21 2008/09/04 12:05:45 sikorsky Exp $
|
||||
#-- jurij.sikorsky@t-systems.cz
|
||||
#--
|
||||
#-- this script is run after all packages from $profile.pkglist are installed
|
||||
#--
|
||||
#-- it gets these arguments:
|
||||
#--
|
||||
#-- $1 = install root (chroot directory for profile)
|
||||
#-- $2 = OS version
|
||||
#-- $3 = architecture
|
||||
#-- $4 = profile name
|
||||
#-- $5 = work dir (where genimage is located)
|
||||
#--
|
||||
#--
|
||||
installroot=$1
|
||||
osver=$2
|
||||
arch=$3
|
||||
profile=$4
|
||||
workdir=$5
|
||||
|
||||
#-- Example how /etc/fstab can be automatically generated during image generation:
|
||||
cat <<END >$installroot/etc/fstab
|
||||
proc /proc proc rw 0 0
|
||||
sysfs /sys sysfs rw 0 0
|
||||
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
|
||||
${profile}_${arch} / tmpfs rw 0 1
|
||||
none /tmp tmpfs defaults,size=10m 0 2
|
||||
none /var/tmp tmpfs defaults,size=10m 0 2
|
||||
END
|
||||
|
||||
#-- Uncomment the line contains "cons" in /etc/inittab
|
||||
#cons:12345:respawn:/sbin/smart_agetty -L 38400 console
|
||||
TMP_inittab=`sed 's/\(#\)\(cons:12345.*\)$/\2/' $installroot/etc/inittab`
|
||||
echo "$TMP_inittab" > $installroot/etc/inittab
|
||||
|
||||
|
||||
#-- Example of booted image versioning
|
||||
#-- We want to know, with what configuration (version of the image) each node was booted.
|
||||
#-- Hence, we keep image definition files and postscripts in CVS. During image generation we create file /etc/IMGVERSION and fill it with CVS "$Id$" of files with image definition (.pkglist, .exlist, .repolist, .postinstall). Then, during boot, each "CVS enabled" postscript (see /install/postscripts/cvs_template.sh and /install/postscripts/cvs_template.pl) adds one line to /etc/IMGVERSION. Then you can determine in any time what image you are running and what postscipts in which versions were run.
|
||||
#cat /dev/null > $installroot/etc/IMGVERSION
|
||||
#for ext in pkglist exlist postinstall repolist; do
|
||||
# [ -r $workdir/$profile.$ext ] && cat $workdir/$profile.$ext | grep -E '^[[:space:]]*#.*[[:space:]]\$Id' >> $installroot/etc/IMGVERSION
|
||||
#done
|
||||
|
@ -0,0 +1,3 @@
|
||||
-perl-doc
|
||||
xcat/xcat-core/xCATsn
|
||||
xcat/xcat-dep/sles12/x86_64/conserver-xcat
|
@ -49,5 +49,5 @@ chroot $installroot \
|
||||
locale-gen en_US.UTF-8 en_US
|
||||
chroot $installroot \
|
||||
update-locale
|
||||
chroot $installroot \
|
||||
DEBIAN_FRONTEND=noninteractive chroot $installroot \
|
||||
dpkg-reconfigure locales
|
||||
|
@ -1 +0,0 @@
|
||||
compute.ubuntu14.04.3.ppc64el.pkglist
|
@ -0,0 +1,15 @@
|
||||
bash
|
||||
nfs-common
|
||||
openssl
|
||||
isc-dhcp-client
|
||||
libc-bin
|
||||
linux-image-generic-lts-wily
|
||||
openssh-server
|
||||
openssh-client
|
||||
wget
|
||||
vim
|
||||
ntp
|
||||
rsync
|
||||
busybox-static
|
||||
gawk
|
||||
dnsutils
|
@ -1 +0,0 @@
|
||||
compute.ubuntu14.04.3.x86_64.pkglist
|
@ -0,0 +1,15 @@
|
||||
bash
|
||||
nfs-common
|
||||
openssl
|
||||
isc-dhcp-client
|
||||
libc-bin
|
||||
linux-image-generic-lts-wily
|
||||
openssh-server
|
||||
openssh-client
|
||||
wget
|
||||
vim
|
||||
ntp
|
||||
rsync
|
||||
busybox-static
|
||||
gawk
|
||||
dnsutils
|
@ -3,12 +3,13 @@ nfs-common
|
||||
openssl
|
||||
isc-dhcp-client
|
||||
libc-bin
|
||||
linux-image-generic-lts-xenial
|
||||
linux-image-generic
|
||||
openssh-server
|
||||
openssh-client
|
||||
wget
|
||||
vim
|
||||
ntp
|
||||
ntpdate
|
||||
rsync
|
||||
busybox-static
|
||||
gawk
|
||||
|
@ -3,12 +3,13 @@ nfs-common
|
||||
openssl
|
||||
isc-dhcp-client
|
||||
libc-bin
|
||||
linux-image-generic-lts-xenial
|
||||
linux-image-generic
|
||||
openssh-server
|
||||
openssh-client
|
||||
wget
|
||||
vim
|
||||
ntp
|
||||
ntpdate
|
||||
rsync
|
||||
busybox-static
|
||||
gawk
|
||||
|
@ -1970,13 +1970,17 @@ sub mount_chroot {
|
||||
|
||||
#postinstall script of package installation
|
||||
#might access the /proc, /sys and /dev filesystem
|
||||
#mount them from host read-only
|
||||
#mount /proc, /sys from host
|
||||
#create /dev based on /dev/ on host
|
||||
system("mkdir -p $rootimage_dir/proc");
|
||||
system("mount proc $rootimage_dir/proc -t proc -o ro");
|
||||
system("mount proc $rootimage_dir/proc -t proc");
|
||||
system("mkdir -p $rootimage_dir/sys");
|
||||
system("mount sysfs $rootimage_dir/sys -t sysfs -o ro");
|
||||
system("mount sysfs $rootimage_dir/sys -t sysfs");
|
||||
system("mkdir -p $rootimage_dir/dev");
|
||||
system("mount devfs $rootimage_dir/dev -t devfs -o ro");
|
||||
#system("mount devtmpfs $rootimage_dir/dev -t devtmpfs");
|
||||
system("cd /dev;find .|cpio -H newc -o >$rootimage_dir/dev/dev.archive;cd -");
|
||||
system("cd $rootimage_dir/dev;cpio -idum<./dev.archive;rm -f ./dev.archive;cd -");
|
||||
|
||||
|
||||
if ($pkgdir) {
|
||||
if (-d $pkgdir) {
|
||||
@ -2009,21 +2013,22 @@ sub mount_chroot {
|
||||
sub umount_chroot {
|
||||
my $rootimage_dir = shift;
|
||||
|
||||
system("umount $rootimage_dir/proc");
|
||||
system("umount $rootimage_dir/sys");
|
||||
system("umount $rootimage_dir/dev");
|
||||
system("umount -l $rootimage_dir/proc");
|
||||
system("umount -l $rootimage_dir/sys");
|
||||
#system("umount -l $rootimage_dir/dev");
|
||||
system("rm -rf $rootimage_dir/dev/*");
|
||||
|
||||
system("umount $rootimage_dir/mnt/pkgdir");
|
||||
system("umount -l $rootimage_dir/mnt/pkgdir");
|
||||
rmdir("$rootimage_dir/mnt/pkgdir");
|
||||
|
||||
my @data = `grep /mnt/otherpkgdir /proc/mounts | cut -f2 -d' ' | sort -r`;
|
||||
foreach (@data) {
|
||||
`umount $_`;
|
||||
`umount -l $_`;
|
||||
}
|
||||
rmdir("$rootimage_dir/mnt/otherpkgdir");
|
||||
|
||||
if (-d "$rootimage_dir/mnt/kerneldir") {
|
||||
system("umount $rootimage_dir/mnt/kerneldir");
|
||||
system("umount -l $rootimage_dir/mnt/kerneldir");
|
||||
rmdir("$rootimage_dir/mnt/kerneldir");
|
||||
}
|
||||
}
|
||||
|
20
xCAT-server/share/xcat/tools/xCATreg
Normal file → Executable file
20
xCAT-server/share/xcat/tools/xCATreg
Normal file → Executable file
@ -55,8 +55,8 @@ my $regresultdir = "$regrootdir/regresult";
|
||||
my $todayregresultdir="";
|
||||
my $maildir="$regrootdir/mail";
|
||||
my $mailfile="";
|
||||
my $rootdir = "$::XCATROOT/share/xcat/tools/autotest";
|
||||
my %confkeys;
|
||||
my $rootdir = "$::XCATROOT/share/xcat/tools/autotest";
|
||||
my %confkeys;
|
||||
my $mail_list = 0;
|
||||
my $needhelp = 0;
|
||||
my $branch = "master";
|
||||
@ -524,7 +524,7 @@ sub copy_code {
|
||||
return 1;
|
||||
}
|
||||
send_msg(2, "[$mn->$confkeys{$mn}][copy_code] copy ISO $iso to $mn successfully");
|
||||
system ("sed -i 's|ISO=/\\S*|ISO=/$iso|g' $configfiledir/$regconf");
|
||||
system ("sed -i 's|^ISO=/\\S*|ISO=/$iso|g' $configfiledir/$regconf");
|
||||
}
|
||||
|
||||
if($mn =~ /sles/){
|
||||
@ -548,7 +548,7 @@ sub copy_code {
|
||||
return 1;
|
||||
}
|
||||
send_msg(2, "[$mn->$confkeys{$mn}][copy_code] copy ISO $iso to $mn successfully");
|
||||
system ("sed -i 's|ISO=/\\S*|ISO=/$iso|g' $configfiledir/$regconf");
|
||||
system ("sed -i 's|^ISO=/\\S*|ISO=/$iso|g' $configfiledir/$regconf");
|
||||
|
||||
if($os =~ /sles11/){
|
||||
$res = system("xdsh $confkeys{$mn} \"mv /usr/lib/rpm/find-requires /usr/lib/rpm/find-requires.org\" && scp $osisodir/find-requires $confkeys{$mn}:/usr/lib/rpm/ > /dev/null");
|
||||
@ -581,7 +581,7 @@ sub copy_code {
|
||||
return 1;
|
||||
}
|
||||
send_msg(2, "[$mn->$confkeys{$mn}][copy_code] copy ISO $iso to $mn successfully");
|
||||
system ("sed -i 's|ISO=/\\S*|ISO=/$iso|g' $configfiledir/$regconf");
|
||||
system ("sed -i 's|^ISO=/\\S*|ISO=/$iso|g' $configfiledir/$regconf");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -711,6 +711,7 @@ sub do_test {
|
||||
my $diskless_installation_hierarchy_testcase="";
|
||||
my $statelite_installation_hierarchy_by_ramdisk_testcase="";
|
||||
my $statelite_installation_hierarchy_by_nfs_testcase="";
|
||||
my $setup_dockerhost_testcase="";
|
||||
my $batbundle="";
|
||||
if((($mn =~ /sles/) || ($mn =~ /rh/)) && ($mn !~ /E/)){
|
||||
$diskfull_installation_flat_testcase="reg_linux_diskfull_installation_flat";
|
||||
@ -728,6 +729,7 @@ sub do_test {
|
||||
}elsif($mn =~ /ubuntux/){
|
||||
$diskfull_installation_flat_testcase="Ubuntu_full_installation_flat_x86_vm";
|
||||
$diskless_installation_flat_testcase="Ubuntu_diskless_installation_flat_x86_vm";
|
||||
$setup_dockerhost_testcase="Full_installation_flat_docker";
|
||||
$batbundle="x_ubuntu_cmd.bundle";
|
||||
}elsif($mn =~ /E/){
|
||||
$diskfull_installation_flat_testcase="Full_installation_flat_p8_le";
|
||||
@ -869,6 +871,12 @@ sub do_test {
|
||||
send_msg(2, "[$mn->$confkeys{$mn}][do_test] do diskfull installation test in flat mode in $mn.....[done]");
|
||||
last if($rc != 0);
|
||||
|
||||
#set up dockerhosts
|
||||
send_msg(2, "[$mn->$confkeys{$mn}][do_test] setupdockerhost $mn.....");
|
||||
$rc=system("ssh -t $confkeys{$mn} 'exec bash -l -i -c \"xcattest -f /opt/xcat/share/xcat/tools/autotest/default.conf -t $setup_dockerhost_testcase\"' >/dev/null 2>&1");
|
||||
send_msg(2, "[$mn->$confkeys{$mn}][do_test] setup dockerhosts $mn.....[done]");
|
||||
last if($rc != 0);
|
||||
|
||||
#commands bundle in flat mode test
|
||||
send_msg(2, "[$mn->$confkeys{$mn}][do_test] doing all commands test in flat mode in $mn.....");
|
||||
$rc=system("ssh -t $confkeys{$mn} 'exec bash -l -i -c \"xcattest -f /opt/xcat/share/xcat/tools/autotest/default.conf -b $batbundle\"' >/dev/null 2>&1");
|
||||
@ -950,7 +958,7 @@ sub creat_report{
|
||||
}elsif($k =~ /ubuntux/){
|
||||
$batbundle="/$xcatcoredir/xCAT-test/autotest/bundle/x_ubuntu_cmd.bundle";
|
||||
$totalcase=`cat $batbundle|wc -l`;
|
||||
$totalcase+=2;
|
||||
$totalcase+=3;
|
||||
}elsif($k =~ /E/){
|
||||
$batbundle="$xcatcoredir/xCAT-test/autotest/bundle/le_rhels_cmd.bundle" if($k =~ /rhLE/);
|
||||
$batbundle="$xcatcoredir/xCAT-test/autotest/bundle/le_sles_cmd.bundle" if($k =~ /slesLE/);
|
||||
|
@ -25,17 +25,15 @@ AutoReqProv: no
|
||||
# also need to fix Requires for AIX
|
||||
%ifos linux
|
||||
BuildArch: noarch
|
||||
Requires: perl-IO-Socket-SSL perl-XML-Simple perl-XML-Parser perl-Digest-SHA1 perl(LWP::Protocol::https) perl-Net-HTTPS-NB perl-HTTP-Async
|
||||
Requires: perl-IO-Socket-SSL perl-XML-Simple perl-XML-Parser perl-Digest-SHA1 perl(LWP::Protocol::https)
|
||||
Obsoletes: atftp-xcat
|
||||
%endif
|
||||
|
||||
# The aix rpm cmd forces us to do this outside of ifos type stmts
|
||||
%if %notpcm
|
||||
%ifos linux
|
||||
# ifarch/ifnarch does not work for noarch package
|
||||
#%ifnarch s390x
|
||||
# PCM does not use or ship grub2-xcat
|
||||
Requires: grub2-xcat
|
||||
Requires: grub2-xcat perl-Net-HTTPS-NB perl-HTTP-Async
|
||||
#%endif
|
||||
%endif
|
||||
%endif
|
||||
@ -413,14 +411,15 @@ fi
|
||||
ln -sf $RPM_INSTALL_PREFIX0/sbin/xcatd /usr/sbin/xcatd
|
||||
|
||||
if [ "$1" = "1" ]; then #Only if installing for the first time..
|
||||
if [ -x /usr/lib/lsb/install_initd ]; then
|
||||
/usr/lib/lsb/install_initd /etc/init.d/xcatd
|
||||
elif [ -x /sbin/chkconfig ]; then
|
||||
/sbin/chkconfig --add xcatd
|
||||
else
|
||||
echo "Unable to register init scripts on this system"
|
||||
fi
|
||||
if [ -x /sbin/chkconfig ]; then
|
||||
/sbin/chkconfig --add xcatd
|
||||
elif [ -x /usr/lib/lsb/install_initd ]; then
|
||||
/usr/lib/lsb/install_initd /etc/init.d/xcatd
|
||||
else
|
||||
echo "Unable to register init scripts on this system"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$1" -gt "1" ]; then #only on upgrade...
|
||||
#migration issue for monitoring
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab filename=monitorctrl.pm notification -d
|
||||
@ -463,10 +462,11 @@ if [ $1 == 0 ]; then #This means only on -e
|
||||
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
|
||||
/etc/init.d/xcatd stop
|
||||
fi
|
||||
if [ -x /usr/lib/lsb/remove_initd ]; then
|
||||
|
||||
if [ -x /sbin/chkconfig ]; then
|
||||
/sbin/chkconfig --del xcatd
|
||||
elif [ -x /usr/lib/lsb/remove_initd ]; then
|
||||
/usr/lib/lsb/remove_initd /etc/init.d/xcatd
|
||||
elif [ -x /sbin/chkconfig ]; then
|
||||
/sbin/chkconfig --del xcatd
|
||||
fi
|
||||
rm -f /usr/sbin/xcatd #remove the symbolic
|
||||
|
||||
|
@ -190,3 +190,5 @@ switchdiscover_range_r
|
||||
switchdiscover_range_x
|
||||
switchdiscover_range_z
|
||||
switchdiscover_range_z_V
|
||||
redhat_migration1
|
||||
redhat_migration2
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user