Ultima attività 3 weeks ago

Working version of my proxmox template creation script. It'll be used to provision Packer with necessary templates in order to build it's image.

vorpax ha revisionato questo gist 1 month ago. Vai alla revisione

1 file changed, 1 insertion, 1 deletion

create-pve-template.sh

@@ -42,7 +42,7 @@ mkdir -p ssh_keys_tmp
42 42 SSH_KEYS_ARGS=""
43 43 while IFS= read -r key; do
44 44 [ -z "$key" ] && continue
45 - SSH_KEYS_ARGS+=" --sshkeys $key"
45 + SSH_KEYS_ARGS+=" --sshkey $key"
46 46 done <<< "$SSH_KEYS"
47 47
48 48 qm set "$VMID" \

vorpax ha revisionato questo gist 1 month ago. Vai alla revisione

Nessuna modifica

vorpax ha revisionato questo gist 1 month ago. Vai alla revisione

1 file changed, 1 insertion, 1 deletion

create-pve-template.sh

@@ -5,7 +5,7 @@ TEMPLATE_URL="https://cloud-images.ubuntu.com/plucky/current/plucky-server-cloud
5 5 VMID=9000
6 6 TEMPLATE_NAME="ubuntu-25.04-cloudimg-temp"
7 7 STORAGE="local-lvm"
8 - SSH_KEYS=$(curl -s https://gist.vorpax.dev/vorpax/ssh) # One key per line
8 + SSH_KEYS=$(curl -s https://gist.vorpax.dev/vorpax/ssh/raw/HEAD/ssh-keys.pub)
9 9
10 10 # positional args first (optional)
11 11 [ -n "$1" ] && VMID="$1"

vorpax ha revisionato questo gist 1 month ago. Vai alla revisione

1 file changed, 12 insertions, 11 deletions

create-pve-template.sh

@@ -1,21 +1,19 @@
1 1 #!/bin/bash
2 -
3 2 set -e
4 3
5 4 TEMPLATE_URL="https://cloud-images.ubuntu.com/plucky/current/plucky-server-cloudimg-amd64.img"
6 5 VMID=9000
7 6 TEMPLATE_NAME="ubuntu-25.04-cloudimg-temp"
8 7 STORAGE="local-lvm"
8 + SSH_KEYS=$(curl -s https://gist.vorpax.dev/vorpax/ssh) # One key per line
9 9
10 - SSH_KEY=$(curl https://gist.vorpax.dev/vorpax/ssh) # One key per line
11 -
12 - # Arguments positionnels d'abord (optional)
10 + # positional args first (optional)
13 11 [ -n "$1" ] && VMID="$1"
14 12 [ -n "$2" ] && TEMPLATE_NAME="$2"
15 13 [ -n "$3" ] && STORAGE="$3"
16 14
17 - # Puis arguments nommés override (optional)
18 - while [[ $# -gt 4 ]]; do
15 + # overrides (still optional)
16 + while [[ $# -gt 3 ]]; do
19 17 shift
20 18 case "$1" in
21 19 --vmid=*) VMID="${1#*=}" ;;
@@ -38,11 +36,14 @@ qm create "$VMID" \
38 36
39 37 qm importdisk "$VMID" "${TEMPLATE_NAME}_disk" "$STORAGE"
40 38
39 + mkdir -p ssh_keys_tmp
41 40
42 - mkdir ssh_keys_tmp
43 - SSH_KEY_PATH="ssh_keys_tmp/$($(date +%s)).pub"
44 - echo SSH_KEY > "${SSH_KEY_PATH}"
45 41
42 + SSH_KEYS_ARGS=""
43 + while IFS= read -r key; do
44 + [ -z "$key" ] && continue
45 + SSH_KEYS_ARGS+=" --sshkeys $key"
46 + done <<< "$SSH_KEYS"
46 47
47 48 qm set "$VMID" \
48 49 --scsihw virtio-scsi-pci \
@@ -52,8 +53,8 @@ qm set "$VMID" \
52 53 --serial0 socket --vga serial0 \
53 54 --net0 virtio,bridge=vmbr0 \
54 55 --ciuser packer \
55 - --sshkeys
56 - --searchdomain
56 + --searchdomain example.com \
57 + $SSH_KEYS_ARGS
57 58
58 59 qm template "$VMID"
59 60

vorpax ha revisionato questo gist 1 month ago. Vai alla revisione

1 file changed, 11 insertions, 1 deletion

create-pve-template.sh

@@ -7,6 +7,7 @@ VMID=9000
7 7 TEMPLATE_NAME="ubuntu-25.04-cloudimg-temp"
8 8 STORAGE="local-lvm"
9 9
10 + SSH_KEY=$(curl https://gist.vorpax.dev/vorpax/ssh) # One key per line
10 11
11 12 # Arguments positionnels d'abord (optional)
12 13 [ -n "$1" ] && VMID="$1"
@@ -37,13 +38,22 @@ qm create "$VMID" \
37 38
38 39 qm importdisk "$VMID" "${TEMPLATE_NAME}_disk" "$STORAGE"
39 40
41 +
42 + mkdir ssh_keys_tmp
43 + SSH_KEY_PATH="ssh_keys_tmp/$($(date +%s)).pub"
44 + echo SSH_KEY > "${SSH_KEY_PATH}"
45 +
46 +
40 47 qm set "$VMID" \
41 48 --scsihw virtio-scsi-pci \
42 49 --scsi0 "${STORAGE}:vm-${VMID}-disk-0" \
43 50 --ide2 "${STORAGE}:cloudinit" \
44 51 --boot c --bootdisk scsi0 \
45 52 --serial0 socket --vga serial0 \
46 - --net0 virtio,bridge=vmbr0
53 + --net0 virtio,bridge=vmbr0 \
54 + --ciuser packer \
55 + --sshkeys
56 + --searchdomain
47 57
48 58 qm template "$VMID"
49 59

vorpax ha revisionato questo gist 1 month ago. Vai alla revisione

1 file changed, 50 insertions

create-pve-template.sh(file creato)

@@ -0,0 +1,50 @@
1 + #!/bin/bash
2 +
3 + set -e
4 +
5 + TEMPLATE_URL="https://cloud-images.ubuntu.com/plucky/current/plucky-server-cloudimg-amd64.img"
6 + VMID=9000
7 + TEMPLATE_NAME="ubuntu-25.04-cloudimg-temp"
8 + STORAGE="local-lvm"
9 +
10 +
11 + # Arguments positionnels d'abord (optional)
12 + [ -n "$1" ] && VMID="$1"
13 + [ -n "$2" ] && TEMPLATE_NAME="$2"
14 + [ -n "$3" ] && STORAGE="$3"
15 +
16 + # Puis arguments nommés override (optional)
17 + while [[ $# -gt 4 ]]; do
18 + shift
19 + case "$1" in
20 + --vmid=*) VMID="${1#*=}" ;;
21 + --template=*) TEMPLATE_NAME="${1#*=}" ;;
22 + --storage=*) STORAGE="${1#*=}" ;;
23 + esac
24 + done
25 +
26 + cd /tmp
27 + wget -O "${TEMPLATE_NAME}_disk" \
28 + "$TEMPLATE_URL"
29 +
30 + qm create "$VMID" \
31 + --name "$TEMPLATE_NAME" \
32 + --memory 3072 \
33 + --cores 3 \
34 + --net0 virtio,bridge=vmbr0 \
35 + --serial0 socket \
36 + --vga serial0
37 +
38 + qm importdisk "$VMID" "${TEMPLATE_NAME}_disk" "$STORAGE"
39 +
40 + qm set "$VMID" \
41 + --scsihw virtio-scsi-pci \
42 + --scsi0 "${STORAGE}:vm-${VMID}-disk-0" \
43 + --ide2 "${STORAGE}:cloudinit" \
44 + --boot c --bootdisk scsi0 \
45 + --serial0 socket --vga serial0 \
46 + --net0 virtio,bridge=vmbr0
47 +
48 + qm template "$VMID"
49 +
50 + echo "Template $VMID ready for Packer"
Più nuovi Più vecchi