summaryrefslogtreecommitdiffstats
path: root/contrib/cloner/base.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cloner/base.cfg')
-rw-r--r--contrib/cloner/base.cfg220
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