194 lines
4.0 KiB
Plaintext
194 lines
4.0 KiB
Plaintext
#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
|