2008-09-10 14:40:45 +00:00
#!/bin/sh
Example of booted image versioning using CVS.
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
2008-09-10 21:44:55 +00:00
#-- 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
2008-09-10 14:40:45 +00:00
#--
#-- 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
Example of booted image versioning using CVS.
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
2008-09-10 21:44:55 +00:00
#-- 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
2008-09-10 14:40:45 +00:00