# For recent versions of Ubuntu: | |
- https://www.pugetsystems.com/labs/hpc/ubuntu-22-04-server-autoinstall-iso/ | |
# 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.3/ubuntu-20.04.3-live-server-amd64.iso | |
# Create ISO distribution dirrectory: | |
mkdir -p iso/nocloud/ | |
# Extract ISO using 7z: | |
7z x ubuntu-20.04.3-live-server-amd64.iso -x'![BOOT]' -oiso | |
# Or extract ISO using xorriso and fix permissions: | |
xorriso -osirrox on -indev "ubuntu-20.04.3-live-server-amd64.iso" -extract / iso && chmod -R +w iso | |
# 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/.disk/info > 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.3-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.3-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' |
#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 |
#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 |
While booting i was appeared like this @s3rj1k @dmuiX @zero-pytagoras @soutrikand @sjerman @mcginty @onedr0p @SimplySeth
I am using this userdata file
#cloud-config
autoinstall:
refresh-installer:
update: yes
locale: en_US.UTF-8
interactive-sections
network:
ethernets:
eno8303:
dhcp4: true
eno8403:
dhcp4: true
enp2s0f0np0:
dhcp4: true
enp2s0f1np1:
dhcp4: true
version: 2
kernel:
package: linux-generic
keyboard:
layout: us
ssh:
allow-pw: true
install-server: true
storage:
config:
- ptable: gpt
serial: 362cea7f0bf55ec002a9f5df208c726db
wwn: '0x62cea7f0bf55ec002a9f5df208c726db'
path: /dev/sda
wipe: superblock-recursive
preserve: false
name: ''
grub_device: false
type: disk
id: disk-sda
- device: disk-sda
size: 1127219200
wipe: superblock
flag: boot
number: 1
preserve: false
grub_device: true
offset: 1048576
type: partition
id: partition-0
- fstype: fat32
volume: partition-0
preserve: false
type: format
id: format-0
- device: disk-sda
size: 2147483648
wipe: superblock
number: 2
preserve: false
grub_device: false
offset: 1128267776
type: partition
id: partition-1
- fstype: ext4
volume: partition-1
preserve: false
type: format
id: format-1
- device: disk-sda
size: 955843084288
wipe: superblock
number: 3
preserve: false
grub_device: false
offset: 3275751424
type: partition
id: partition-2
- name: ubuntu-vg
devices:
- partition-2
preserve: false
type: lvm_volgroup
id: lvm_volgroup-0
- name: ubuntu-lv
volgroup: lvm_volgroup-0
size: 107374182400B
wipe: superblock
preserve: false
type: lvm_partition
id: lvm_partition-0
fstype: ext4
volume: lvm_partition-0
preserve: false
type: format
id: format-2
- path: /
device: format-2
type: mount
id: mount-2
- path: /boot
device: format-1
type: mount
id: mount-1
- path: /boot/efi
device: format-0
type: mount
id: mount-0
updates: security
version: 1
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
you are missing interactive
with storage.
#cloud-config
autoinstall:
version: 1
interactive-sections:
- network
- storage
identity: {hostname: HOSTNAME, password: "ENCRYPTED-PASSWORD", username: USERNAME}
locale: en_US.UTF-8
keyboard:
layout: us
ssh:
allow-pw: true
install-server: true
layout:
name: lvm
late-commands:
- curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove apport bcache-tools btrfs-progs byobu friendly-recovery fwupd landscape-common lxd-agent-loader ntfs-3g open-vm-tools plymouth plymouth-theme-ubuntu-text popularity-contest rsync screen 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
user-data:
disable_root: false
zero
Is it possible to do without interacting anything network and storage
you really need to read this
#cloud-config
autoinstall:
version: 1
identity: {hostname: HOSTNAME, password: "ENCRYPTED-PASSWORD", username: USERNAME}
locale: en_US.UTF-8
keyboard:
layout: us
ssh:
allow-pw: true
install-server: true
network:
version: 2
ethernets:
eno1:
match:
name: en*
dhcp4: true
storage:
config:
- {name: ubuntu-vg, devices:[partition-2], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0 }
- {name: ubuntu-lv, volgroup: lvm_volgroup-0, size: 10GB, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_part-0}
- {fstype: ext4, volume: lvm_part-0, preserve: false, type: format, id: fmt-2 }
- {path: /, device: fmt-2, type: mount, id: mnt-2}
- {path: /boot, device: fmt-1, type: mount, id: mnt-1}
- {path: /boot/efi, device: fmt-0, type: mount, id: mnt-0}
late-commands:
- curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove apport bcache-tools btrfs-progs byobu friendly-recovery fwupd landscape-common lxd-agent-loader ntfs-3g open-vm-tools plymouth plymouth-theme-ubuntu-text popularity-contest rsync screen 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
user-data:
disable_root: false
you really need to read this
#cloud-config autoinstall: version: 1 identity: {hostname: HOSTNAME, password: "ENCRYPTED-PASSWORD", username: USERNAME} locale: en_US.UTF-8 keyboard: layout: us ssh: allow-pw: true install-server: true network: version: 2 ethernets: eno1: match: name: en* dhcp4: true storage: config: - {name: ubuntu-vg, devices:[partition-2], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0 } - {name: ubuntu-lv, volgroup: lvm_volgroup-0, size: 10GB, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_part-0} - {fstype: ext4, volume: lvm_part-0, preserve: false, type: format, id: fmt-2 } - {path: /, device: fmt-2, type: mount, id: mnt-2} - {path: /boot, device: fmt-1, type: mount, id: mnt-1} - {path: /boot/efi, device: fmt-0, type: mount, id: mnt-0} late-commands: - curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove apport bcache-tools btrfs-progs byobu friendly-recovery fwupd landscape-common lxd-agent-loader ntfs-3g open-vm-tools plymouth plymouth-theme-ubuntu-text popularity-contest rsync screen 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 user-data: disable_root: false
Thank you so much @zero-pytagoras
Let me try now
per request earlier here's my most recent post on this stuff.
https://www.pugetsystems.com/labs/hpc/ubuntu-22-04-server-autoinstall-iso/
@bashadude you should thank @dbkinghorn : his initial tutorial and guidance led me to answers.... lemme know if t works for you.
FYI:
Ubuntu autoinstall is not the same as cloud-Init. It is based on cloud-Init but uses some additional commands.
@dmuiX mind sharing docs on ubuntu install ? I've used official ubuntu cloud-init docs but they are not very informative or clear.
@bashadude - any success ?
you really need to read this
#cloud-config autoinstall: version: 1 identity: {hostname: HOSTNAME, password: "ENCRYPTED-PASSWORD", username: USERNAME} locale: en_US.UTF-8 keyboard: layout: us ssh: allow-pw: true install-server: true network: version: 2 ethernets: eno1: match: name: en* dhcp4: true storage: config: - {name: ubuntu-vg, devices:[partition-2], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0 } - {name: ubuntu-lv, volgroup: lvm_volgroup-0, size: 10GB, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_part-0} - {fstype: ext4, volume: lvm_part-0, preserve: false, type: format, id: fmt-2 } - {path: /, device: fmt-2, type: mount, id: mnt-2} - {path: /boot, device: fmt-1, type: mount, id: mnt-1} - {path: /boot/efi, device: fmt-0, type: mount, id: mnt-0} late-commands: - curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove apport bcache-tools btrfs-progs byobu friendly-recovery fwupd landscape-common lxd-agent-loader ntfs-3g open-vm-tools plymouth plymouth-theme-ubuntu-text popularity-contest rsync screen 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 user-data: disable_root: falseThank you so much @zero-pytagoras Let me try now
@bashadude - any update ?
@dmuiX mind sharing docs on ubuntu install ? I've used official ubuntu cloud-init docs but they are not very informative or clear.
I shared one link above.
Don’t think that I used anything else. I can look if I find something else.
But overall:
To me it the auto-install seemed like it did not work very well for what I wanted to do so I first switched to entering commands manual after install and then to multipass and cloud-Init.
If I remember it correctly I could not change the ipadress and set dns-resolving to a different nameserver via late-command. So I said fuckit i will make it manual or use something else. In cloud-Init this works actually pretty well.
@bashadude - any success ?
you really need to read this
#cloud-config autoinstall: version: 1 identity: {hostname: HOSTNAME, password: "ENCRYPTED-PASSWORD", username: USERNAME} locale: en_US.UTF-8 keyboard: layout: us ssh: allow-pw: true install-server: true network: version: 2 ethernets: eno1: match: name: en* dhcp4: true storage: config: - {name: ubuntu-vg, devices:[partition-2], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0 } - {name: ubuntu-lv, volgroup: lvm_volgroup-0, size: 10GB, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_part-0} - {fstype: ext4, volume: lvm_part-0, preserve: false, type: format, id: fmt-2 } - {path: /, device: fmt-2, type: mount, id: mnt-2} - {path: /boot, device: fmt-1, type: mount, id: mnt-1} - {path: /boot/efi, device: fmt-0, type: mount, id: mnt-0} late-commands: - curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove apport bcache-tools btrfs-progs byobu friendly-recovery fwupd landscape-common lxd-agent-loader ntfs-3g open-vm-tools plymouth plymouth-theme-ubuntu-text popularity-contest rsync screen 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 user-data: disable_root: falseThank you so much @zero-pytagoras Let me try now
@bashadude - any update ?
same error @zero-pytagoras
ok please share me if you find to autoinstall of ubuntu 22.04 @dmuiX i am facing error and got an headache work on this please ping if you find something
I can just repeat what i have written before. If it’s possible for you use cloud-Init. Works better in my opinion^^
@bashadude can you show the output of crash report. it is in /var/crash
folder
I've tested the yaml that i attached on virtual-box and it worked fine.
it seems you have some kind of problem with curtin that is implementing apt-config
and also interface it finds is eno8303 or eno8403 so that also needs to be fixedmay be with crash report i could debug it better... eventually is should look like this:
#cloud-config
autoinstall:
version: 1
identity: {hostname: ubuntu22, password: $6$PiTL.ZmMVYG6U4q4$qa8lkOtlAAioKLKqt1q1Ci03HUAE4xRnhrvNd1x1oaSVoma2sTRCHtvt2/QV61tn0QQF6m2e/n0Uf1fQ/3yid0, username: ubuntu}
keyboard:
layout: us
locale: En_Us.UTF-8
ssh:
allow-pw: true
install-server: true
network:
version: 2
ethernets:
eno8303:
match:
name: en*
dhcp4: true
storage:
config:
- {name: ubuntu-vg, devices:[partition-2], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0 }
- {name: ubuntu-lv, volgroup: lvm_volgroup-0, size: 10GB, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_part-0}
- {fstype: ext4, volume: lvm_part-0, preserve: false, type: format, id: fmt-2 }
- {path: /, device: fmt-2, type: mount, id: mnt-2}
- {path: /boot, device: fmt-1, type: mount, id: mnt-1}
- {path: /boot/efi, device: fmt-0, type: mount, id: mnt-0}
late-commands:
- sed -i 's/ENABLED=1/ENABLED=0/' /target/etc/default/motd-news
- 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
user-data:
disable_root: false
@zero-pytagoras In crash file "segmentation fault"
seg-fault is usually default error meaning that something is missing
try going over on all variables in user-data
file: use this tutorial as well https://www.jimangel.io/posts/automate-ubuntu-22-04-lts-bare-metal/
Hi All @s3rj1k @dmuiX @zero-pytagoras @soutrikand @sjerman @mcginty @onedr0p @SimplySeth
subiquity/Errorreporter/162334394239423.block_probe_fail : written to /var/crash
#cloud-config
autoinstall:
version: 1
locale: en_US.UTF-8
identity:
hostname: amd
password: $6$my3sWAA0IHiGgCZB$8ZJXJn3WpHj3Q0grUkz9zrcLTdkn1pO5W.VYYbx/kfjPHIKeZvYLIwVQ2cWP8TAnDyi1XWvGZsVBDsw5fdFGM1
realname: ubuntu
username: amd
kernel:
package: linux-generic
network:
version: 2
ethernets:
eno1:
match:
name: en*
dhcp4: true
network:
ethernets:
eno8303:
# dhcp4: true
# eno8403:
# dhcp4: true
# enp2s0f0np0:
# dhcp4: true
# enp2s0f1np1:
# dhcp4: true
version: 2
kernel:
package: linux-generic
keyboard:
layout: us
ssh:
allow-pw: true
install-server: true
storage:
config:
- {name: ubuntu-vg, devices:[partition-2], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0 }
- {name: ubuntu-lv, volgroup: lvm_volgroup-0, size: 10GB, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_part-0}
- {fstype: ext4, volume: lvm_part-0, preserve: false, type: format, id: fmt-2 }
- {path: /, device: fmt-2, type: mount, id: mnt-2}
- {path: /boot, device: fmt-1, type: mount, id: mnt-1}
- {path: /boot/efi, device: fmt-0, type: mount, id: mnt-0}
updates: security
version: 1
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
Please help me to debug guys
Please stop typing direct mentions.
Please stop typing direct mentions.
ok
@bashadude
remove the curtin command listed below
- 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
@bashadude remove the curtin command listed below
- 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
@zero-pytagoras Thanks for sharing
I will update after this
@dbkinghorn Can you maybe stop referring to your blog? One refer would have been enough, thanks.
P.S. I've added a link to your blog at the begging of howto, still if you want to contribute, please post full answers here.
Oh man, I'm so sorry! I've been getting questions in my email from more than one place on this. I've been careless about checking where I'm replying. Gist comments can get out of hand! I blew away my last comment. Wish you all the best --Don
Hi All @s3rj1k @dbkinghorn @zero-pytagoras @dmuiX I am stuck in last step can you please help me to debug this
After running of my late commands i got this error
These are my late commands:
- |
set -ex
EFI_DEV=$(awk '$2 == "/target/boot/efi" { print $1 }' /proc/mounts)
ROOT_DEV=$(awk '$2 ~ "^/target$" { print $1 }' /proc/mounts)
ROOT_UUID=$(blkid -o value $ROOT_DEV | head -n 1)
awk '$2 ~ "^/target/" { print $2 }' /proc/mounts | xargs umount
btrfs subvolume snapshot /target /target/rootfs
mkdir /mnt/rootfs
mount -o subvol=rootfs $ROOT_DEV /mnt/rootfs
mount $EFI_DEV /mnt/rootfs/boot/efi
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /sys /mnt/rootfs/sys
mount -o bind /proc /mnt/rootfs/proc
sed -i "/$ROOT_UUID/s/defaults/defaults,noatime,subvol=rootfs/" /mnt/rootfs/etc/fstab
chroot /mnt/rootfs update-grub
chroot /mnt/rootfs grub-install --efi-directory=/boot/efi
find /target -mindepth 1 -maxdepth 1 -not -name rootfs -exec rm -rf '{}' ;
btrfs subvolume create /target/home
echo "/dev/disk/by-uuid/$ROOT_UUID /home btrfs defaults,noatime,subvol=home 0 0" >> /mnt/rootfs/etc/fstab
TBH it is not clear what you are trying to do any more...
you do need to add /target
to bunch of places if you wish to change partitions. for example:
/mnt/rootfs/etc/fstab
is suppose to be /target/mnt/rootfs/etc/fstab
The installation of ubuntu22.04 through uefi mode pxe is successful, but after restarting, it will enter the pxe network installation instead of booting from the local hard disk. The default hard disk booting is the first boot item. Is there any way to solve this problem?
it was removing or purge the packages