Webapp for quickly building Ubuntu Kickstart install ISOs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

193 lines
4.0 KiB

#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone America/Los_Angeles
#Root password
rootpw ubuntu
#Initial user
user --disabled
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use CDROM installation media
cdrom
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext2 --size=500
part pv.01 --size=1 --grow
volgroup vg_root pv.01
logvol / --vgname=vg_root --name=lv_root --size 1 --grow
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
%packages
openssh-server
vim
htop
%post
# Add arbitrary shell code to execute in the installer environment below here
# Ubuntu user
useradd --create-home --groups sudo --shell /bin/bash ubuntu
echo "ubuntu:ubuntu" | chpasswd
touch /home/ubuntu/.sudo_as_admin_successful
# First time startup script
cat <<"EOF" > /usr/local/sbin/vm-firstboot.sh
#!/bin/bash
set +x
sed -i -E "s/^#?PermitRootLogin .+/PermitRootLogin yes/" /etc/ssh/sshd_config
apt-get update
apt-get dist-upgrade -y
apt-get install -y open-vm-tools dirmngr
rm -f /etc/firstboot /root/.bash_history /home/ubuntu/.bash_history
reboot
EOF
chmod +x /usr/local/sbin/vm-firstboot.sh
# and systemd unit to call it
cat <<"EOF" > /etc/systemd/system/vm-firstboot.service
[Unit]
Description=Initialize this template-created VM
ConditionPathExists=/etc/firstboot
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/vm-firstboot.sh
[Install]
WantedBy=multi-user.target
EOF
ln -s /etc/systemd/system/vm-firstboot.service /etc/systemd/system/multi-user.target.wants/vm-firstboot.service
touch /etc/firstboot
# Template cleanup helper script
cat <<"EOF" > /usr/local/sbin/vm-clean.sh
#!/bin/bash
touch /etc/firstboot
rm -f /etc/ssh/*key*
rm -f /etc/machine-id
EOF
chmod +x /usr/local/sbin/vm-clean.sh
# First boot ssh key regen
cat <<"EOF" > /lib/systemd/system/ssh.service
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/bin/bash -c "test -f /etc/ssh/ssh_host_rsa_key || ssh-keygen -A"
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
RuntimeDirectory=sshd
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
Alias=sshd.service
EOF
# First boot machine uuidgen
cat <<"EOF" > /etc/systemd/system/machineidgen.service
[Unit]
Description=Regen machine-id on first boot
Before=systemd-networkd.service systemd-journald.service
After=local-fs.target
ConditionPathExists=!/etc/machine-id
[Service]
Type=oneshot
ExecStart=/bin/systemd-machine-id-setup
[Install]
WantedBy=multi-user.target
EOF
ln -s /etc/systemd/system/machineidgen.service /etc/systemd/system/multi-user.target.wants/machineidgen.service
rm /etc/machine-id
# Show IP address on console
cp /etc/issue /etc/issue.tpl
cat <<"EOF" > /usr/local/sbin/console-set-ip.sh
#!/bin/bash
cat /etc/issue.tpl > /etc/issue
(ip addr | grep inet | awk '{print $2}' | grep -vE '^(::|fe80|127\.0\.0)') 2>&1 >> /etc/issue
echo "" >> /etc/issue
EOF
chmod +x /usr/local/sbin/console-set-ip.sh
cat <<"EOF" > /etc/systemd/system/consoleip.service
[Unit]
Description=Display machine ip on console
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/console-set-ip.sh
[Install]
WantedBy=multi-user.target
EOF
ln -s /etc/systemd/system/consoleip.service /etc/systemd/system/multi-user.target.wants/consoleip.service
rm -f /etc/update-motd.d/50-motd-news /etc/update-motd.d/80-livepatch