2009-09-25 15:30:53 +00:00
|
|
|
=head1 NAME
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
B<updatenode> - Update nodes in an xCAT cluster environment.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=head1 SYNOPSIS
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
B<updatenode> I<noderange> [B<-V>|B<--verbose>] [B<-F>|B<--sync>] [B<-S>|B<--sw>] [B<-P>|B<--scripts> [I<script1,script2...>]]
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
B<updatenode> I<noderange> [B<-V>|B<--verbose>] [I<script1,script2...>]
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
B<updatenode> [B<-h>|B<--help>|B<-v>|B<--version>]
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=head1 DESCRIPTION
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
The updatenode command is run on the xCAT management node and can be used
|
|
|
|
to perform the following node updates:
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=over 3
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item 1
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Distribute and synchronize files.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item 2
|
|
|
|
|
|
|
|
Install or update software on diskfull nodes.
|
|
|
|
|
|
|
|
=item 3
|
|
|
|
|
|
|
|
Run postscripts.
|
|
|
|
|
|
|
|
=back
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-07-20 12:50:31 +00:00
|
|
|
The default behavior of updatenode will be to attempt to perform all three
|
|
|
|
types of updates. If you wish to limit updatenode to one or two specific
|
|
|
|
actions you can use combinations of the "-S", "-P", and "-F" flags.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-07-20 12:50:31 +00:00
|
|
|
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.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-07-20 12:50:31 +00:00
|
|
|
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. If you are not concerned about the
|
|
|
|
structure the updatenode command provides you can use other xCAT support
|
|
|
|
such as xdsh and xdcp to accomplish these update tasks.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=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. However, since some filesystems are mounted
|
|
|
|
read-only on AIX diskless nodes it my not be possible to update all
|
|
|
|
files on AIX systems. For example, any files under /usr on AIX
|
|
|
|
diskless nodes cannot be updated.
|
|
|
|
|
|
|
|
More information on using the synchronization file function is in
|
|
|
|
"xCAT2SyncFilesHowTo.pdf".
|
|
|
|
|
|
|
|
=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.
|
|
|
|
|
|
|
|
The basic entry format looks like following:
|
|
|
|
|
|
|
|
path_of_src_file1 -> path_of_dst_file1
|
|
|
|
path_of_src_file1 path_of_src_file2 ... -> path_of_dst_directory
|
|
|
|
|
|
|
|
The path_of_src_file* should be the full path of the source file
|
|
|
|
on the Management Node.
|
|
|
|
The path_of_dst_file* should be the full path of the destination
|
|
|
|
file on target node.
|
|
|
|
The path_of_dst_directory should be the full path of the destination directory.
|
|
|
|
Since the synclist file is for common purpose, the target node
|
|
|
|
need not be configured in it, it will be the noderange input to
|
|
|
|
updatenode.
|
|
|
|
|
|
|
|
The following formats are supported:
|
|
|
|
|
|
|
|
=over 3
|
|
|
|
|
|
|
|
=item 1
|
|
|
|
|
|
|
|
sync file /etc/file1 to the file /etc/file1 on the node with
|
|
|
|
the same file name. Note with one file, full path to file
|
|
|
|
must be provide.
|
|
|
|
|
|
|
|
/etc/file1 -> /etc/file1
|
|
|
|
|
|
|
|
=item 2
|
|
|
|
|
|
|
|
sync file /etc/file2 to the file /etc/file3 on the node (with
|
|
|
|
different file name)
|
|
|
|
|
|
|
|
/etc/file2 -> /etc/file3
|
|
|
|
|
|
|
|
=item 3
|
|
|
|
|
|
|
|
sync file /etc/file2 to the file /etc/tmp/file3 on the node
|
|
|
|
with different file name, different directory)
|
|
|
|
If the directory does not exist, it will be created.
|
|
|
|
|
|
|
|
/etc/file2 -> /etc/tmp/file3
|
|
|
|
|
|
|
|
=item 4
|
|
|
|
|
|
|
|
sync the multiple files /etc/file1, /etc/file2, /etc/file3,
|
|
|
|
... to the directory /tmp/etc (/tmp/etc must be a directory when
|
|
|
|
multiple files are sync'd at one time). If the directory does
|
|
|
|
not exist, xdcp will create it.
|
|
|
|
|
|
|
|
/etc/file1 /etc/file2 /etc/file3 -> /tmp/etc
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=head3 Indicate the location of the synclist file
|
|
|
|
|
|
|
|
For Linux nodes, the path of the synclist should be following format:
|
|
|
|
|
|
|
|
/install/custom/<inst_type>/<distro>/<profile>.<os>.<arch>.synclist
|
|
|
|
|
|
|
|
where:
|
|
|
|
|
|
|
|
<inst_type>: "install", "netboot"
|
|
|
|
<distro>: "rh", "centos", "fedora", "sles"
|
|
|
|
<profile>,<os> and <arch> are what you set for the node
|
|
|
|
|
|
|
|
For AIX nodes, add a full path of the synclist file to the "synclists"
|
|
|
|
attribute base on the xCAT osimage name used by the node
|
|
|
|
in the osimage table.
|
|
|
|
|
|
|
|
chdef -t osimage -o myosimage synclists=/mydir/syncfile1
|
|
|
|
|
|
|
|
=head3 Run updatenode to synchronize the files
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
updatenode <noderange> -F
|
|
|
|
|
|
|
|
|
|
|
|
=head2 To install or update software (only available on Linux Nodes)
|
|
|
|
|
|
|
|
The basic process for updating software on a node is:
|
|
|
|
|
|
|
|
=over 3
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item *
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Copy the software to a directory.
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item *
|
2009-09-02 03:16:15 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Create a record of what software to install.
|
2009-09-02 03:16:15 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item *
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Run the updatenode command to update the nodes.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=back
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
On Linux systems, to install additional software for Linux nodes:
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=over 3
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item 1
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Copy the extra rpms you are going to add on to
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
/install/post/otherpkgs/<os>/<arch>/
|
|
|
|
|
|
|
|
where <os> and <arch> are defined in the <nodetype> table.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item 2
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Add rpm names (without version number) into
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
/install/custom/<inst_type>/<ostype>/<profile>.<os>.<arch>.otherpkgs.pkglist
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
In the file path, the <inst_type> should be "install" if the
|
|
|
|
node was installed in diskfull state, otherwise it should be
|
|
|
|
"netboot" if it was installed in diskless state.
|
|
|
|
<ostype> is the operating system name without the version
|
|
|
|
number.The following <ostype> are recognized by xCAT:
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=over 1
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item centos
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item fedora
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item rh
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item sles
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item windows
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=back
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
In the file name, the <profile>, <os>, <arch> are defined in
|
|
|
|
the <nodetype> table. And the <os> and <arch> fields can be
|
|
|
|
ignored if the pkglist file is available just depend on the
|
|
|
|
<profile> attribute.
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item 3
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Type:
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
updatenode <noderange> -S
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=back
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=head2 To run postscripts
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
The scripts must be copied to the /install/postscripts
|
|
|
|
directory on the xCAT management node. (Make sure they are
|
|
|
|
executable.)
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
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.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
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.
|
2008-10-13 21:42:21 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
Scripts may 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,script2
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
=head1 PARAMETERS
|
|
|
|
|
|
|
|
=over 10
|
|
|
|
|
|
|
|
=item I<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 I<script1,script2...>
|
|
|
|
|
|
|
|
A comma-separated list of script names.
|
|
|
|
The scripts must be executable and copied
|
|
|
|
to the /install/postscripts directory.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=head1 OPTIONS
|
|
|
|
|
|
|
|
=over 10
|
|
|
|
|
|
|
|
=item -F|--sync
|
|
|
|
|
|
|
|
Specifies the file synchronization should be
|
|
|
|
performed on the nodes. rsync and ssh must
|
|
|
|
be installed and configured on the nodes.
|
|
|
|
|
|
|
|
=item -h|--help
|
|
|
|
|
|
|
|
Display usage message.
|
|
|
|
|
|
|
|
=item -P|--scripts
|
|
|
|
|
|
|
|
Specifies that postscripts should be run on the nodes.
|
|
|
|
|
|
|
|
=item -S|--sw
|
|
|
|
|
|
|
|
Specifies that node software should be updated.
|
|
|
|
|
|
|
|
=item -v|--version
|
|
|
|
|
|
|
|
Command Version.
|
|
|
|
|
|
|
|
=item -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":
|
|
|
|
|
|
|
|
updatenode compute
|
2009-07-20 12:50:31 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item 2
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
To perform a software update and file synchronization only on the node
|
|
|
|
"clstrn01":
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
updatenode clstrn01 -F -P
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=item 3
|
|
|
|
|
|
|
|
To run the postscripts which indicated in the postscripts attribute on
|
|
|
|
the node "clstrn01":
|
|
|
|
|
|
|
|
updatenode clstrn01 -P
|
|
|
|
|
|
|
|
=item 4
|
|
|
|
|
|
|
|
To run the postscripts script1 and script2 on the node "clstrn01":
|
|
|
|
|
|
|
|
cp script1,script2 /install/postscripts
|
|
|
|
updatenode clstrn01 -P script1,script2
|
|
|
|
|
|
|
|
Since flag '-P' can be omitted when only postscripts parameters are specified,
|
|
|
|
the following command is equivalent:
|
|
|
|
|
|
|
|
updatenode clstrn01 script1,script2
|
|
|
|
|
|
|
|
=item 5
|
|
|
|
|
|
|
|
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:
|
2009-07-20 12:50:31 +00:00
|
|
|
/install/custom/<inst_type>/<distro>/<profile>.<os>.<arch>.synclist
|
2009-09-25 15:30:53 +00:00
|
|
|
Then:
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
updatenode clstrn01 -F
|
|
|
|
|
|
|
|
=item 6
|
|
|
|
|
|
|
|
To perform the software update on the Linux node "clstrn01": Copy the extra
|
2009-07-20 12:50:31 +00:00
|
|
|
rpm into the /install/post/otherpkgs/<os>/<arch>/* and add the rpm names into
|
2009-09-25 15:30:53 +00:00
|
|
|
the /install/custom/install/<ostype>/profile.otherpkgs.pkglist . Then:
|
|
|
|
|
|
|
|
updatenode clstrn01 -S
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=back
|
2009-07-20 12:50:31 +00:00
|
|
|
|
2009-09-25 15:30:53 +00:00
|
|
|
=head1 FILES
|
2009-07-20 12:50:31 +00:00
|
|
|
|
|
|
|
/opt/xcat/bin/updatenode
|