package lists and genimage for sles10.2 ppc with hierarchy

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2753 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
linggao 2009-02-16 22:12:03 +00:00
parent 95e0cfcb50
commit a28c0f26f6
7 changed files with 223 additions and 19 deletions

View File

@ -0,0 +1,13 @@
./usr/share/man*
./usr/share/locale*
./usr/share/i18n*
./var/cache/yum*
./usr/share/doc*
./usr/share/gnome*
./usr/share/zoneinfo*
./usr/share/cracklib*
./usr/share/info*
./usr/share/omf*
./usr/lib/locale*
./usr/lib/perl5*
./boot*

View File

@ -0,0 +1,23 @@
aaa_base
bash
nfs-utils
stunnel
dhcpcd
kernel-ppc64
openssh
procps
psmisc
wget
vim
sysconfig
syslog-ng
klogd
dbus
dbus-1-64bit
hal
hal-64bit
pam-modules-64bit
pam-64bit
resmgr
resmgr-64bit

View File

@ -0,0 +1,41 @@
#!/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:
cp $installroot/etc/fstab $installroot/etc/fstab.prev
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

View File

@ -123,7 +123,7 @@ unless ($onlyinitrd) {
open($fd,">>","$installroot/netboot/$osver/$arch/$profile/rootimg/etc/fstab");
print $fd "#Dummy fstab for rpm postscripts to see\n";
close($fd);
if($osver eq "sles11") {#zypper in SLES11 is different
if($osver =~ /sles11/) {#zypper in SLES11 is different
my $rootimg_dir="$installroot/netboot/$osver/$arch/$profile/rootimg";
if(-e "$rootimg_dir/etc/zypp/repos.d/$osver.repo") {
system("rm -rf $rootimg_dir/etc/zypp/repos.d/$osver.repo");
@ -135,7 +135,7 @@ unless ($onlyinitrd) {
#for extra packages
if ($pkgnames) {
if($osver eq "sles11") { #SLES11
if($osver =~ /sles11/) { #SLES11
system("zypper -R $installroot/netboot/$osver/$arch/$profile/rootimg/ ar file:$srcdir_otherpkgs otherpkg");
}else {
system("zypper -R $installroot/netboot/$osver/$arch/$profile/rootimg/ sa file:$srcdir_otherpkgs");
@ -159,10 +159,10 @@ unless ($onlyinitrd) {
#$yumcmd .= "install ";
#mkpath("$installroot/netboot/$osver/$arch/$profile/rootimg/var/lib/yum");
my $yumcmd;
if($osver eq "sles11") {
if($osver =~ /sles11/) {
$yumcmd = "YAST_IS_RUNNING=\"instsys\" zypper -R $installroot/netboot/$osver/$arch/$profile/rootimg/ install -l "; #add -l for SLES11
}else {
$yumcmd = "zypper -R $installroot/netboot/$osver/$arch/$profile/rootimg/ install";
$yumcmd = "zypper -R $installroot/netboot/$osver/$arch/$profile/rootimg/ install ";
}
my $pkglist= get_pkglist_file_name($customdir);
if (!$pkglist) {
@ -172,7 +172,7 @@ unless ($onlyinitrd) {
if (!$pkglist) {
print "Unable to find package list for $profile!";
return 1;
exit 1;
}
open($yumconfig,"<","$pkglist");
@ -235,19 +235,25 @@ sub getlibs {
sub mkinitrd {
mkpath("/tmp/xcatinitrd.$$/bin");
if($basekernelver eq $kernelver) {
rename(<$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz*>,"$installroot/netboot/$osver/$arch/$profile/kernel");
}
if (-f "$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz-$kernelver") {
rename(<$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz*>,"$installroot/netboot/$osver/$arch/$profile/kernel");
} elsif (-f "$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinux-$kernelver"){
rename(<$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinux*>,"$installroot/netboot/$osver/$arch/$profile/kernel");
}
}
else {
if(-r "$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz-$kernelver") {
rename("$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz-$kernelver","$installroot/netboot/$osver/$arch/$profile/kernel");
} elsif(-r "/boot/vmlinuz-$kernelver") {
copy("/boot/vmlinuz-$kernelver","$installroot/netboot/$osver/$arch/$profile/kernel");
} elsif(-r "/boot/vmlinux-$kernelver") {#for SLES10,11
if(-r "$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz-$kernelver") {
rename("$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz-$kernelver","$installroot/netboot/$osver/$arch/$profile/kernel");
} elsif(-r "$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinux-$kernelver") {
rename("$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinux-$kernelver","$installroot/netboot/$osver/$arch/$profile/kernel");
} elsif(-r "/boot/vmlinuz-$kernelver") {
copy("/boot/vmlinuz-$kernelver","$installroot/netboot/$osver/$arch/$profile/kernel");
} elsif(-r "/boot/vmlinux-$kernelver") {#for SLES10,11
copy("/boot/vmlinux-$kernelver","$installroot/netboot/$osver/$arch/$profile/kernel");
}
else {
xdie("Cannot read /boot/vmlinuz-$kernelver");
}
}
else {
xdie("Cannot read /boot/vmlinuz-$kernelver");
}
}
symlink("bin","/tmp/xcatinitrd.$$/sbin");
mkpath("/tmp/xcatinitrd.$$/usr/bin");
@ -258,8 +264,8 @@ sub mkinitrd {
mkpath("/tmp/xcatinitrd.$$/tmp");
mkpath("/tmp/xcatinitrd.$$/var/run");
mkpath("/tmp/xcatinitrd.$$/lib64/firmware");
if($osver eq "sles11" && $arch eq "ppc64") {#SLES11 for Power6
mkpath("/tmp/xcatinitrd.$$/lib64/power6");
if((($osver =~ /sles11/) || ($osver =~ /sles10/)) && $arch eq "ppc64") {#SLES11 for Power6
mkpath("/tmp/xcatinitrd.$$/lib64/power6");
}
mkpath("/tmp/xcatinitrd.$$/lib/power6");#SLES10
mkpath("/tmp/xcatinitrd.$$/lib/mkinitrd/bin");
@ -571,6 +577,7 @@ sub generic_post { #This function is meant to leave the image in a state approxi
open($cfgfile,">>","$installroot/netboot/$osver/$arch/$profile/rootimg/etc/securetty");
print $cfgfile "ttyS0\n";
print $cfgfile "ttyS1\n";
print $cfgfile "console\n";
close($cfgfile);
my @passwd;
open($cfgfile,"<","$installroot/netboot/$osver/$arch/$profile/rootimg/etc/passwd");
@ -620,7 +627,7 @@ sub generic_post { #This function is meant to leave the image in a state approxi
system("sed -i '".'s/^\(TARGETS = .*\)$/\1 gettyset/'."' $installroot/netboot/$osver/$arch/$profile/rootimg/etc/init.d/.depend.start");
system("ln -s ../gettyset $installroot/netboot/$osver/$arch/$profile/rootimg/etc/init.d/rc3.d/S60gettyset");
}
if($osver eq "sles11") {#for sles11
if(($osver =~ /sles11/) || ($osver =~ /sles10/)) {#for sles11,sles10
rename(<$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinux*>,"$installroot/netboot/$osver/$arch/$profile/kernel");
}else {
rename(<$installroot/netboot/$osver/$arch/$profile/rootimg/boot/vmlinuz*>,"$installroot/netboot/$osver/$arch/$profile/kernel");

View File

@ -0,0 +1,12 @@
./usr/share/man*
./usr/share/locale*
./usr/share/i18n*
./var/cache/yum*
./usr/share/doc*
./usr/share/gnome*
./usr/share/zoneinfo*
./usr/share/cracklib*
./usr/share/info*
./usr/share/omf*
./usr/lib/locale*
./boot*

View File

@ -0,0 +1,49 @@
kernel-ppc64
udev
sysconfig
aaa_base
syslogd
klogd
device-mapper
bash
stunnel
nfs-utils
ksh
syslog-ng
openssh
openssh-askpass
busybox
vim
rpm
bind
bind-utils
dhcp
dhcpcd
dhcp-server
dhcp-client
dhcp-relay
bzip2
rootfiles
cron
wget
vsftpd
util-linux
module-init-tools
mkinitrd
apache2
apache2-prefork
perl-Bootloader
psmisc
procps
resmgr
dbus
dbus-1-64bit
hal
hal-64bit
pam-modules-64bit
pam-64bit
resmgr
resmgr-64bit
timezone

View File

@ -0,0 +1,59 @@
#!/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:
cp $installroot/etc/fstab $installroot/etc/fstab.prev
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
#Prevent DHCP from starting up until xcatd has had a chance to configure it:
chroot $installroot chkconfig dhcpd off
chroot $installroot chkconfig dhcrelay off
#turn on some services
chroot $installroot chkconfig dbus on
chroot $installroot chkconfig boot.localnet on
chroot $installroot chkconfig haldaemon on
chroot $installroot chkconfig network on
chroot $installroot chkconfig syslog on
chroot $installroot chkconfig apache2 on
#export /install as read-only
echo '/install *(ro,no_root_squash,sync,fsid=13)' > $installroot/etc/exports
#uncomment out the cons line in etc/inittab
sed -i 's/^\#\(\s\)*cons/cons/' $installroot/etc/inittab
#-- 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