diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c8f98d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +ssh-keys.pub diff --git a/README.md b/README.md new file mode 100644 index 0000000..21ea4c5 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +A simple script to download and a create a cloud init ready Ubuntu LTS vm. diff --git a/ssh-keys.pub.dist b/ssh-keys.pub.dist new file mode 100644 index 0000000..e69de29 diff --git a/ubuntu-lts.sh b/ubuntu-lts.sh new file mode 100644 index 0000000..1d53df0 --- /dev/null +++ b/ubuntu-lts.sh @@ -0,0 +1,46 @@ +#!/bin/bash +CURL_LAST_LTS_RELEASE=$(curl -s https://changelogs.ubuntu.com/meta-release-lts | grep Dist: | tail -n1) +LAST_LTS_RELEASE=${CURL_LAST_LTS_RELEASE:6} + +if [ "$EUID" -ne 0 ]; then + echo "Please run as root" + exit +fi + +if [ ! -f "ssh-keys.pub" ]; then + echo "Warning ssh-keys.pub doesn't exists" + echo "Will abort now" + exit +fi + +echo "VM ID" +read -r VM_ID +echo "VM Name?" +read -r VM_NAME + +echo "Image download" +wget https://cloud-images.ubuntu.com/"$LAST_LTS_RELEASE"/current/"$LAST_LTS_RELEASE-server-cloudimg-amd64.img" +apt install libguestfs-tools -y + +echo "Install qemu-guest-agent on Ubuntu image" +virt-customize -a "$LAST_LTS_RELEASE-server-cloudimg-amd64.img" --install qemu-guest-agent + +echo "Create Proxmox VM image from Ubuntu Cloud Image" +qm create "$VM_ID" --memory 1024 --balloon 0 --cores 2 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci +qm set "$VM_ID" --scsi0 local-lvm:0,import-from="$LAST_LTS_RELEASE-server-cloudimg-amd64.img" +qm set "$VM_ID" --agent enabled=1,fstrim_cloned_disks=1 + +echo "Create Cloud-Init Disk and configure boot" +qm set "$VM_ID" --ide2 local-lvm:cloudinit +qm set "$VM_ID" --boot order=scsi0 + +echo "Configure vm" +qm set "$VM_ID" \ + --name "$VM_NAME" \ + --onboot 1 \ + --ciuser "devops" \ + --sshkeys ssh-keys.pub \ + --ipconfig0 "ip=dhcp,ip6=dhcp" + +echo "Delete downloaded image" +rm -f "$LAST_LTS_RELEASE-server-cloudimg-amd64.img"