# There are two sets of parameters you can use as the append line: # The minimum required is: # hostname=x2goclient1 domain=x2go.example.com # url=http://192.168.0.224/preseed_x2goclient1 # (all in one line, and without the leading "#" marks) # If you only use these, you will have to answer a few questions # - mainly regarding country, keyboard and locale - interactively. # For a fully automated installation, add these parameters # *in addition to the ones listed above* # (again, all in one line, and without the leading "#" marks): # priority=critical netcfg/use_dhcp=true netcfg/choose_interface=eth0 # debian-installer/locale=de_DE keymap=de-latin1 # debian-installer/locale=de_DE.UTF-8 DEBCONF_DEBUG=5 # We prefer to stay anonymous ;-) popularity-contest popularity-contest/participate boolean false # Load non-free firmware, if possible d-i hw-detect/load_firmware boolean true # Repository # CHANGE THIS to your nearest mirror d-i mirror/http/hostname string ftp.de.debian.org d-i mirror/http/directory string /debian/ d-i mirror/suite string jessie # Post install APT setup d-i apt-setup/uri_type select d-i # CHANGE THIS to your nearest mirror d-i apt-setup/hostname string ftp.de.debian.org d-i apt-setup/directory string /debian/ d-i apt-setup/another boolean false d-i apt-setup/security-updates boolean true d-i finish-install/reboot_in_progress note d-i prebaseconfig/reboot_in_progress note d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true # Network-related settings # Every hostname and domain name assigned via DHCP # takes priority over these values # however, if they are left empty, the installer will query them interactively d-i netcfg/get_hostname string x2goclient1 d-i netcfg/get_domain string x2go.example.com d-i netcfg/disable_dhcp boolean false d-i mirror/http/proxy string d-i netcfg/choose_interface select eth0 d-i netcfg/wireless_wep string # Partitioning and Bootloader settings d-i partman-auto/disk string /dev/sda d-i partman-auto/method string regular # Do not use UUIDs in fstab (and not in bootloader config, either) d-i partman/mount_style string traditional # This silences an interactive "are you sure?" query d-i partman/confirm boolean true d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm_nooverwrite boolean true d-i partman-lvm/device_remove_lvm boolean true d-i partman-lvm/confirm boolean true d-i partman-md/device_remove_md boolean true d-i partman-md/confirm boolean true d-i partman-auto/choose_recipe select atomic #d-i partman-auto/choose_recipe select home #d-i partman-auto/choose_recipe select multi d-i debian-installer/add-kernel-opts string nomodeset gfxpayload=vga=normal d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i grub-installer/bootdev string /dev/sda # Country, keyboard, locale settings - CHANGE THIS d-i debian-installer/locale string de_DE d-i debian-installer/keymap select de-latin1 d-i debian-installer/keymap string de-latin1 d-i languagechooser/language-name-fb select German d-i countrychooser/country-name select Germany d-i console-setup/layoutcode string de_DE d-i debian-installer/locale select de_DE.UTF-8 # Time zone settings - CHANGE THIS d-i tzconfig/gmt boolean false d-i tzconfig/choose_country_zone/Europe select Berlin d-i tzconfig/choose_country_zone_single boolean true d-i time/zone select Europe/Berlin d-i clock-setup/utc boolean true d-i mirror/country string manual d-i clock-setup/ntp boolean false # Root Account # this says "start" in MD5 - CHANGE THIS d-i passwd/root-password-crypted passwd $1$ekONVtC5$rTbjMaMA6cqFpbWu7UXWN. # On this client system, we want to create a local user d-i passwd/make-user boolean true d-i passwd/user-fullname string Local User d-i passwd/username string localuser d-i passwd/user-password-crypted passwd $1$ekONVtC5$rTbjMaMA6cqFpbWu7UXWN. # Additional repositories, local[0-9] available # this is where we add the X2Go repo d-i apt-setup/local0/repository string \ http://packages.x2go.org/debian jessie main d-i apt-setup/local0/comment string X2Go Repository # 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 # When this key doesn't work any more, switch entries #d-i apt-setup/local0/key string http://packages.x2go.org/pub.key d-i apt-setup/local0/key string http://packages.x2go.org/debian-old-pub.key # Task and Package Selection tasksel tasksel/first multiselect ssh-server d-i pkgsel/include string ssh \ console-setup \ debconf-i18n \ lightdm \ lxde-core \ lxtask \ lxlauncher \ mc \ ntp \ screen \ sysvinit-core \ sysvinit-utils \ unattended-upgrades \ vim \ x2goclient # Commands to be executed after package installation # Note: The only way to insert comments below is to add an "echo COMMENT" d-i preseed/late_command string echo "COMMENT: Begin Post-Install Setup/Config" ;\ echo "COMMENT: Configure SSH" ;\ mkdir -p /target/root/.ssh ; \ chmod 700 /target/root/.ssh ;\ touch /target/root/.ssh/authorized_keys ; \ chmod 600 /target/root/.ssh/authorized_keys ;\ sed -i '/^PermitRootLogin/c PermitRootLogin without-password' /target/etc/ssh/sshd_config ;\ echo "COMMENT: Insert your own SSH public key here" ;\ echo "COMMENT: User echo -n as shown so multiline echo doesn't add Newlines when appending" ;\ echo -n 'ssh-rsa AAAAB3blahblahblah' >>/target/root/.ssh/authorized_keys ;\ echo -n 'blahblahblahOQ== SSH Key Comment here' >>/target/root/.ssh/authorized_keys ;\ echo "COMMENT: Fixing shortcomings of netcfg here..." ;\ sed -i "s/$(cat /etc/hostname)/x2goclient1/" /target/etc/hosts ;\ echo "x2goclient1" >/target/etc/hostname ;\ echo "COMMENT: Fix ends here." ;\ echo "COMMENT: This fixes some annoyances regarding UTF-8 and MidnightCommander" ;\ echo "export LANG=de_DE.UTF-8" >>/target/etc/bash.bashrc ;\ echo "export NCURSES_NO_UTF8_ACS=1" >>/target/etc/bash.bashrc ;\ echo "COMMENT: This makes sure error messages during bootup remain on screen." ;\ sed -i -e '/^1/ s/getty/getty --noclear/' /target/etc/inittab ;\ echo "COMMENT: This is so dnsmasq on ldap1 is queried for DNS first" ;\ sed 's/#prepend domain-name-servers 127.0.0.1;/prepend domain-name-servers 192.168.154.146;/' -i /target/etc/dhcp/dhclient.conf ;\ echo "COMMENT: This removes the cdrom entry from sources list (left behind by installer)" ;\ sed -i '/^#* *deb cdrom/d' /target/etc/apt/sources.list ;\ echo "COMMENT: This patches rc.local so the following set of commands is run" ;\ echo "COMMENT: exactly *once* - at the first boot after installation." ;\ echo "COMMENT: First, remove the 'exit 0'" ;\ sed -i '/^exit 0/d' /target/etc/rc.local ;\ echo "COMMENT: This is so /bin/sh points to /bin/bash instead of /bin/dash" ;\ echo "COMMENT: As the standard shell of our users is set to /bin/sh." ;\ echo 'dpkg-reconfigure -pcritical dash' >>/target/etc/rc.local ;\ echo "COMMENT: This is the cleanup job for the dpkg-reconfigure call, so it doesn't run more than once." ;\ echo 'sed -i -e "/dpkg/d" /etc/rc.local' >>/target/etc/rc.local ;\ echo "COMMENT: Finally, rc.local must terminate with 'exit 0' again." ;\ echo 'exit 0' >>/target/etc/rc.local ;\ echo "COMMENT: Finally, take out the trash - sadly, systemd must stay because of MATE and LXDE." ;\ in-target apt-get autoremove --purge -y ;\ in-target apt-get clean ;\ echo "COMMENT: This last step creates an X2GoClient-in-Broker-Mode desktop entry" ;\ mkdir /target/home/localuser/Desktop ;\ echo '[Desktop Entry]' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Version=1.0' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Terminal=false' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Icon=x2goclient' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Type=Application' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Categories=Internet' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Exec=x2goclient --broker-url=ssh://x2gobroker1.x2go.example.com:/usr/bin/x2gobroker-ssh --add-to-known-hosts' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Name=X2GoClient in SSH Broker Mode' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'GenericName=X2GoClient in SSH Broker Mode' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'Comment=Starts X2GoClient in SSH Broker Mode' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo 'StartupNotify=true' >>/target/home/localuser/Desktop/x2goclient-broker-ssh.desktop ;\ echo '[Desktop Entry]' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Version=1.0' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Terminal=false' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Icon=x2goclient' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Type=Application' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Categories=Internet' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Exec=x2goclient --broker-url=http://x2gobroker1.x2go.example.com:8080/plain/inifile --add-to-known-hosts' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Name=X2GoClient in HTTP Broker Mode' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'GenericName=X2GoClient in HTTP Broker Mode' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'Comment=Starts X2GoClient in HTTP Broker Mode' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo 'StartupNotify=true' >>/target/home/localuser/Desktop/x2goclient-broker-http.desktop ;\ echo "End Post-Install Setup/Config" # Shut down and power off after installation d-i debian-installer/exit/poweroff boolean true # preseed key-value pairs for the packages we intend to install dash dash/sh boolean false exim4-config exim4/no_config boolean true mdadm mdadm/autostart boolean false mdadm mdadm/mail_to string root mdadm mdadm/initrdstart string all mdadm mdadm/initrdstart_notinconf boolean true mdadm mdadm/autocheck boolean true mdadm mdadm/start_daemon boolean true