#cloud-config hostname: your-hostname manage_etc_hosts: true bootcmd: - | rm -f /etc/NetworkManager/system-connections/cloud-init-*.nmconnection || true nmcli connection reload # Detect the primary network interface primary_interface=$(ip -o link show | awk '$2 !~ "lo:" {print substr($2, 1, length($2)-1); exit}') # Write the network configuration for the primary interface cat < /etc/sysconfig/network-scripts/ifcfg-$primary_interface DEVICE=$primary_interface BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.82 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 DNS2=8.8.8.8 EOF # Restart the network service to apply the configuration if systemctl is-active --quiet NetworkManager; then nmcli connection reload nmcli device disconnect $primary_interface nmcli device connect $primary_interface else systemctl restart network fi runcmd: - | #!/bin/bash # Display a professional message on the console echo "Backup Assure is currently building. Please refrain from logging in until you see 'Backup Assure is ready' message." | tee /dev/console sleep 5 # Find unpartitioned disks unpartitioned_disks=($(lsblk -dnpo NAME,TYPE | awk '$2 == "disk" {print $1}' | while read disk; do if ! lsblk -no PARTTYPE "$disk" | grep -q .; then echo "$disk"; fi done)) num_disks=${#unpartitioned_disks[@]} if [ "$num_disks" -eq 1 ]; then echo "One additional unpartitioned disk found. Partitioning and mounting it to /backups" parted "${unpartitioned_disks[0]}" --script mklabel gpt sleep 2 parted "${unpartitioned_disks[0]}" --script mkpart primary ext4 0% 100% sleep 2 mkfs.ext4 "${unpartitioned_disks[0]}1" sleep 2 UUID=$(blkid -s UUID -o value "${unpartitioned_disks[0]}1") mkdir -p /backups mount -U "$UUID" /backups/ echo "UUID=$UUID /backups/ ext4 defaults 0 0" >> /etc/fstab mkdir -p /backups/rsync mkdir -p /backups/nfs elif [ "$num_disks" -eq 2 ]; then echo "Two additional unpartitioned disks found. Partitioning and mounting them" # Partition and format each disk for disk in "${unpartitioned_disks[@]}"; do parted "$disk" --script mklabel gpt sleep 2 parted "$disk" --script mkpart primary ext4 0% 100% sleep 2 mkfs.ext4 "${disk}1" sleep 2 done # Mount the first disk to /backups/nfs UUID_nfs=$(blkid -s UUID -o value "${unpartitioned_disks[0]}1") mkdir -p /backups/nfs mount -U "$UUID_nfs" /backups/nfs echo "UUID=$UUID_nfs /backups/nfs ext4 defaults 0 0" >> /etc/fstab # Mount the second disk to /backups/rsync UUID_rsync=$(blkid -s UUID -o value "${unpartitioned_disks[1]}1") mkdir -p /backups/rsync mount -U "$UUID_rsync" /backups/rsync echo "UUID=$UUID_rsync /backups/rsync ext4 defaults 0 0" >> /etc/fstab else echo "No unpartitioned disks found or unexpected number of disks ($num_disks). No action taken." fi # Clear the console after the script completes clear sleep 5