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
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 | 
						|
 | 
						|
#-- 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
 | 
						|
 |