diff options
Diffstat (limited to 'contrib/cloner/base.cfg')
-rw-r--r-- | contrib/cloner/base.cfg | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/contrib/cloner/base.cfg b/contrib/cloner/base.cfg new file mode 100644 index 00000000..2bc45e1d --- /dev/null +++ b/contrib/cloner/base.cfg @@ -0,0 +1,220 @@ +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +auth --useshadow --enablemd5 +selinux --disabled +firewall --disabled +rootpw --iscrypted \$1\$mF86/UHC\$WvcIcX2t6crBz2onWxyac. +services --disable sshd + +# TODO: how to replace i386 with $basearch + +# TODO: apparently calling it fedora-dev instead of a-dev makes things +# not work. Perhaps it has something to do with the default repos in +# /etc/yum.repos.d not getting properly disabled? + +repo --name=todos --baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/9/Everything/i386/os/ +repo --name=updatez --baseurl=http://download.fedora.redhat.com/pub/fedora/linux/updates/9/i386/ +repo --name=partimageng --baseurl=file:///usr/src/redhat/RPMS/i386/ + +text +bootloader --location=mbr +install +zerombr + +part / --fstype ext3 --size=1024 --grow --ondisk=/dev/sda --asprimary +part swap --size=1027 --ondisk=/dev/sda --asprimary + +%packages +@base +#@core +@hardware-support +file +syslinux +kernel +bash +util-linux +#koan +avahi-tools +#aspell-* +-m17n-db-* +-man-pages-* +# gimp help is huge +-gimp-help +# lose the compat stuff +-compat* +# space sucks +-gnome-user-docs +-specspo +-esc +-samba-client +-a2ps +-vino +-redhat-lsb +-sox +# smartcards won't really work on the livecd. and we _need_ space +-coolkey +-ccid +# duplicate functionality +-tomboy +-pinfo +-wget +# scanning takes quite a bit of space :/ +-xsane +-xsane-gimp +# while hplip requires pyqt, it has to go +-hplip +#-*debuginfo # error +kernel +bash +koan +policycoreutils +grub +eject +tree + +# Add libraries for partimage: +partimage-ng + +%post + +cat > /etc/rc.d/init.d/fedora-live << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 99 99 + +# description: Init script for live image. + +#if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ] || [ -e /.liveimg-configured ] ; then +# exit 0 +#fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +touch /.liveimg-configured + +echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot + +useradd -c "Fedora Live" fedora +passwd -d fedora > /dev/null +echo "fedora ALL=(ALL) ALL" >> /etc/sudoers + +# don't start cron/at as they tend to spawn things which are +# disk intensive that are painful on a live image +/sbin/chkconfig crond off +/sbin/chkconfig atd off +/sbin/chkconfig anacron off +/sbin/chkconfig readahead_early off +/sbin/chkconfig readahead_later off + +# Stopgap fix for RH #217966; should be fixed in HAL instead +touch /media/.hal-mtab + +# PUT CUSOTMIZATIONS HERE +mkdir -p /mnt/nfs + + +cat << EOFpython > /tmp/imaging.py +import subprocess +import sys +import os +try: + # iglob is new in 2.5, iterator version of glob + from glob import iglob as glob +except ImportError: + from glob import glob + +def call(cmd, fail=True): + print "+",cmd + ret = subprocess.call(cmd, shell=True) + if fail and ret: + sys.exit("Halting script, %r returned %s" % (cmd, ret)) + return ret + +print "Beginning imaging script" + +args = open("/proc/cmdline",'r').read().split() +nfspath = "" +imagename = "" +drivelist = [] +action = "" +for a in args: + if a.startswith("nfs="): + nfspath = a.split("=",1)[1] + if a.startswith("image="): + imagename = a.split("=",1)[1] + if a.startswith("drive="): + drivelist.append(a.split("=",1)[1]) + if a == "load": + action = "load" + if a == "save": + action = "save" + +if not (nfspath and imagename and drivelist and action): + sys.exit("Not all arguments given") + +fullpath = os.path.join("/mnt/nfs", imagename) + +print "Mounting nfs dir %s" % nfspath +ret = call("mount %s /mnt/nfs" % nfspath) +if ret: + sys.exit("Couldn't mount") + +pimg = "partimage-ng" + +# Make the directory where we'll save everything +call("mkdir -p %s" % fullpath) + +if action == "save": + print "Deleting any existing entries" + call("rm -f -- %s" % os.path.join(fullpath, "*")) + + for drivenum, drive in enumerate(drivelist): + print "Saving %s" % drive + imagepath = os.path.join(fullpath, "%s.img" % drivenum) + call("%s -i save %s %s" % (pimg, drive, imagepath)) + + print "Finished saving. Rebooting" + #call("/sbin/shutdown -r now") + print "(would normally reboot here)" + +elif action == "load": + for drivenum, drive in enumerate(drivelist): + print "Restoring %s" % drive + imagepath = os.path.join(fullpath, "%s.img" % drivenum) + call("%s restore %s %s" % (pimg, imagepath, drive)) + + print "Finished loading image. Rebooting" + #call("/sbin/shutdown -r now") + print "(would reboot here normally)" + +else: + print "NO ACTION SPECIFIED" + +print "Exiting imaging script" +EOFpython + +python /tmp/imaging.py & + +EOF + +chmod 755 /etc/rc.d/init.d/fedora-live +/sbin/restorecon /etc/rc.d/init.d/fedora-live +/sbin/chkconfig --add fedora-live + +# Turn off more unneeded stuff +/sbin/chkconfig bluetooth off +/sbin/chkconfig sendmail off + +# save a little bit of space at least... +rm -f /boot/initrd* + +# Turn off virtual console on tty1 +sed -i "s|/sbin/mingetty tty1|/bin/sleep 9999|" /etc/event.d/tty1 + +%end |