-
-
Save tai271828/e70dc80daf0acd8c42a2b2e3042464ed to your computer and use it in GitHub Desktop.
Ubuntu 20.04.1 AutoInstall
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
# Docs: | |
- https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls | |
- https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls/ConfigReference | |
- https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html | |
- https://discourse.ubuntu.com/t/please-test-autoinstalls-for-20-04/15250/53 | |
# Download ISO Installer: | |
wget https://ubuntu.volia.net/ubuntu-releases/20.04.1/ubuntu-20.04.1-live-server-amd64.iso | |
# Create ISO distribution dirrectory: | |
mkdir -p iso/nocloud/ | |
# Extract ISO: | |
7z x ubuntu-20.04.1-live-server-amd64.iso -x'![BOOT]' -oiso | |
# Create empty meta-data file: | |
touch iso/nocloud/meta-data | |
# Copy user-data file: | |
cp user-data iso/nocloud/user-data | |
# Update boot flags with cloud-init autoinstall: | |
## Should look similar to this: initrd=/casper/initrd quiet autoinstall ds=nocloud;s=/cdrom/nocloud/ --- | |
sed -i 's|---|autoinstall ds=nocloud\\\;s=/cdrom/nocloud/ ---|g' iso/boot/grub/grub.cfg | |
sed -i 's|---|autoinstall ds=nocloud;s=/cdrom/nocloud/ ---|g' iso/isolinux/txt.cfg | |
# Disable mandatory md5 checksum on boot: | |
md5sum iso/README.diskdefines > iso/md5sum.txt | |
sed -i 's|iso/|./|g' iso/md5sum.txt | |
# (Optionally) Regenerate md5: | |
# The find will warn 'File system loop detected' and return non-zero exit status on the 'ubuntu' symlink to '.' | |
# To avoid that, temporarily move it out of the way | |
mv iso/ubuntu . | |
(cd iso; find '!' -name "md5sum.txt" '!' -path "./isolinux/*" -follow -type f -exec "$(which md5sum)" {} \; > ../md5sum.txt) | |
mv md5sum.txt iso/ | |
mv ubuntu iso | |
# Create Install ISO from extracted dir (ArchLinux): | |
xorriso -as mkisofs -r \ | |
-V Ubuntu\ custom\ amd64 \ | |
-o ubuntu-20.04.1-live-server-amd64-autoinstall.iso \ | |
-J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \ | |
-boot-load-size 4 -boot-info-table \ | |
-eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \ | |
-isohybrid-gpt-basdat -isohybrid-apm-hfsplus \ | |
-isohybrid-mbr /usr/lib/syslinux/bios/isohdpfx.bin \ | |
iso/boot iso | |
# Create Install ISO from extracted dir (Ubuntu): | |
xorriso -as mkisofs -r \ | |
-V Ubuntu\ custom\ amd64 \ | |
-o ubuntu-20.04.1-live-server-amd64-autoinstall.iso \ | |
-J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \ | |
-boot-load-size 4 -boot-info-table \ | |
-eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \ | |
-isohybrid-gpt-basdat -isohybrid-apm-hfsplus \ | |
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \ | |
iso/boot iso | |
# After install: | |
- login with 'root:root' and change root user password | |
- set correct hostname with 'hostnamectl' |
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
#cloud-config | |
autoinstall: | |
version: 1 | |
interactive-sections: | |
- network | |
- storage | |
locale: en_US.UTF-8 | |
keyboard: | |
layout: us | |
ssh: | |
allow-pw: true | |
install-server: false | |
late-commands: | |
- curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove apport bcache-tools btrfs-progs byobu cloud-guest-utils cloud-initramfs-copymods cloud-initramfs-dyn-netconf friendly-recovery fwupd landscape-common lxd-agent-loader ntfs-3g open-vm-tools plymouth plymouth-theme-ubuntu-text popularity-contest rsync screen snapd sosreport tmux ufw | |
- curtin in-target --target=/target -- apt-get --purge -y --quiet=2 autoremove | |
- curtin in-target --target=/target -- apt-get clean | |
- sed -i 's/ENABLED=1/ENABLED=0/' /target/etc/default/motd-news | |
- sed -i 's|# en_US.UTF-8 UTF-8|en_US.UTF-8 UTF-8|' /target/etc/locale.gen | |
- curtin in-target --target=/target -- locale-gen | |
- ln -fs /dev/null /target/etc/systemd/system/connman.service | |
- ln -fs /dev/null /target/etc/systemd/system/display-manager.service | |
- ln -fs /dev/null /target/etc/systemd/system/motd-news.service | |
- ln -fs /dev/null /target/etc/systemd/system/motd-news.timer | |
- ln -fs /dev/null /target/etc/systemd/system/plymouth-quit-wait.service | |
- ln -fs /dev/null /target/etc/systemd/system/plymouth-start.service | |
- ln -fs /dev/null /target/etc/systemd/system/systemd-resolved.service | |
- ln -fs /usr/share/zoneinfo/Europe/Kiev /target/etc/localtime | |
- rm -f /target/etc/resolv.conf | |
- printf 'nameserver 8.8.8.8\nnameserver 1.1.1.1\noptions timeout:1\noptions attempts:1\noptions rotate\n' > /target/etc/resolv.conf | |
- rm -f /target/etc/update-motd.d/10-help-text | |
- rm -rf /target/root/snap | |
- rm -rf /target/snap | |
- rm -rf /target/var/lib/snapd | |
- rm -rf /target/var/snap | |
- curtin in-target --target=/target -- passwd -q -u root | |
- curtin in-target --target=/target -- passwd -q -x -1 root | |
- curtin in-target --target=/target -- passwd -q -e root | |
- sed -i 's|^root:.:|root:$6$3b873df474b55246$GIpSsujar7ihMzG8urUKpzF9/2yZJhR.msyFRa5ouGXOKRCVszsc4aBcE2yi3IuFVxtAGwrPKin2WAzK3qOtB.:|' /target/etc/shadow | |
user-data: | |
disable_root: false |
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
#cloud-config | |
autoinstall: | |
version: 1 | |
interactive-sections: | |
- network | |
- storage | |
locale: en_US.UTF-8 | |
keyboard: | |
layout: us | |
ssh: | |
allow-pw: true | |
install-server: false | |
late-commands: | |
- curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove apport bcache-tools btrfs-progs byobu cloud-guest-utils cloud-initramfs-copymods cloud-initramfs-dyn-netconf friendly-recovery fwupd landscape-common lxd-agent-loader ntfs-3g open-vm-tools plymouth plymouth-theme-ubuntu-text popularity-contest screen snapd sosreport tmux ufw | |
- curtin in-target --target=/target -- apt-get -qq update | |
- curtin in-target --target=/target -- apt-get -y install wget gnupg python2.7 openssh-server | |
- curtin in-target --target=/target -- apt-get -qq update | |
- curtin in-target --target=/target -- apt-get -y dist-upgrade | |
- curtin in-target --target=/target -- apt-get --purge -y --quiet=2 autoremove | |
- sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /target/etc/ssh/sshd_config | |
- sed -i 's/ENABLED=1/ENABLED=0/' /target/etc/default/motd-news | |
- sed -i 's|# en_US.UTF-8 UTF-8|en_US.UTF-8 UTF-8|' /target/etc/locale.gen | |
- curtin in-target --target=/target -- locale-gen | |
- ln -fs /dev/null /target/etc/systemd/system/connman.service | |
- ln -fs /dev/null /target/etc/systemd/system/display-manager.service | |
- ln -fs /dev/null /target/etc/systemd/system/motd-news.service | |
- ln -fs /dev/null /target/etc/systemd/system/motd-news.timer | |
- ln -fs /dev/null /target/etc/systemd/system/plymouth-quit-wait.service | |
- ln -fs /dev/null /target/etc/systemd/system/plymouth-start.service | |
- ln -fs /dev/null /target/etc/systemd/system/systemd-resolved.service | |
- ln -fs /usr/share/zoneinfo/Europe/Kiev /target/etc/localtime | |
- rm -f /target/etc/resolv.conf | |
- printf 'nameserver 8.8.8.8\nnameserver 1.1.1.1\noptions timeout:1\noptions attempts:1\noptions rotate\n' > /target/etc/resolv.conf | |
- rm -f /target/etc/update-motd.d/10-help-text | |
- rm -rf /target/root/snap | |
- rm -rf /target/snap | |
- rm -rf /target/var/lib/snapd | |
- rm -rf /target/var/snap | |
- curtin in-target --target=/target -- passwd -q -u root | |
- curtin in-target --target=/target -- passwd -q -x -1 root | |
- curtin in-target --target=/target -- passwd -q -e root | |
- sed -i 's|^root:.:|root:$6$3b873df474b55246$GIpSsujar7ihMzG8urUKpzF9/2yZJhR.msyFRa5ouGXOKRCVszsc4aBcE2yi3IuFVxtAGwrPKin2WAzK3qOtB.:|' /target/etc/shadow | |
- sed -i 's/ext4 defaults/ext4 prjquota,lazytime/g' /target/etc/fstab | |
- findmnt --real -U -n -t ext4 -o source | awk '{system("umount -l "$1)}' | |
- blkid -t TYPE="ext4" -o device | awk '{system("tune2fs -O project,quota -Q prjquota "$1)}' | |
user-data: | |
disable_root: false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment