6fb2e6b8be
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13374 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
566 lines
17 KiB
Plaintext
566 lines
17 KiB
Plaintext
=head1 NAME
|
|
|
|
B<updatenode> - Update nodes in an xCAT cluster environment.
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
B<updatenode> B<noderange> [B<-V>|B<--verbose>] [B<-F>|B<--sync>] [B<-f>|B<--snsync>] [B<-S>|B<--sw>] [B<-P>|B<--scripts> [B<script1,script2...>]] [B<-s>|B<--sn>] [B<-A>|B<--updateallsw>] [B<-c>|B<--cmdlineonly>] [B<-d alt_source_dir>] [B<attr=val> [B<attr=val...>]]
|
|
|
|
B<updatenode> B<noderange> [B<-k>|B<--security> [B<--user>] [B<--devicetype>]]
|
|
|
|
B<updatenode> B<noderange> [B<-V>|B<--verbose>] [B<script1,script2...>]
|
|
|
|
B<updatenode> B<noderange> [B<-V>|B<--verbose>] [B<-f>|B<--snsync>]
|
|
|
|
B<updatenode> [B<-h>|B<--help>] [B<-v>|B<--version>]
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
The updatenode command is run on the xCAT management node and can be used
|
|
to perform the following node updates:
|
|
|
|
=over 3
|
|
|
|
=item 1
|
|
|
|
Distribute and synchronize files.
|
|
|
|
=item 2
|
|
|
|
Install or update software on diskfull nodes.
|
|
|
|
=item 3
|
|
|
|
Run postscripts.
|
|
|
|
=item 4
|
|
|
|
Update the ssh keys and host keys for the service nodes and compute nodes;
|
|
Update the ca and credentials for the service nodes.
|
|
|
|
=back
|
|
|
|
The default behavior of updatenode will be to attempt to perform the update
|
|
which doing by "-S", "-P" and "-F" flags.
|
|
If you wish to limit updatenode to one or two specific
|
|
actions you can use combinations of the "-S", "-P", and "-F" flags.
|
|
|
|
If more than one actions doing by "-S", "-P" and "-F" need to be performed,
|
|
the execution sequence is "-F", "-S" and then "-P".
|
|
|
|
For example, If you just want to synchronize configuration file you could
|
|
specify the "-F" flag. If you want to synchronize files and update
|
|
software you would specify the "-F" and "-S" flags. See the descriptions
|
|
of these flags and examples below.
|
|
|
|
The flag "-k" (--security) can NOT be used together with "-S", "-P", and "-F"
|
|
flags. The flag "--user" and "--devicetype" ONLY can be used with "-k" flag to
|
|
update the ssh keys for specific device.
|
|
|
|
Note: In a large cluster environment the updating of nodes in an ad hoc
|
|
manner can quickly get out of hand, leaving the system administrator with
|
|
a very confusing environment to deal with. The updatenode command is
|
|
designed to encourage users to handle cluster updates in a manner that
|
|
is recorded and easily repeatable.
|
|
|
|
=head2 To distribute and synchronize files
|
|
|
|
The basic process for distributing and synchronizing nodes is:
|
|
|
|
=over 3
|
|
|
|
=item *
|
|
|
|
Create a synclist file.
|
|
|
|
=item *
|
|
|
|
Indicate the location of the synclist file.
|
|
|
|
=item *
|
|
|
|
Run the updatenode command to update the nodes.
|
|
|
|
=back
|
|
|
|
Files may be distributed and synchronized for both diskless and
|
|
diskfull nodes. Syncing files to statelite nodes is not supported.
|
|
|
|
More information on using the synchronization file function is in
|
|
https://sourceforge.net/apps/mediawiki/xcat/index.php?title=Using_Updatenode.
|
|
|
|
=head3 Create the synclist file
|
|
|
|
The synclist file contains the configuration entries that specify
|
|
where the files should be synced to. In the synclist file, each
|
|
line is an entry which describes the location of the source files
|
|
and the destination location for the files on the target node.
|
|
|
|
For more information on creating your synclist files and where to put them, read:
|
|
|
|
http://sourceforge.net/apps/mediawiki/xcat/index.php?title=Sync-ing_Config_Files_to_Nodes
|
|
|
|
|
|
=head3 Run updatenode to synchronize the files
|
|
|
|
updatenode <noderange> -F
|
|
|
|
|
|
=head2 To install or update software
|
|
|
|
updatenode can be use to install or update software on the nodes. See the following documentation for setting up otherpkgs:
|
|
https://sourceforge.net/apps/mediawiki/xcat/index.php?title=Install_Additional_Packages
|
|
|
|
To install/update the packages, run:
|
|
|
|
updatenode <noderange> -S
|
|
|
|
|
|
|
|
B<For AIX systems:>
|
|
|
|
Note: The updatenode command is used to update AIX diskfull nodes only. For updating diskless AIX nodes refer to the xCAT for AIX update documentation and use the xCAT mknimimage command.
|
|
For information on updating software on AIX cluster:
|
|
For diskful installs, read:
|
|
https://sourceforge.net/apps/mediawiki/xcat/index.php?title=XCAT_AIX_RTE_Diskfull_Nodes
|
|
For diskless installs, read:
|
|
https://sourceforge.net/apps/mediawiki/xcat/index.php?title=XCAT_AIX_Diskless_Nodes
|
|
|
|
B<For Linux systems:>
|
|
|
|
It is equivalent to running the
|
|
folloiwng command:
|
|
|
|
updatenode noderange -P ospkgs,otherpkgs
|
|
|
|
It will update all the rpms specified in the .pkglist file and .otherpkgs.pkglist
|
|
file. ospkgs postscript will normally remove all the existing rpm
|
|
repositories before adding server:/install/<os>/<arch/ as the new repository.
|
|
To preserve the existing repositories, you can run the following command instead:
|
|
|
|
updatenode noderange -P "ospkgs --keeprepo,otherpkgs"
|
|
|
|
|
|
=head2 To run postscripts
|
|
|
|
The scripts must be copied to the /install/postscripts
|
|
directory on the xCAT management node. (Make sure they are
|
|
executable.)
|
|
|
|
To run scripts on a node you must either specify them on the
|
|
command line or you must add them to the "postscripts" attribute
|
|
for the node.
|
|
|
|
To set the postscripts attribute of the node (or group)
|
|
definition you can use the xCAT chdef command. Set the value to
|
|
be a comma separated list of the scripts that you want to be
|
|
executed on the nodes. The order of the scripts in the list
|
|
determines the order in which they will be run. You could also set
|
|
the postscripts value by directly editing the xCAT "postscripts"
|
|
database table using the xCAT tabedit command.
|
|
|
|
Scripts can be run on both diskless and diskfull nodes.
|
|
|
|
To run all the customization scripts that have been designated
|
|
for the nodes, (in the "postscripts" attribute), type:
|
|
|
|
updatenode <noderange> -P
|
|
|
|
To run the "syslog" script for the nodes, type:
|
|
|
|
updatenode <noderange> -P syslog
|
|
|
|
To run a list of scripts, type:
|
|
|
|
updatenode <noderange> -P "script1 p1 p2,script2"
|
|
|
|
where p1 p2 are the parameters for script1.
|
|
|
|
The flag '-P' can be omitted when only postscripts parameters are
|
|
specified.
|
|
|
|
Note: script1,script2 may or may not be designated as scripts to
|
|
automatically run on the node. However, if you want script1 and
|
|
script2 to get invoked next time the nodes are deployed then make sure
|
|
to add them to the "postscripts" attribute in the database for the nodes.
|
|
|
|
=head2 Update security
|
|
|
|
The basic functions of update security for nodes:
|
|
|
|
=over 3
|
|
|
|
=item *
|
|
|
|
Setup the ssh keys for the target nodes. It makes the management
|
|
node and service node access the target nodes without password.
|
|
|
|
=item *
|
|
|
|
Redeliver the host keys to the target nodes.
|
|
|
|
=item *
|
|
|
|
Redeliver the ca and certificates files to the service node.
|
|
These files are used to authenticate the ssl connection between
|
|
xcatd's of management node and service node.
|
|
|
|
=item *
|
|
|
|
Remove the entries of target nodes from known_hosts file.
|
|
|
|
=back
|
|
|
|
I<Set up the SSH keys>
|
|
|
|
A password for the user who is running this command is needed to setup
|
|
the ssh keys. This user must have the same uid and gid as
|
|
the userid on the target node where the keys will be setup.
|
|
|
|
If the current user is root, roots public ssh keys will be put in the
|
|
authorized_keys* files under roots .ssh directory on the node(s).
|
|
If the current user is non-root, the user must be in the policy table
|
|
and have credential to run the xdsh command.
|
|
The non-root users public ssh keys and root's public ssh keys will be put in
|
|
the authorized_keys* files under the non-root users .ssh directory on the node(s
|
|
).
|
|
|
|
Other device types, such as IB switch, are also supported. The
|
|
device should be defined as a node and nodetype should be defined
|
|
as switch before connecting.
|
|
|
|
The flags B<--user> and B<--devicetype> can be used to specify the 'user'
|
|
and configuration file to set up the ssh keys for the specific device.
|
|
|
|
I<Handle the hierarchical scenario>
|
|
|
|
When update security files for the node which is served by a service node,
|
|
the service node will be updated automatically first, and then the target
|
|
node.
|
|
|
|
The ca and certificates files are needed for service node to authenticate
|
|
the ssl connections between the xCAT client and xcatd on the service node,
|
|
and the xcatd's between service node and management node. The files in the
|
|
directories /etc/xcat/cert/ and ~/.xcat/ will be updated.
|
|
|
|
Since the certificates have the validity time, the ntp service is recommended
|
|
to be set up between management node and service node.
|
|
|
|
Simply running following command to update the security keys:
|
|
B<updatenode> I<noderange> -k
|
|
|
|
|
|
=head1 PARAMETERS
|
|
|
|
=over 10
|
|
|
|
=item B<noderange>
|
|
|
|
A set of comma delimited xCAT node names
|
|
and/or group names. See the xCAT "noderange"
|
|
man page for details on additional supported
|
|
formats.
|
|
|
|
=item B<script1,script2...>
|
|
|
|
A comma-separated list of script names.
|
|
The scripts must be executable and copied
|
|
to the /install/postscripts directory.
|
|
Each script can take zero or more parameters.
|
|
If parameters are spcified, the whole list needs to be quoted by double quotes.
|
|
For example:
|
|
|
|
B<"script1 p1 p2,script2">
|
|
|
|
=item [B<attr=val> [B<attr=val...>]]
|
|
|
|
Specifies one or more "attribute equals value" pairs, separated by spaces.
|
|
Attr=val pairs must be specified last on the command line. The currently
|
|
supported attributes are: "installp_bundle", "otherpkgs", "installp_flags",
|
|
"emgr_flags" and "rpm_flags". These attribute are only valid for AIX software
|
|
maintenance support.
|
|
|
|
=back
|
|
|
|
=head1 OPTIONS
|
|
|
|
=over 10
|
|
|
|
=item B<-A|--updateallsw>
|
|
|
|
Install or update all software contained in the source directory. (AIX only)
|
|
|
|
=item B<-c|cmdlineonly>
|
|
|
|
Specifies that the updatenode command should only use software maintenance
|
|
information provided on the command line. This flag is only valid when
|
|
using AIX software maintenance support.
|
|
|
|
=item B<--devicetype>
|
|
|
|
Specify a user-defined device type that references the location
|
|
of relevant device configuration file. The devicetype value must
|
|
correspond to a valid device configuration file under the /var/opt/xcat/
|
|
directory.
|
|
For example, /var/opt/xcat/IBSwitch/Qlogic/config is the configuration
|
|
file location if devicetype is specified as IBSwitch::Qlogic
|
|
|
|
This flag ONLY can be used with -k and --user.
|
|
|
|
=item B<-d alt_source_dir>
|
|
|
|
Used to specify a source directory other than the standard lpp_source directory specified in the xCAT osimage definition. (AIX only)
|
|
|
|
=item B<-F|--sync>
|
|
|
|
Specifies that file synchronization should be
|
|
performed on the nodes. rsync and ssh must
|
|
be installed and configured on the nodes.
|
|
The function is not supported for statelite installations.
|
|
For statelite installations to sync files, you should use the
|
|
read-only option for files/directories listed in
|
|
litefile table with source location specified in the litetree table.
|
|
|
|
|
|
=item B<-f|--snsync>
|
|
|
|
Specifies that file synchronization should be
|
|
performed to the service nodes that service the
|
|
nodes in the noderange. This updates the service
|
|
nodes with the data to sync to the nodes. rsync and ssh must
|
|
be installed and configured on the service nodes.
|
|
For hierachy, this optionally can be done before syncing the files
|
|
to the nodes with the -F flag. If the -f flag is not used, then
|
|
the -F flag will sync the servicenodes before the nodes automatically.
|
|
When installing nodes in a hierarchical cluster, this flag should be
|
|
used to sync the service nodes before the install, since the files will
|
|
be sync'd from the service node by the syncfiles postscript during the
|
|
install.
|
|
The function is not supported for statelite installations.
|
|
For statelite installations to sync files, you should use the
|
|
read-only option for files/directories listed in
|
|
litefile table with source location specified in the litetree table.
|
|
|
|
|
|
=item B<-h|--help>
|
|
|
|
Display usage message.
|
|
|
|
=item B<-k|--security>
|
|
|
|
Update the ssh keys and host keys for the service nodes and compute nodes;
|
|
Update the ca and credentials to the service nodes. Never run this command to the Management Node, it will take down xcatd.
|
|
|
|
=item B<-P|--scripts>
|
|
|
|
Specifies that postscripts should be run on the nodes.
|
|
updatenode -P syncfiles is not supported. The syncfiles postscript can only
|
|
be run during install. You should use updatenode <noderange> -F instead.
|
|
|
|
=item B<-S|--sw>
|
|
|
|
Specifies that node software should be updated.
|
|
|
|
=item B<-s|--sn>
|
|
|
|
Set the server information stored on the nodes.
|
|
|
|
=item B<--user>
|
|
|
|
Specifies a remote user name to login a specific device.
|
|
|
|
This flag ONLY can be used with -k and --devicetype.
|
|
|
|
=item B<-v|--version>
|
|
|
|
Command Version.
|
|
|
|
=item B<-V|--verbose>
|
|
|
|
Verbose mode.
|
|
|
|
=back
|
|
|
|
=head1 RETURN VALUE
|
|
|
|
0 The command completed successfully.
|
|
|
|
1 An error has occurred.
|
|
|
|
|
|
=head1 EXAMPLES
|
|
|
|
=over 3
|
|
|
|
=item 1
|
|
|
|
To perform all updatenode features for the Linux nodes in the group
|
|
"compute":
|
|
|
|
B<updatenode compute>
|
|
|
|
The command will: run any scripts listed in the nodes "postscripts"
|
|
attribute, install or update any software indicated in the
|
|
/install/custom/install/<ostype>/profile.otherpkgs.pkglist (refer to the
|
|
B<To install or update software part>), synchronize any files indicated by
|
|
the synclist files specified in the osimage "synclists" attribute.
|
|
|
|
=item 2
|
|
|
|
To run postscripts and file synchronization only on the node
|
|
"clstrn01":
|
|
|
|
B<updatenode clstrn01 -F -P>
|
|
|
|
=item 3
|
|
|
|
Running updatenode -P with the syncfiles postscript is not supported. You should use updatenode -F instead.
|
|
|
|
Do not run:
|
|
|
|
B<updatenode clstrno1 -P syncfiles>
|
|
|
|
Run:
|
|
|
|
B<updatenode clstrn01 -F>
|
|
|
|
=item 4
|
|
|
|
To run the postscripts which indicated in the postscripts attribute on
|
|
the node "clstrn01":
|
|
|
|
B<updatenode clstrn01 -P>
|
|
|
|
=item 5
|
|
|
|
To run the postscripts script1 and script2 on the node "clstrn01":
|
|
|
|
B<cp script1,script2 /install/postscripts>
|
|
|
|
B<updatenode clstrn01 -P "script1 p1 p2,script2">
|
|
|
|
Since flag '-P' can be omitted when only postscripts parameters are specified,
|
|
the following command is equivalent:
|
|
|
|
B<updatenode clstrn01 "script1 p1 p2,script2">
|
|
|
|
p1 p2 are parameters for script1.
|
|
|
|
|
|
=item 6
|
|
|
|
To synchronize the files on the node "clstrn01": Prepare the synclist file.
|
|
For AIX, set the full path of synclist in the osimage table synclists
|
|
attribute. For Linux, put the synclist file into the location:
|
|
/install/custom/<inst_type>/<distro>/<profile>.<os>.<arch>.synclist
|
|
Then:
|
|
|
|
B<updatenode clstrn01 -F>
|
|
|
|
=item 7
|
|
|
|
To perform the software update on the Linux node "clstrn01": Copy the extra
|
|
rpm into the /install/post/otherpkgs/<os>/<arch>/* and add the rpm names into
|
|
the /install/custom/install/<ostype>/profile.otherpkgs.pkglist . Then:
|
|
|
|
B<updatenode clstrn01 -S>
|
|
|
|
=item 8
|
|
|
|
To update the AIX node named "xcatn11" using the "installp_bundle" and/or
|
|
"otherpkgs" attribute values stored in the xCAT database. Use the default installp, rpm and emgr flags.
|
|
|
|
B<updatenode xcatn11 -V -S>
|
|
|
|
Note: The xCAT "xcatn11" node definition points to an xCAT osimage definition
|
|
which contains the "installp_bundle" and "otherpkgs" attributes as well as
|
|
the name of the NIM lpp_source resource.
|
|
|
|
=item 9
|
|
|
|
To update the AIX node "xcatn11" by installing the "bos.cpr" fileset using
|
|
the "-agQXY" installp flags. Also display the output of the installp command.
|
|
|
|
B<updatenode xcatn11 -V -S otherpkgs="I:bos.cpr" installp_flags="-agQXY">
|
|
|
|
Note: The 'I:' prefix is optional but recommended for installp packages.
|
|
|
|
=item 10
|
|
|
|
To uninstall the "bos.cpr" fileset that was installed in the previous example.
|
|
|
|
B<updatenode xcatn11 -V -S otherpkgs="I:bos.cpr" installp_flags="-u">
|
|
|
|
=item 11
|
|
|
|
To update the AIX nodes "xcatn11" and "xcatn12" with the "gpfs.base" fileset
|
|
and the "rsync" rpm using the installp flags "-agQXY" and the rpm flags "-i --nodeps".
|
|
|
|
B<updatenode xcatn11,xcatn12 -V -S otherpkgs="I:gpfs.base,R:rsync-2.6.2-1.aix5.1.ppc.rpm" installp_flags="-agQXY" rpm_flags="-i --nodeps">
|
|
|
|
Note: Using the "-V" flag with multiple nodes may result in a large amount of output.
|
|
|
|
=item 12
|
|
|
|
To uninstall the rsync rpm that was installed in the previous example.
|
|
|
|
B<updatenode xcatn11 -V -S otherpkgs="R:rsync-2.6.2-1" rpm_flags="-e">
|
|
|
|
=item 13
|
|
|
|
Update the AIX node "node01" using the software specified in the NIM "sslbnd" and "sshbnd" installp_bundle resources and the "-agQXY" installp flags.
|
|
|
|
B<updatenode node01 -V -S installp_bundle="sslbnd,sshbnd" installp_flags="-agQXY">
|
|
|
|
=item 14
|
|
|
|
To get a preview of what would happen if you tried to install the "rsct.base" fileset on AIX node "node42". (You must use the "-V" option to get the full output from the installp command.)
|
|
|
|
B<updatenode node42 -V -S otherpkgs="I:rsct.base" installp_flags="-apXY">
|
|
|
|
=item 15
|
|
|
|
To check what rpm packages are installed on the AIX node "node09". (You must use the "-c" flag so updatenode does not get a list of packages from the database.)
|
|
|
|
B<updatenode node09 -V -c -S rpm_flags="-qa">
|
|
|
|
=item 16
|
|
|
|
To install all software updates contained in the /images directory.
|
|
|
|
B<updatenode node27 -V -S -A -d /images>
|
|
|
|
Note: Make sure the directory is exportable and that the permissions are set
|
|
correctly for all the files. (Including the .toc file in the case of
|
|
installp filesets.)
|
|
|
|
=item 17
|
|
|
|
Install the interim fix package located in the /efixes directory.
|
|
|
|
B<updatenode node29 -V -S -d /efixes otherpkgs=E:IZ38930TL0.120304.epkg.Z>
|
|
|
|
=item 18
|
|
|
|
To uninstall the interim fix that was installed in the previous example.
|
|
|
|
B<updatenode xcatsn11 -V -S -c emgr_flags="-r -L IZ38930TL0">
|
|
|
|
=item 19
|
|
|
|
To update the security keys for the node "node01"
|
|
|
|
B<updatenode node01 -k>
|
|
|
|
=item 20
|
|
|
|
To update the service nodes with the files to be synchronized to node group compute:
|
|
|
|
B<updatenode compute -f>
|
|
|
|
=back
|
|
|
|
=head1 FILES
|
|
|
|
/opt/xcat/bin/updatenode
|