164 lines
3.2 KiB
Bash
164 lines
3.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
VMID=$(pvesh get /cluster/nextid)
|
|
HN="debian13"
|
|
BRG="dhcp"
|
|
CORE_COUNT="2"
|
|
RAM_SIZE="2048"
|
|
DISK_SIZE="40G"
|
|
|
|
echo "Création VM Debian 13 ID: $VMID"
|
|
|
|
URL="https://cloud.debian.org/images/cloud/trixie/latest/debian-13-genericcloud-amd64.qcow2"
|
|
FILE=$(basename "$URL")
|
|
|
|
TMPDIR=$(mktemp -d)
|
|
cd "$TMPDIR"
|
|
|
|
echo "Téléchargement image Debian 13..."
|
|
curl -fLO "$URL"
|
|
|
|
STORAGE="local-zfs"
|
|
|
|
qm create $VMID \
|
|
-name "$HN" \
|
|
-memory $RAM_SIZE \
|
|
-cores $CORE_COUNT \
|
|
-net0 virtio,bridge=$BRG \
|
|
-ostype l26 \
|
|
-scsihw virtio-scsi-pci \
|
|
-agent 1 \
|
|
-onboot 0
|
|
|
|
qm importdisk $VMID "$FILE" $STORAGE
|
|
|
|
qm set $VMID \
|
|
-scsi0 ${STORAGE}:vm-${VMID}-disk-0 \
|
|
-boot order=scsi0 \
|
|
-scsi1 ${STORAGE}:cloudinit
|
|
|
|
|
|
# DHCP IPv4 dans l'UI cloud-init
|
|
qm set "$VMID" --ipconfig0 ip=dhcp >/dev/null
|
|
|
|
# Root user + password via Proxmox cloud-init (fiable)
|
|
qm set "$VMID" --ciuser root --cipassword "root" >/dev/null
|
|
|
|
# Resize disque côté Proxmox
|
|
qm resize "$VMID" scsi0 "$DISK_SIZE" >/dev/null
|
|
|
|
# ===== Cloud-init FR + ROOT PASSWORD + PROXMOX AGENT =====
|
|
|
|
SNIPPET_DIR="/var/lib/vz/snippets"
|
|
mkdir -p "$SNIPPET_DIR"
|
|
|
|
cat > "$SNIPPET_DIR/${VMID}-user-data.yaml" <<EOF
|
|
#cloud-config
|
|
|
|
disable_root: false
|
|
ssh_pwauth: true
|
|
|
|
growpart:
|
|
mode: auto
|
|
devices: ["/"]
|
|
ignore_growroot_disabled: false
|
|
resize_rootfs: true
|
|
|
|
chpasswd:
|
|
list: |
|
|
root:root
|
|
expire: false
|
|
|
|
locale: fr_FR.UTF-8
|
|
|
|
packages:
|
|
- locales
|
|
- kbd
|
|
- console-setup
|
|
- keyboard-configuration
|
|
- qemu-guest-agent
|
|
|
|
write_files:
|
|
|
|
- path: /etc/default/grub.d/99-resolution.cfg
|
|
content: |
|
|
GRUB_GFXMODE=1920x1080
|
|
GRUB_GFXPAYLOAD_LINUX=keep
|
|
|
|
- path: /etc/default/keyboard
|
|
content: |
|
|
XKBLAYOUT="fr"
|
|
XKBMODEL="pc105"
|
|
|
|
- path: /etc/default/console-setup
|
|
content: |
|
|
ACTIVE_CONSOLES="/dev/tty[1-6]"
|
|
CHARMAP="UTF-8"
|
|
CODESET="Lat15"
|
|
FONTFACE="Fixed"
|
|
FONTSIZE="8x16"
|
|
KEYMAP="fr"
|
|
|
|
runcmd:
|
|
|
|
- update-grub
|
|
- setupcon -k || true
|
|
|
|
# Locale FR
|
|
- sed -i 's/^# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen
|
|
- locale-gen
|
|
- update-locale LANG=fr_FR.UTF-8
|
|
|
|
# Clavier console FR
|
|
- loadkeys fr || true
|
|
- setupcon -k || true
|
|
|
|
# Activation agent Proxmox
|
|
- systemctl enable qemu-guest-agent
|
|
- systemctl start qemu-guest-agent
|
|
EOF
|
|
|
|
qm set $VMID --cicustom "user=local:snippets/${VMID}-user-data.yaml"
|
|
|
|
DESCRIPTION=$(cat <<EOF
|
|
<b>Informations VM</b><br>
|
|
<ul>
|
|
<li><b>Hostname :</b> $HN</li>
|
|
<li><b>VMID :</b> $VMID</li>
|
|
<li><b>CPU :</b> $CORE_COUNT vCPU</li>
|
|
<li><b>RAM :</b> ${RAM_SIZE} MB</li>
|
|
<li><b>Disque :</b> $DISK_SIZE</li>
|
|
<li><b>Bridge :</b> $BRG</li>
|
|
<li><b>Réseau :</b> DHCP IPv4</li>
|
|
</ul>
|
|
|
|
<b>Accès</b><br>
|
|
<ul>
|
|
<li><b>Utilisateur :</b> root</li>
|
|
<li><b>Mot de passe :</b> root</li>
|
|
</ul>
|
|
|
|
<b>Configuration</b><br>
|
|
<ul>
|
|
<li>Cloud-Init activé</li>
|
|
<li>Clavier FR</li>
|
|
<li>Locale FR</li>
|
|
<li>QEMU Guest Agent installé</li>
|
|
<li>VM non démarrée automatiquement</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
<div align='center'>
|
|
<small>Provisionné automatiquement par AZYLIS</small>
|
|
</div>
|
|
EOF
|
|
)
|
|
|
|
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
|
|
|
|
|
echo "VM Debian 13 créée avec succès : $VMID"
|
|
echo "Bridge : dhcp | DHCP IPv4 | Clavier FR | root/root | Agent Proxmox OK"
|
|
echo "La VM n'est PAS démarrée automatiquement." |