aboutsummaryrefslogtreecommitdiff
path: root/files
diff options
context:
space:
mode:
Diffstat (limited to 'files')
-rw-r--r--files/pve-create-template.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/files/pve-create-template.sh b/files/pve-create-template.sh
new file mode 100644
index 0000000..58fc26a
--- /dev/null
+++ b/files/pve-create-template.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+usage() {
+ printf "%s\n" "usage: $(basename $0) -n <template name> -q <qcow image> -i <vm id>"
+ exit 1
+}
+
+while getopts "n:q:i:h" opts; do
+ case $opts in
+ n) name="${OPTARG}";;
+ q) qcow="${OPTARG}";;
+ i) vmid="${OPTARG}";;
+ h) usage
+ esac
+done
+
+if test "${name}" && test "${qcow}" && test "${vmid}"; then
+ if test -f "${qcow}"; then
+ qm create "${vmid}" \
+ --name "${name}" \
+ --memory 4096 \
+ --net0 virtio,bridge=vmbr0 \
+ --bootdisk scsi0 \
+ --boot order=scsi0
+
+ qm importdisk "${vmid}" "${qcow}" local-lvm
+
+ qm set "${vmid}" \
+ -scsihw virtio-scsi-pci \
+ -scsi0 "local-lvm:vm-"${vmid}"-disk-0"
+
+ qm template "${vmid}"
+ printf "%s\n" "[inf] created ${name} (${vmid}) from ${qcow}"
+ else
+ printf "%s\n" "[err] ${qcow} does not exist"
+ exit 1
+ fi
+else
+ usage
+fi