Last active
December 17, 2015 05:29
-
-
Save brandonjank/e05dedb806bafc49bf64 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Ubuntu 14.04 LTS kickstart for XenServer | |
# branch: develop | |
########################################## | |
# Install, not upgrade | |
install | |
# Install from a friendly mirror and add updates | |
url --url http://us.archive.ubuntu.com/ubuntu/ | |
# Language and keyboard setup | |
lang en_US | |
langsupport en_US | |
keyboard us | |
# Configure networking without IPv6, firewall off | |
# for STATIC IP: uncomment and configure | |
# network --device=eth0 --bootproto=static --ip=192.168.###.### --netmask=255.255.255.0 --gateway=192.168.###.### --nameserver=###.###.###.### --noipv6 --hostname=$$$ | |
# for DHCP: | |
network --bootproto=dhcp --device=eth0 | |
firewall --enabled --ssh | |
# Set timezone | |
timezone --utc Etc/UTC | |
# Authentication | |
rootpw --disabled | |
user ubuntu --fullname "Ubuntu User" --password Asdfqwerty | |
# if you want to preset the root password in a public kickstart file, use SHA512crypt e.g. | |
# user ubuntu --fullname "Ubuntu User" --iscrypted --password $6$9dC4m770Q1o$FCOvPxuqc1B22HM21M5WuUfhkiQntzMuAV7MY0qfVcvhwNQ2L86PcnDWfjDd12IFxWtRiTuvO/niB0Q3Xpf2I. | |
auth --useshadow | |
# Disable anything graphical | |
skipx | |
text | |
# Setup the disk | |
zerombr yes | |
clearpart --all | |
part /boot --fstype=ext3 --size=256 --asprimary | |
part swap --size 1024 | |
part / --fstype=ext4 --grow --size=1024 --asprimary | |
bootloader --location=mbr | |
# Shutdown when the kickstart is done | |
halt | |
# Minimal package set | |
%packages | |
ubuntu-minimal | |
openssh-server | |
screen | |
curl | |
wget | |
xenstore-utils | |
linux-image-virtual | |
%post | |
#!/bin/sh | |
echo -n "Minimizing kernel" | |
apt-get install -f -y linux-virtual | |
apt-get remove -y linux-firmware | |
dpkg -l | grep extra | grep linux | awk '{print $2}' | xargs apt-get remove -y | |
echo . | |
echo -n "/etc/fstab fixes" | |
# update fstab for the root partition | |
perl -pi -e 's/(errors=remount-ro)/noatime,nodiratime,$1,barrier=0/' /etc/fstab | |
echo . | |
echo -n "Network fixes" | |
# For cloud images, 'eth0' _is_ the predictable device name, since | |
# we don't want to be tied to specific virtual (!) hardware | |
rm -f /etc/udev/rules.d/70* | |
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules | |
echo . | |
# generic localhost names | |
echo "localhost.localdomain" > /etc/hostname | |
echo . | |
cat > /etc/hosts << EOF | |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 | |
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 | |
EOF | |
echo . | |
# utility scripts | |
echo -n "Utility scripts" | |
wget -O /opt/domu-hostname.sh https://github.com/frederickding/xenserver-kickstart/raw/develop/opt/domu-hostname.sh | |
chmod +x /opt/domu-hostname.sh | |
echo . | |
wget -O /opt/generate-sshd-keys.sh https://github.com/frederickding/xenserver-kickstart/raw/develop/opt/generate-sshd-keys.sh | |
chmod +x /opt/generate-sshd-keys.sh | |
echo . | |
# generalization | |
echo -n "Generalizing" | |
rm -f /etc/ssh/ssh_host_* | |
rm -f /var/cache/apt/archives/*.deb | |
rm -f /var/cache/apt/*cache.bin | |
rm -f /var/lib/apt/lists/*_Packages | |
echo . | |
# fix boot for older pygrub/XenServer | |
# you should comment out this entire section if on XenServer Creedence/Xen 4.4 | |
echo -n "Fixing boot" | |
cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak | |
cp /etc/default/grub /etc/default/grub.bak | |
cp --no-preserve=mode /etc/grub.d/00_header /etc/grub.d/00_header.bak | |
sed -i 's/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/' /etc/default/grub | |
sed -i 's/default="\\${next_entry}"/default="0"/' /etc/grub.d/00_header | |
echo -n "." | |
cp --no-preserve=mode /etc/grub.d/10_linux /etc/grub.d/10_linux.bak | |
sed -i 's/${sixteenbit}//' /etc/grub.d/10_linux | |
echo -n "." | |
update-grub | |
echo . | |
%end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment