Actualiser debian12-fr.sh
This commit is contained in:
@@ -26,7 +26,9 @@ NSAPP="debian12vm"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
|
||||
# ---- FR locale / keyboard (cloud-init) ----
|
||||
# ==========================
|
||||
# FR locale / keyboard (cloud-init) - robust
|
||||
# ==========================
|
||||
LOCALE="${LOCALE:-fr_FR.UTF-8}"
|
||||
KB_LAYOUT="${KB_LAYOUT:-fr}" # fr / be / us ...
|
||||
CONSOLE_KEYMAP="${CONSOLE_KEYMAP:-fr}" # fr / fr-latin9 ...
|
||||
@@ -223,9 +225,15 @@ function default_settings() {
|
||||
MAC="$GEN_MAC"
|
||||
VLAN=""
|
||||
MTU=""
|
||||
START_VM="yes"
|
||||
|
||||
# ---- IMPORTANT: enable cloud-init by default to enforce FR keyboard/locale ----
|
||||
# ==========================
|
||||
# Boot behavior (requested)
|
||||
# - Do NOT start VM at end of script
|
||||
# - Do NOT autostart on Proxmox reboot
|
||||
# ==========================
|
||||
START_VM="no"
|
||||
|
||||
# Enable cloud-init by default to enforce FR locale/keyboard reliably
|
||||
CLOUD_INIT="yes"
|
||||
|
||||
METHOD="default"
|
||||
@@ -242,7 +250,7 @@ function default_settings() {
|
||||
echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}"
|
||||
echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}Default${CL}"
|
||||
echo -e "${CLOUD}${BOLD}${DGN}Configure Cloud-init: ${BGN}yes${CL}"
|
||||
echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}"
|
||||
echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}no${CL}"
|
||||
echo -e "${CREATING}${BOLD}${DGN}Creating a Debian 12 VM using the above default settings${CL}"
|
||||
}
|
||||
|
||||
@@ -367,7 +375,6 @@ function advanced_settings() {
|
||||
BRG="vmbr0"
|
||||
echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}"
|
||||
else
|
||||
BRG="$BRG"
|
||||
echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}"
|
||||
fi
|
||||
else
|
||||
@@ -412,7 +419,7 @@ function advanced_settings() {
|
||||
exit-script
|
||||
fi
|
||||
|
||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "CLOUD-INIT" --yesno "Configure the VM with Cloud-init? (Required for FR keyboard/locale)" 10 66); then
|
||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "CLOUD-INIT" --yesno "Configure the VM with Cloud-init? (Recommended for FR keyboard/locale)" 10 70); then
|
||||
echo -e "${CLOUD}${BOLD}${DGN}Configure Cloud-init: ${BGN}yes${CL}"
|
||||
CLOUD_INIT="yes"
|
||||
else
|
||||
@@ -420,7 +427,8 @@ function advanced_settings() {
|
||||
CLOUD_INIT="no"
|
||||
fi
|
||||
|
||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then
|
||||
# Requested: do not start automatically => default is NO
|
||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --defaultno --yesno "Start VM when completed?" 10 58); then
|
||||
echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}"
|
||||
START_VM="yes"
|
||||
else
|
||||
@@ -526,8 +534,14 @@ for i in {0,1}; do
|
||||
done
|
||||
|
||||
msg_info "Creating a Debian 12 VM"
|
||||
|
||||
# ==========================
|
||||
# Boot behavior (requested)
|
||||
# -onboot 0 => no autostart on Proxmox reboot
|
||||
# ==========================
|
||||
qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \
|
||||
-name $HN -tags community-script -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
|
||||
-name $HN -tags community-script -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 0 -ostype l26 -scsihw virtio-scsi-pci
|
||||
|
||||
pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null
|
||||
qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null
|
||||
|
||||
@@ -539,37 +553,59 @@ if [ "$CLOUD_INIT" == "yes" ]; then
|
||||
-boot order=scsi0 \
|
||||
-serial0 socket >/dev/null
|
||||
|
||||
# ---- Cloud-init: force FR locale + keyboard (AZERTY) ----
|
||||
# ==========================
|
||||
# Cloud-init user-data (robust FR locale + keyboard)
|
||||
# Requires storage "local" has snippets enabled
|
||||
# ==========================
|
||||
SNIPPET_DIR="/var/lib/vz/snippets"
|
||||
mkdir -p "${SNIPPET_DIR}"
|
||||
USERDATA_FILE="${SNIPPET_DIR}/${VMID}-user-data.yaml"
|
||||
|
||||
cat > "${USERDATA_FILE}" <<EOF
|
||||
#cloud-config
|
||||
locale: ${LOCALE}
|
||||
keyboard:
|
||||
layout: ${KB_LAYOUT}
|
||||
variant: ""
|
||||
|
||||
package_update: true
|
||||
packages:
|
||||
- locales
|
||||
- console-setup
|
||||
- keyboard-configuration
|
||||
|
||||
locale: ${LOCALE}
|
||||
|
||||
write_files:
|
||||
- path: /etc/default/keyboard
|
||||
content: |
|
||||
XKBLAYOUT="${KB_LAYOUT}"
|
||||
XKBVARIANT=""
|
||||
XKBMODEL="pc105"
|
||||
XKBOPTIONS=""
|
||||
- path: /etc/default/console-setup
|
||||
content: |
|
||||
ACTIVE_CONSOLES="/dev/tty[1-6]"
|
||||
CHARMAP="UTF-8"
|
||||
CODESET="Lat15"
|
||||
FONTFACE="Fixed"
|
||||
FONTSIZE="8x16"
|
||||
KEYMAP="${CONSOLE_KEYMAP}"
|
||||
|
||||
runcmd:
|
||||
# locale
|
||||
- sed -i 's/^# *${LOCALE} *UTF-8/${LOCALE} UTF-8/' /etc/locale.gen || true
|
||||
- locale-gen ${LOCALE} || true
|
||||
- update-locale LANG=${LOCALE} || true
|
||||
|
||||
- printf "XKBLAYOUT=\\"${KB_LAYOUT}\\"\\nXKBVARIANT=\\"\\"\\n" > /etc/default/keyboard
|
||||
- printf "KEYMAP=\\"${CONSOLE_KEYMAP}\\"\\n" > /etc/default/console-setup
|
||||
# keyboard (debconf + reconfigure)
|
||||
- echo 'keyboard-configuration keyboard-configuration/layoutcode string ${KB_LAYOUT}' | debconf-set-selections
|
||||
- echo 'keyboard-configuration keyboard-configuration/modelcode string pc105' | debconf-set-selections
|
||||
- DEBIAN_FRONTEND=noninteractive dpkg-reconfigure keyboard-configuration || true
|
||||
|
||||
# apply to console
|
||||
- setupcon -k || true
|
||||
|
||||
# systemd-localed (if present)
|
||||
- command -v localectl >/dev/null 2>&1 && localectl set-locale LANG=${LOCALE} || true
|
||||
- command -v localectl >/dev/null 2>&1 && localectl set-keymap ${CONSOLE_KEYMAP} || true
|
||||
EOF
|
||||
|
||||
# Attach user-data (requires: storage "local" has snippets enabled)
|
||||
qm set $VMID --cicustom "user=local:snippets/${VMID}-user-data.yaml" >/dev/null
|
||||
|
||||
else
|
||||
@@ -620,10 +656,14 @@ else
|
||||
fi
|
||||
|
||||
msg_ok "Created a Debian 12 VM ${CL}${BL}(${HN})"
|
||||
|
||||
# Requested: VM should not start automatically => START_VM defaults to "no"
|
||||
if [ "$START_VM" == "yes" ]; then
|
||||
msg_info "Starting Debian 12 VM"
|
||||
qm start $VMID
|
||||
msg_ok "Started Debian 12 VM"
|
||||
else
|
||||
msg_ok "VM not started (as requested)."
|
||||
fi
|
||||
|
||||
msg_ok "Completed successfully!\n"
|
||||
|
||||
Reference in New Issue
Block a user