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" | |