Actualiser debian12-fr.sh
This commit is contained in:
@@ -26,7 +26,9 @@ NSAPP="debian12vm"
|
|||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
|
||||||
# ---- FR locale / keyboard (cloud-init) ----
|
# ==========================
|
||||||
|
# FR locale / keyboard (cloud-init) - robust
|
||||||
|
# ==========================
|
||||||
LOCALE="${LOCALE:-fr_FR.UTF-8}"
|
LOCALE="${LOCALE:-fr_FR.UTF-8}"
|
||||||
KB_LAYOUT="${KB_LAYOUT:-fr}" # fr / be / us ...
|
KB_LAYOUT="${KB_LAYOUT:-fr}" # fr / be / us ...
|
||||||
CONSOLE_KEYMAP="${CONSOLE_KEYMAP:-fr}" # fr / fr-latin9 ...
|
CONSOLE_KEYMAP="${CONSOLE_KEYMAP:-fr}" # fr / fr-latin9 ...
|
||||||
@@ -223,9 +225,15 @@ function default_settings() {
|
|||||||
MAC="$GEN_MAC"
|
MAC="$GEN_MAC"
|
||||||
VLAN=""
|
VLAN=""
|
||||||
MTU=""
|
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"
|
CLOUD_INIT="yes"
|
||||||
|
|
||||||
METHOD="default"
|
METHOD="default"
|
||||||
@@ -242,7 +250,7 @@ function default_settings() {
|
|||||||
echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}"
|
echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}"
|
||||||
echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${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 "${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}"
|
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"
|
BRG="vmbr0"
|
||||||
echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}"
|
echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}"
|
||||||
else
|
else
|
||||||
BRG="$BRG"
|
|
||||||
echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}"
|
echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -412,7 +419,7 @@ function advanced_settings() {
|
|||||||
exit-script
|
exit-script
|
||||||
fi
|
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}"
|
echo -e "${CLOUD}${BOLD}${DGN}Configure Cloud-init: ${BGN}yes${CL}"
|
||||||
CLOUD_INIT="yes"
|
CLOUD_INIT="yes"
|
||||||
else
|
else
|
||||||
@@ -420,7 +427,8 @@ function advanced_settings() {
|
|||||||
CLOUD_INIT="no"
|
CLOUD_INIT="no"
|
||||||
fi
|
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}"
|
echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}"
|
||||||
START_VM="yes"
|
START_VM="yes"
|
||||||
else
|
else
|
||||||
@@ -526,8 +534,14 @@ for i in {0,1}; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
msg_info "Creating a Debian 12 VM"
|
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 \
|
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
|
pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null
|
||||||
qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 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 \
|
-boot order=scsi0 \
|
||||||
-serial0 socket >/dev/null
|
-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"
|
SNIPPET_DIR="/var/lib/vz/snippets"
|
||||||
mkdir -p "${SNIPPET_DIR}"
|
mkdir -p "${SNIPPET_DIR}"
|
||||||
USERDATA_FILE="${SNIPPET_DIR}/${VMID}-user-data.yaml"
|
USERDATA_FILE="${SNIPPET_DIR}/${VMID}-user-data.yaml"
|
||||||
|
|
||||||
cat > "${USERDATA_FILE}" <<EOF
|
cat > "${USERDATA_FILE}" <<EOF
|
||||||
#cloud-config
|
#cloud-config
|
||||||
locale: ${LOCALE}
|
|
||||||
keyboard:
|
|
||||||
layout: ${KB_LAYOUT}
|
|
||||||
variant: ""
|
|
||||||
|
|
||||||
package_update: true
|
package_update: true
|
||||||
packages:
|
packages:
|
||||||
- locales
|
- locales
|
||||||
- console-setup
|
- 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:
|
runcmd:
|
||||||
|
# locale
|
||||||
- sed -i 's/^# *${LOCALE} *UTF-8/${LOCALE} UTF-8/' /etc/locale.gen || true
|
- sed -i 's/^# *${LOCALE} *UTF-8/${LOCALE} UTF-8/' /etc/locale.gen || true
|
||||||
- locale-gen ${LOCALE} || true
|
- locale-gen ${LOCALE} || true
|
||||||
- update-locale LANG=${LOCALE} || true
|
- update-locale LANG=${LOCALE} || true
|
||||||
|
|
||||||
- printf "XKBLAYOUT=\\"${KB_LAYOUT}\\"\\nXKBVARIANT=\\"\\"\\n" > /etc/default/keyboard
|
# keyboard (debconf + reconfigure)
|
||||||
- printf "KEYMAP=\\"${CONSOLE_KEYMAP}\\"\\n" > /etc/default/console-setup
|
- 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
|
- 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-locale LANG=${LOCALE} || true
|
||||||
- command -v localectl >/dev/null 2>&1 && localectl set-keymap ${CONSOLE_KEYMAP} || true
|
- command -v localectl >/dev/null 2>&1 && localectl set-keymap ${CONSOLE_KEYMAP} || true
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Attach user-data (requires: storage "local" has snippets enabled)
|
|
||||||
qm set $VMID --cicustom "user=local:snippets/${VMID}-user-data.yaml" >/dev/null
|
qm set $VMID --cicustom "user=local:snippets/${VMID}-user-data.yaml" >/dev/null
|
||||||
|
|
||||||
else
|
else
|
||||||
@@ -620,10 +656,14 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "Created a Debian 12 VM ${CL}${BL}(${HN})"
|
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
|
if [ "$START_VM" == "yes" ]; then
|
||||||
msg_info "Starting Debian 12 VM"
|
msg_info "Starting Debian 12 VM"
|
||||||
qm start $VMID
|
qm start $VMID
|
||||||
msg_ok "Started Debian 12 VM"
|
msg_ok "Started Debian 12 VM"
|
||||||
|
else
|
||||||
|
msg_ok "VM not started (as requested)."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "Completed successfully!\n"
|
msg_ok "Completed successfully!\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user