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 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. /etc/IMGVERSION cat look like:
smbec02n001(smbec02b01n01):~ #cat /etc/IMGVERSION
#-- $Id: base.pkglist,v 1.4 2008/09/02 15:40:12 sikorsky Exp $
#-- $Id: base.exlist,v 1.3 2008/09/02 14:57:08 sikorsky Exp $
#-- $Id: base.postinstall,v 1.21 2008/09/04 12:05:45 sikorsky Exp $
#-- $Id: base.repolist,v 1.3 2008/09/02 14:57:08 sikorsky Exp $
$Id: syslog,v 1.2 2008/09/02 14:54:29 sikorsky Exp $
$Id: remoteshell,v 1.2 2008/09/02 14:54:29 sikorsky Exp $
$Id: sa_set_net,v 1.5 2008/09/04 11:32:07 gdasstm Exp $
$Id: sa_gpfs,v 1.4 2008/09/02 17:30:05 sikorsky Exp $
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2137 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This feature helps keep database very clean and allows easier move of xCAT master from one host to another (define xcatmaster hostname on as few places as possible). Also will help HA setup.
Backwards compatible if not used. Has to be tested if used with service nodes.
In our environment we wanted to make xCAT highly available. Instead of some cluster solution we decided to install two independent xCAT masters. Using this feature we can have exactly the same xCAT database on two dirrefent nodes, so it's possible do backup on on node and restore on other node.
Usage example is in HA cookbook (TBD).
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2135 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
1) In initrd, bring up aside from main interface (genimage -i option) also other interfaces (-r option).
2) /etc/resolv.conf creation needed to be rewritten, othewise it gets confused by several dhcpcd records.
3) Fill database with MAC addresses for all interfaces. Since it't not possible to have several stanzas of the same name in dhcpd.conf, we need to define unique "alias" for every interface. For example, for host "host1" we will add '00:1A:64:5D:1B:84!host1e0|00:1A:64:5D:1B:86!host1e1' to macs table. Of course, this aliases have to be defined in DNS, otherwise makedhcp command will not use this aliases:
/etc/hosts:
10.217.249.232 host1 host1e0 host1e1
Since this are aliases (need not be nessesary), both interfaces get the same IP address during initrd, but this doesn't break anything.
a) blades - changed getmacs function to gather all MAC addresses. Which interfaces we are interested in are defined in noderes.installnic or noderes.primarynic as "eth0|eth1".
b) all other - TODO. We have only 8 non-blade nodes, so we fill database manually.
Backwards compatible:
- if there is only one interface in noderes.installnic, getmacs function gathers only this one MAC address
- if we run genimage without -r option, only one interface is brought up
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2124 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
Purpose is to 1) keep track of changes in CVS, so force users to do any changes via CVS system and 2) avoid malicious behaviour of users.
I don't want to break trunk, so it's commented out.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2123 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This script is used to copy all files belonging to one profile (.pkglist .exlist .postinstall .repolist) to another name.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2122 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
{profile}.repolist contains list of custom repositories (directory with rpms). Repositories will be added to the image before package installation. This makes possible to automatically install (by defining in {profile}.pkglist) packages that are not contained in standard distribution repository.
Example sles/compute.repolist provided.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2120 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
{profile}.postinstall script is run after all packages from $profile.pkglist are installed. This makes possible to do any kind of magic with the image.
Example sles/compute.postinstall provided.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2119 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
table.column==value will only show nodes where table.column is exactly value
table.column!=value will mask out nodes where table.column is exactly value
table.column=~regex will only show nodes where the table.column value matches regex
table.column!~regex will mask out nodes where the table.column value matches regex
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2091 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd