# System language lang en_US # Language modules to install langsupport --default=en_US.UTF-8 en_GB.UTF-8 no_NO.UTF-8 nn_NO.UTF-8 # System keyboard keyboard no # System mouse # mouse generic3ps/2 # System timezone timezone --utc Europe/Oslo # Root password rootpw --iscrypted verysecret # Do not reboot after installation # reboot # Use text mode install # text # Install Red Hat Linux instead of upgrade install # Installation source # Get the CDs via FTP... url --url ftp://eurus.oslo.dnmi.no/pub/fedora/3/i386/os #url --url ftp://arion.bergen.dnmi.no/pub/redhat/9/en/os/i386 #url --url ftp://fullstorm.troms.dnmi.no/pub/redhat/9/en/os/i386 # System bootloader configuration bootloader --location=mbr --append="rhgb quiet" # Clear the Master Boot Record # NOTE: This is dangerous for other disks (/dev/hdb etc.) with contents! # zerombr yes # Disk partitioning information is generated automatically by the # %pre-script and written to /tmp/part-include.txt # %include /tmp/part-include.txt # Use static networking # network --bootproto=static --ip=157.249.26.82 --netmask=255.255.255.0 --gateway=157.249.26.1 --nameserver=157.249.16.22 --hostname=wstest.oslo.dnmi.no #System authorization information auth --enableshadow --enablemd5 # Firewall and SELinux configuration firewall --disabled selinux --disabled #XWindows configuration information #Probe for video card #Probe for monitor xconfig --depth=24 --resolution=1280x1024 --defaultdesktop=KDE --startxonboot # Install packages %packages --resolvedeps @ everything ############################################################################### # Things to do before the installation starts %pre --interpreter /usr/bin/python # coding: iso-8859-1 import os import sys sys.path.append('/usr/lib/anaconda') import partedUtils diskset = partedUtils.DiskSet() diskset.refreshDevices() disks = diskset.driveList() partitions = diskset.partitionTypes() labels = diskset.getLabels() print "Disker i maskinen: \n\t%s" % disks print "Partisjoner på diskene: \n\t%s" % partitions print "Definerte labels på partisjonene: \n\t%s" % labels def getInstallDisk(): """Finn hvilken disk vi skal installere til""" if 'hda' in disks: disk = 'hda' elif 'sda' in disks: disk = 'sda' else: print "Maskinen har ingen disker tilgjengelig for installasjon" sys.exit(1) return disk def getExistingPartitions(): """Sjekk om denne maskinen har vært installert før, og returner isåfall partisjonene""" d = {} for p,l in labels.iteritems(): if l == '/1': d['/'] = p # bug? elif l == '/': d['/'] = p elif l == '/home': d['/home'] = p elif l == '/disk1': d['/disk1'] = p for p,t in partitions: if t == 'linux-swap': d['swap'] = p # Hvis vi ikke finner ut både /, /home, /disk1 og swap, # har vi ikke funnet ut nok, og returnerer None slik at # maskinen blir installert fra scratch if len(d.values()) == 4: return d else: return None def printPartsUpgrade(parts): f = open('/tmp/part-include.txt', 'w') f.write("partition / --onpart=%s\n" % parts['/']) f.write("partition /home --noformat --onpart=%s\n" % parts['/home']) f.write("partition swap --onpart=%s\n" % parts['swap']) f.write("partition /disk1 --noformat --onpart=%s\n" % parts['/disk1']) f.close() f = open('/tmp/part-dialog.txt', 'w') f.write("\nDe eksisterende partisjonene vil bli brukt slik:\n\n") f.write("Partisjon %4s: / FORMATERES \n" % parts['/']) f.write("Partisjon %4s: /home \n" % parts['/home']) f.write("Partisjon %4s: swap FORMATERES \n" % parts['swap']) f.write("Partisjon %4s: /disk1 \n\n" % parts['/disk1']) f.close() def printPartsFresh(disk): f = open('/tmp/part-include.txt', 'w') f.write("clearpart --linux --drives %s\n\n" % disk) f.write("partition / --fstype=ext3 --size=15360 --asprimary --ondisk=%s\n" % disk) f.write("partition /home --fstype=ext3 --size=4096 --asprimary --ondisk=%s\n" % disk) f.write("partition swap --size=2048 --ondisk=%s\n" % disk) f.write("partition /disk1 --fstype=ext3 --size=1 --grow --ondisk=%s\n" % disk) f.close() f = open('/tmp/part-dialog.txt', 'w') f.write("\nIngen tidligere installasjon funnet, partisjoner vil bli laget slik:\n\n") f.write("Filsystem / 15 GB primary %s FORMATERES\n" % disk) f.write("Filsystem /home 4 GB primary %s FORMATERES\n" % disk) f.write("Filsystem swap 2 GB %s FORMATERES\n" % disk) f.write("Filsystem /disk1 resten %s FORMATERES\n\n" % disk) f.close() def main(): parts = getExistingPartitions() if (parts): print parts printPartsUpgrade(parts) else: print "Finner ikke eksisterende labels, gjør en fresh install" disk = getInstallDisk() printPartsFresh(disk) # Bytter til terminal 3 os.system("chvt 3") os.system("reset") dialogtext = open('/tmp/part-dialog.txt').read() print(dialogtext) # answer = raw_input("Er dette OK? (y/n) ") # if answer == 'y': # print "\nOK, fortsetter installasjonen..." # else: # print "\nGreit, avbryter installasjonen." # sys.exit(1) # Kjør funksjonen main hvis vi kalles som et program if __name__ == "__main__": main() ############################################################################### # Things to do (chrooted) after the installation procedure %post #!/bin/bash # Add guest user /usr/sbin/useradd -u 998 -c "Guest user" -p '$1$LX3XJhr.$2Lrkr9FBkuwBIlnHHJP7m1' guest # Copy extra configuration scripts from eurus to local disk /usr/bin/wget -P /tmp ftp://eurus.oslo.dnmi.no/pub/kickstart/fedora-3/ks-*.sh # Source variable definitions source /tmp/ks-defines.sh # Install and configure apt and cfengine source /tmp/ks-apt-cfengine.sh # Install fonts and other stuff source /tmp/ks-installs.sh # Stop and start daemons source /tmp/ks-services.sh # Run cfagent to update configuration /root/bin/cfagent-everything