#cloud-config autoinstall: version: 1 locale: en_US keyboard: layout: us identity: hostname: AutomationNVMeTesting # From kickstart configuration we'll take the 1st server user username: ss7841 password: '$6$jFWfLrc4szPLn/$d3ugo7ogEUjZWTpYBAxINBW2rzZmteURwQ6Mj05RqKloPapHjEbGYSx/hE1NxGi3rjy.mFCtgLExaOcpuEgiQ.' kernel: {package: linux-generic} ssh: { allow-pw: true, authorized-keys: [], install-server: true } early-commands: - | #!/bin/bash # Determine the first disk ROOTDRIVE=$(lsblk -ido KNAME,TYPE,SIZE,MODEL | grep -E '^(nvme|sd)' | grep disk | awk -F' ' 'NR==1{print $1}') echo "Disk:$ROOTDRIVE" # Replace the placeholder with the actual disk name in the storage configuration sed -i "s|DISK_NAME_VARIABLE|$ROOTDRIVE|g" /autoinstall.yaml - sleep 2m storage: config: # Install GRUB in MBR - { ptable: gpt, path: /dev/DISK_NAME_VARIABLE, wipe: superblock-recursive, preserve: false, name: '', grub_device: true, type: disk, id: disk-DISK_NAME_VARIABLE } # BIOS boot partition - { device: disk-DISK_NAME_VARIABLE, size: 1048576, wipe: superblock, flag: bios_grub, number: 1, preserve: false, type: partition, id: partition-0 } - { device: disk-DISK_NAME_VARIABLE, size: 2147483648, wipe: superblock, number: 2, preserve: false, grub_device: false, type: partition, id: partition-1 } - { fstype: ext4, volume: partition-1, preserve: false, type: format, id: format-0 } - { device: disk-DISK_NAME_VARIABLE, size: -1, wipe: superblock, flag: '', number: 3, preserve: false, grub_device: false, 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: -1, wipe: superblock, preserve: false, type: lvm_partition, id: lvm_partition-0 } - { fstype: ext4, volume: lvm_partition-0, preserve: false, type: format, id: format-1 } - { path: /, device: format-1, type: mount, id: mount-1 } - { path: /boot, device: format-0, type: mount, id: mount-0 } late-commands: - | # Set hashed root password echo 'root:$6$rounds=4096$abcdefghijklmnopqrstuvw$6$tCIhhKY24B8NRqA5$8iAvMkg3I.QUtl6GtRa.mPwadQJBFz7wZ233ffJ3J/vfcxFH3TVD.EiEw6F5VysB8xIObkPu7uMhAaG6tHeKT.' | chpasswd -e # Remove the existing netplan configuration file rm /target/etc/netplan/00-installer-config.yaml # Detect Ethernet interfaces and store them in variables BACKEND_INTERFACE=$(ip ntable | grep dev | sort | uniq | sed -e 's/^.*dev //;/^lo/d' | head -n 1 | tail -n 1 | xargs) FRONTEND_INTERFACE=$(ip ntable | grep dev | sort | uniq | sed -e 's/^.*dev //;/^lo/d' | head -n 2 | tail -n 1 | xargs) # Generate the new netplan configuration file using the detected interfaces cat < /target/etc/netplan/00-installer-config.yaml network: version: 2 renderer: networkd ethernets: $BACKEND_INTERFACE: dhcp4: false $FRONTEND_INTERFACE: dhcp4: false addresses: [184.164.157.34/29,184.164.157.35/29,184.164.157.36/29,184.164.157.37/29,184.164.157.38/29] gateway4: 184.164.157.33 nameservers: addresses: [8.8.8.8,8.8.4.4] EOF - chage -M 2 ss7841 - wget -b -O /dev/null 'http://192.168.200.2/automation/completeKickstartInstallation.php?kickstartInstallationId=74811&securityKey=yfhxtbfryttaahmrpirltcrnnpblftpl' #updates: security