From b25d1d245a27671a2ad3e316526cb806d1ee5630 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Mon, 8 Nov 2010 16:52:26 -0500 Subject: [PATCH] VM auto installer: run Debian installer, Esc, "auto url=hydra" would do complete initial installation of ND VM image --- vm/d-i/squeeze/preseed.cfg | 106 ++++++++++++++++++++++--------------- vm/d-i/tools/initial_setup | 28 ++++++---- 2 files changed, 79 insertions(+), 55 deletions(-) diff --git a/vm/d-i/squeeze/preseed.cfg b/vm/d-i/squeeze/preseed.cfg index 28aa067..f78cac5 100644 --- a/vm/d-i/squeeze/preseed.cfg +++ b/vm/d-i/squeeze/preseed.cfg @@ -1,4 +1,7 @@ -#### Contents of the preconfiguration file (for lenny) +#### Contents of the preconfiguration file (for squeeze) +### Notes: +### WiP: not entirely tested and relies on our local proxy 10.0.0.1:9999 atm +### ### Localization # Locale sets language and country. d-i debian-installer/locale string en_US @@ -41,11 +44,11 @@ d-i netcfg/choose_interface select auto # Any hostname and domain names assigned from dhcp take precedence over # values set here. However, setting the values still prevents the questions # from being shown, even if values come from dhcp. -d-i netcfg/get_hostname string unassigned-hostname -d-i netcfg/get_domain string unassigned-domain +d-i netcfg/get_hostname string neurodebian +# d-i netcfg/get_domain string unassigned-domain # Disable that annoying WEP key dialog. -d-i netcfg/wireless_wep string +# d-i netcfg/wireless_wep string # The wacky dhcp hostname that some ISPs use as a password of sorts. #d-i netcfg/dhcp_hostname string radish @@ -66,12 +69,12 @@ d-i netcfg/wireless_wep string # If you select ftp, the mirror/country string does not need to be set. #d-i mirror/protocol string ftp d-i mirror/country string manual -d-i mirror/http/hostname string http.us.debian.org +d-i mirror/http/hostname string 10.0.0.1:9999 d-i mirror/http/directory string /debian -d-i mirror/http/proxy string +#d-i mirror/http/proxy string # Suite to install. -#d-i mirror/suite string testing +d-i mirror/suite string squeeze # Suite to use for loading installer components (optional). #d-i mirror/udeb/suite string testing @@ -96,19 +99,19 @@ d-i clock-setup/ntp boolean true # be given in traditional non-devfs format. # Note: A disk must be specified, unless the system has only one disk. # For example, to use the first SCSI/SATA hard disk: -#d-i partman-auto/disk string /dev/sda +d-i partman-auto/disk string /dev/sda # In addition, you'll need to specify the method to use. # The presently available methods are: "regular", "lvm" and "crypto" -d-i partman-auto/method string lvm +d-i partman-auto/method string regular # If one of the disks that are going to be automatically partitioned # contains an old LVM configuration, the user will normally receive a # warning. This can be preseeded away... -d-i partman-lvm/device_remove_lvm boolean true +#d-i partman-lvm/device_remove_lvm boolean true # The same applies to pre-existing software RAID array: -d-i partman-md/device_remove_md boolean true +#d-i partman-md/device_remove_md boolean true # And the same goes for the confirmation to write the lvm partitions. -d-i partman-lvm/confirm boolean true +#d-i partman-lvm/confirm boolean true # You can choose one of the three predefined partitioning recipes: # - atomic: all files in one partition @@ -125,22 +128,18 @@ d-i partman-auto/choose_recipe select atomic # If not, you can put an entire recipe into the preconfiguration file in one # (logical) line. This example creates a small /boot partition, suitable # swap, and uses the rest of the space for the root partition: -#d-i partman-auto/expert_recipe string \ -# boot-root :: \ -# 40 50 100 ext3 \ -# $primary{ } $bootable{ } \ -# method{ format } format{ } \ -# use_filesystem{ } filesystem{ ext3 } \ -# mountpoint{ /boot } \ -# . \ -# 500 10000 1000000000 ext3 \ -# method{ format } format{ } \ -# use_filesystem{ } filesystem{ ext3 } \ -# mountpoint{ / } \ -# . \ -# 64 512 300% linux-swap \ -# method{ swap } format{ } \ -# . +d-i partman-auto/expert_recipe string \ + boot-root :: \ + 5000 20000 1000000000 ext3 \ + $primary{ } $bootable{ } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext3 } \ + label{NEURODEBIAN} \ + mountpoint{ / } \ + . \ + 1024 1024 1024 linux-swap \ + method{ swap } format{ } \ + . # This makes partman automatically partition without confirmation, provided # that you told it what to do using one of the methods above. @@ -164,48 +163,60 @@ d-i partman/confirm boolean true #d-i passwd/make-user boolean false # Root password, either in clear text -#d-i passwd/root-password password r00tme -#d-i passwd/root-password-again password r00tme +d-i passwd/root-password password neurodebian +d-i passwd/root-password-again password neurodebian # or encrypted using an MD5 hash. #d-i passwd/root-password-crypted password [MD5 hash] # To create a normal user account. -#d-i passwd/user-fullname string Debian User -#d-i passwd/username string debian +d-i passwd/user-fullname string NeuroDebian User +d-i passwd/username string brain # Normal user's password, either in clear text -#d-i passwd/user-password password insecure -#d-i passwd/user-password-again password insecure +d-i passwd/user-password password neurodebian +d-i passwd/user-password-again password neurodebian # or encrypted using an MD5 hash. #d-i passwd/user-password-crypted password [MD5 hash] # Create the first user with the specified UID instead of the default. -#d-i passwd/user-uid string 1010 +d-i passwd/user-uid string 1000 +# XXX no gid? # The user account will be added to some standard initial groups. To # override that, use this. -#d-i passwd/user-default-groups string audio cdrom video +d-i passwd/user-default-groups string audio cdrom video plugdev dip sudo ### Apt setup # You can choose to install non-free and contrib software. -#d-i apt-setup/non-free boolean true -#d-i apt-setup/contrib boolean true +d-i apt-setup/non-free boolean true +d-i apt-setup/contrib boolean true # Uncomment this if you don't want to use a network mirror. #d-i apt-setup/use_mirror boolean false # Select which update services to use; define the mirrors to be used. # Values shown below are the normal defaults. #d-i apt-setup/services-select multiselect security, volatile -#d-i apt-setup/security_host string security.debian.org +d-i apt-setup/security_host string security.debian.org #d-i apt-setup/volatile_host string volatile.debian.org +# XXX? # Additional repositories, local[0-9] available #d-i apt-setup/local0/repository string \ # http://local.server/debian stable main #d-i apt-setup/local0/comment string local server -# Enable deb-src lines +# XXX our nd? +#d-i apt-getup/local0/repository string \ +# http://neuro.debian.net/debian data main contrib non-free +#d-i apt-setup/local0/comment string NeuroDebian data #d-i apt-setup/local0/source boolean true +#d-i apt-getup/local1/repository string \ +# http://neuro.debian.net/debian squeeze main contrib non-free +#d-i apt-setup/local1/comment string NeuroDebian software +#d-i apt-setup/local1/source boolean true + + # URL to the public key of the local repository; you must provide a key or # apt will complain about the unauthenticated repository and so the # sources.list line will be left commented out -#d-i apt-setup/local0/key string http://local.server/key +#d-i apt-setup/local0/key string \ +# http://neuro.debian.net/_static/neuro.debian.net.asc # By default the installer requires that repositories be authenticated # using a known gpg key. This setting can be used to disable that @@ -214,6 +225,7 @@ d-i partman/confirm boolean true ### Package selection #tasksel tasksel/first multiselect standard, web-server +tasksel tasksel/first multiselect # If the desktop task is selected, install the kde and xfce desktops # instead of the default gnome desktop. #tasksel tasksel/desktop multiselect kde, xfce @@ -228,7 +240,8 @@ d-i partman/confirm boolean true # installed, and what software you use. The default is not to report back, # but sending reports helps the project determine what software is most # popular and include it on CDs. -#popularity-contest popularity-contest/participate boolean false +# ND: popcon installed upon initial boot +popularity-contest popularity-contest/participate boolean false ### Boot loader installation # Grub is the default boot loader (for x86). If you want lilo installed @@ -244,7 +257,7 @@ d-i grub-installer/only_debian boolean true # This one makes grub-installer install to the MBR if it also finds some other # OS, which is less safe as it might not be able to boot that other OS. -d-i grub-installer/with_other_os boolean true +d-i grub-installer/with_other_os boolean false # Alternatively, if you want to install to a location other than the mbr, # uncomment and edit these lines: @@ -277,7 +290,7 @@ d-i finish-install/reboot_in_progress note # reboot into the installed system. #d-i debian-installer/exit/halt boolean true # This will power off the machine instead of just halting it. -#d-i debian-installer/exit/poweroff boolean true +d-i debian-installer/exit/poweroff boolean true ### Preseeding other packages # Depending on what software you choose to install, or if things go wrong @@ -307,4 +320,9 @@ d-i finish-install/reboot_in_progress note # directly, or use the apt-install and in-target commands to easily install # packages and run commands in the target system. #d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh +#d-i preseed/late_command string wget -O/target/tmp/initial_setup http://git.debian.org/?p=pkg-exppsy/neurodebian.git;a=blob_plain;f=vm/d-i/tools/initial_setup;hb=HEAD; \ +d-i preseed/late_command string wget -O/target/tmp/initial_setup http://hydra.dartmouth.edu/d-i/tools/initial_setup ; \ + in-target /bin/bash /tmp/initial_setup + +# XXX here get/call nd_setupguestos ? diff --git a/vm/d-i/tools/initial_setup b/vm/d-i/tools/initial_setup index f14fb11..4b4bfb0 100644 --- a/vm/d-i/tools/initial_setup +++ b/vm/d-i/tools/initial_setup @@ -29,10 +29,10 @@ set -u # just base system, run selection, but no tasks (not even 'Standard system') # set root password to 'neurodebian' too -echo "Set root passwd:" -passwd root +#echo "Set root passwd:" +#passwd root -apt-get install --no-install-recommends etckeeper +apt-get install --no-install-recommends -y etckeeper # setup etckeeper git config --global user.name NeuroDebian @@ -51,16 +51,22 @@ Pin: release a=squeeze-backports Pin-Priority: 200 EOT -apt-get update -apt-get install neurodebian-keyring -apt-get update +apt-get update -y +# Backports' Release files signed with both ftpmaster and old backports keys +# That causes APT to spit out a warning, but to not confuse users, lets simply +# obtain that key if possible +gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16BA136C && \ + gpg --export 16BA136C | apt-key add - || : + +apt-get install -y --allow-unauthenticated neurodebian-keyring +apt-get update -y # to cheat the VM check touch /dev/vboxguest # to get all the stuff in recommends -apt-get install dkms neurodebian-guest-additions +apt-get install -y dkms neurodebian-guest-additions -apt-get install --no-install-recommends \ +apt-get install --no-install-recommends -y \ gnome-core mc evince bash-completion ntpdate file-roller gnome-utils \ gnome-themes eog vim \ software-center gdebi gedit-plugins gnome-media synaptic menu less @@ -70,11 +76,11 @@ find /var/cache/apt/archives/ -name '*.deb' -delete # cleanup unwanted stuff # video drivers (all but vesa) -apt-get purge $(apt-cache search --names-only --installed xserver-xorg-video | grep xserver-xorg-video | cut -d ' ' -f 1,1) xserver-xorg-video-vesa+ -apt-get purge brasero +apt-get purge -y $(apt-cache search --names-only --installed xserver-xorg-video | grep xserver-xorg-video | cut -d ' ' -f 1,1) xserver-xorg-video-vesa+ +apt-get purge -y brasero # and whatever is obsolete -apt-get autoremove --purge +apt-get autoremove --purge -y # custom config # use NeuroDebian website as default homepage -- 2.39.2