🐛 fix: Wizard — hostname editovateľný, resources v 3 krokoch, oprava pomlčky
- Krok 1: Názov kontajnera (zobrazenie v Proxmoxe) - Krok 2: Hostname (editovateľný, predvyplnený z názvu) - Krok 3: IP + gateway - Krok 4: DNS - Krok 5: Disk - Krok 6: RAM - Krok 7: CPU - Krok 8: Užívatelia - Krok 9: Potvrdenie - Oprava trailing pomlčky v hostname (sed orezanie) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
105
ct/ubuntu.sh
105
ct/ubuntu.sh
@@ -86,6 +86,7 @@ simple_install() {
|
|||||||
|
|
||||||
# Predvolené hodnoty pre wizard
|
# Predvolené hodnoty pre wizard
|
||||||
local _ct_name="Ubuntu"
|
local _ct_name="Ubuntu"
|
||||||
|
local _hn=""
|
||||||
local _ip_input=""
|
local _ip_input=""
|
||||||
local _gate=""
|
local _gate=""
|
||||||
local _dns="8.8.8.8 1.1.1.1"
|
local _dns="8.8.8.8 1.1.1.1"
|
||||||
@@ -93,6 +94,7 @@ simple_install() {
|
|||||||
local _ram="$var_ram"
|
local _ram="$var_ram"
|
||||||
local _cpu="$var_cpu"
|
local _cpu="$var_cpu"
|
||||||
local _selected_users=""
|
local _selected_users=""
|
||||||
|
local MAX_STEP=9
|
||||||
|
|
||||||
# Wizard so spätnou navigáciou
|
# Wizard so spätnou navigáciou
|
||||||
local STEP=1
|
local STEP=1
|
||||||
@@ -101,21 +103,39 @@ simple_install() {
|
|||||||
|
|
||||||
# --- KROK 1: Názov kontajnera ---
|
# --- KROK 1: Názov kontajnera ---
|
||||||
1)
|
1)
|
||||||
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
--title "NÁZOV KONTAJNERA" \
|
--title "NÁZOV KONTAJNERA" \
|
||||||
--ok-button "Ďalej" --cancel-button "Zrušiť" \
|
--ok-button "Ďalej" --cancel-button "Zrušiť" \
|
||||||
--inputbox "\nZadaj názov kontajnera (zobrazí sa v Proxmoxe):\n\nHostname sa vytvorí automaticky malými písmenami." 12 58 "$_ct_name" \
|
--inputbox "\nZadaj názov kontajnera (zobrazí sa v Proxmoxe):" 10 58 "$_ct_name" \
|
||||||
3>&1 1>&2 2>&3); then
|
3>&1 1>&2 2>&3); then
|
||||||
[[ -n "$result" ]] && _ct_name="$result"
|
[[ -n "$result" ]] && _ct_name="$result"
|
||||||
|
# Predvyplň hostname z názvu ak ešte nebol zadaný
|
||||||
|
[[ -z "$_hn" ]] && _hn=$(echo "${_ct_name,,}" | tr -d ' ' | sed 's/[^a-z0-9-]/-/g; s/^-*//; s/-*$//')
|
||||||
((STEP++))
|
((STEP++))
|
||||||
else
|
else
|
||||||
exit_script
|
exit_script
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# --- KROK 2: IP adresa + gateway ---
|
# --- KROK 2: Hostname ---
|
||||||
2)
|
2)
|
||||||
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
|
--title "HOSTNAME" \
|
||||||
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
|
--inputbox "\nHostname kontajnera (malé písmená, čísla, pomlčky):" 10 58 "$_hn" \
|
||||||
|
3>&1 1>&2 2>&3); then
|
||||||
|
if [[ -n "$result" ]]; then
|
||||||
|
_hn=$(echo "${result,,}" | tr -d ' ' | sed 's/[^a-z0-9-]/-/g; s/^-*//; s/-*$//')
|
||||||
|
fi
|
||||||
|
((STEP++))
|
||||||
|
else
|
||||||
|
((STEP--))
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
# --- KROK 3: IP adresa + gateway ---
|
||||||
|
3)
|
||||||
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
--title "IP ADRESA" \
|
--title "IP ADRESA" \
|
||||||
--ok-button "Ďalej" --cancel-button "Späť" \
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
--inputbox "\nZadaj statickú IP adresu s maskou\n(napr. 192.168.1.100/24)\n\nAlebo nechaj prázdne pre DHCP:" 12 58 "$_ip_input" \
|
--inputbox "\nZadaj statickú IP adresu s maskou\n(napr. 192.168.1.100/24)\n\nAlebo nechaj prázdne pre DHCP:" 12 58 "$_ip_input" \
|
||||||
@@ -125,7 +145,7 @@ simple_install() {
|
|||||||
local default_gw
|
local default_gw
|
||||||
default_gw=$(echo "$_ip_input" | cut -d'/' -f1 | sed 's/\.[0-9]*$/.1/')
|
default_gw=$(echo "$_ip_input" | cut -d'/' -f1 | sed 's/\.[0-9]*$/.1/')
|
||||||
[[ -z "$_gate" ]] && _gate="$default_gw"
|
[[ -z "$_gate" ]] && _gate="$default_gw"
|
||||||
if gw_result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \
|
if gw_result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
--title "GATEWAY" \
|
--title "GATEWAY" \
|
||||||
--ok-button "Ďalej" --cancel-button "Späť" \
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
--inputbox "\nZadaj gateway:" 10 58 "$_gate" \
|
--inputbox "\nZadaj gateway:" 10 58 "$_gate" \
|
||||||
@@ -145,9 +165,9 @@ simple_install() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# --- KROK 3: DNS ---
|
# --- KROK 4: DNS ---
|
||||||
3)
|
4)
|
||||||
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
--title "DNS SERVERY" \
|
--title "DNS SERVERY" \
|
||||||
--ok-button "Ďalej" --cancel-button "Späť" \
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
--inputbox "\nZadaj DNS servery (oddelené medzerou):" 10 58 "$_dns" \
|
--inputbox "\nZadaj DNS servery (oddelené medzerou):" 10 58 "$_dns" \
|
||||||
@@ -159,29 +179,50 @@ simple_install() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# --- KROK 4: Resources ---
|
# --- KROK 5: Disk ---
|
||||||
4)
|
5)
|
||||||
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
--title "ZDROJE" \
|
--title "DISK" \
|
||||||
--ok-button "Ďalej" --cancel-button "Späť" \
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
--inputbox "\nDisk (GB) / RAM (MB) / CPU (jadrá)\noddelené medzerou:" 10 58 "$_disk $_ram $_cpu" \
|
--inputbox "\nVeľkosť disku v GB:" 10 58 "$_disk" \
|
||||||
3>&1 1>&2 2>&3); then
|
3>&1 1>&2 2>&3); then
|
||||||
if [[ -n "$result" ]]; then
|
[[ -n "$result" ]] && _disk="$result"
|
||||||
_disk=$(echo "$result" | awk '{print $1}')
|
|
||||||
_ram=$(echo "$result" | awk '{print $2}')
|
|
||||||
_cpu=$(echo "$result" | awk '{print $3}')
|
|
||||||
[[ -z "$_disk" ]] && _disk="$var_disk"
|
|
||||||
[[ -z "$_ram" ]] && _ram="$var_ram"
|
|
||||||
[[ -z "$_cpu" ]] && _cpu="$var_cpu"
|
|
||||||
fi
|
|
||||||
((STEP++))
|
((STEP++))
|
||||||
else
|
else
|
||||||
((STEP--))
|
((STEP--))
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# --- KROK 5: Výber užívateľov ---
|
# --- KROK 6: RAM ---
|
||||||
5)
|
6)
|
||||||
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
|
--title "RAM" \
|
||||||
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
|
--inputbox "\nVeľkosť RAM v MB:" 10 58 "$_ram" \
|
||||||
|
3>&1 1>&2 2>&3); then
|
||||||
|
[[ -n "$result" ]] && _ram="$result"
|
||||||
|
((STEP++))
|
||||||
|
else
|
||||||
|
((STEP--))
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
# --- KROK 7: CPU ---
|
||||||
|
7)
|
||||||
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
|
--title "CPU" \
|
||||||
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
|
--inputbox "\nPočet CPU jadier:" 10 58 "$_cpu" \
|
||||||
|
3>&1 1>&2 2>&3); then
|
||||||
|
[[ -n "$result" ]] && _cpu="$result"
|
||||||
|
((STEP++))
|
||||||
|
else
|
||||||
|
((STEP--))
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
# --- KROK 8: Výber užívateľov ---
|
||||||
|
8)
|
||||||
if [[ "$user_count" -eq 0 ]]; then
|
if [[ "$user_count" -eq 0 ]]; then
|
||||||
_selected_users=""
|
_selected_users=""
|
||||||
((STEP++))
|
((STEP++))
|
||||||
@@ -191,7 +232,7 @@ simple_install() {
|
|||||||
checklist_args+=("${usernames[$i]}" "${key_counts[$i]} SSH kľúč(ov)" "ON")
|
checklist_args+=("${usernames[$i]}" "${key_counts[$i]} SSH kľúč(ov)" "ON")
|
||||||
done
|
done
|
||||||
|
|
||||||
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \
|
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
--title "UŽÍVATELIA" \
|
--title "UŽÍVATELIA" \
|
||||||
--ok-button "Ďalej" --cancel-button "Späť" \
|
--ok-button "Ďalej" --cancel-button "Späť" \
|
||||||
--checklist "\nVyber užívateľov na vytvorenie:\n(SPACE = zaškrtni, ENTER = potvrď)" \
|
--checklist "\nVyber užívateľov na vytvorenie:\n(SPACE = zaškrtni, ENTER = potvrď)" \
|
||||||
@@ -206,10 +247,8 @@ simple_install() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# --- KROK 6: Potvrdenie ---
|
# --- KROK 9: Potvrdenie ---
|
||||||
6)
|
9)
|
||||||
local _hn
|
|
||||||
_hn=$(echo "${_ct_name,,}" | tr -d ' ' | tr -c 'a-z0-9-' '-')
|
|
||||||
local _net_display="dhcp"
|
local _net_display="dhcp"
|
||||||
[[ -n "$_ip_input" ]] && _net_display="$_ip_input"
|
[[ -n "$_ip_input" ]] && _net_display="$_ip_input"
|
||||||
|
|
||||||
@@ -218,13 +257,15 @@ simple_install() {
|
|||||||
confirm_text+="IP: $_net_display\n"
|
confirm_text+="IP: $_net_display\n"
|
||||||
[[ -n "$_gate" ]] && confirm_text+="Gateway: $_gate\n"
|
[[ -n "$_gate" ]] && confirm_text+="Gateway: $_gate\n"
|
||||||
confirm_text+="DNS: $_dns\n"
|
confirm_text+="DNS: $_dns\n"
|
||||||
confirm_text+="Disk: ${_disk}GB RAM: ${_ram}MB CPU: ${_cpu}\n"
|
confirm_text+="Disk: ${_disk}GB\n"
|
||||||
|
confirm_text+="RAM: ${_ram}MB\n"
|
||||||
|
confirm_text+="CPU: ${_cpu} jadier\n"
|
||||||
[[ -n "$_selected_users" ]] && confirm_text+="Užívatelia: $_selected_users\n"
|
[[ -n "$_selected_users" ]] && confirm_text+="Užívatelia: $_selected_users\n"
|
||||||
|
|
||||||
if whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \
|
if whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
|
||||||
--title "POTVRDENIE" \
|
--title "POTVRDENIE" \
|
||||||
--ok-button "Inštalovať" --cancel-button "Späť" \
|
--ok-button "Inštalovať" --cancel-button "Späť" \
|
||||||
--yesno "$confirm_text\nPokračovať s inštaláciou?" 18 58; then
|
--yesno "$confirm_text\nPokračovať s inštaláciou?" 20 58; then
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
((STEP--))
|
((STEP--))
|
||||||
@@ -234,7 +275,7 @@ simple_install() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Nastavenie premenných z wizardu
|
# Nastavenie premenných z wizardu
|
||||||
HN=$(echo "${_ct_name,,}" | tr -d ' ' | tr -c 'a-z0-9-' '-')
|
HN="$_hn"
|
||||||
APP_DISPLAY_NAME="$_ct_name"
|
APP_DISPLAY_NAME="$_ct_name"
|
||||||
if [[ -n "$_ip_input" ]]; then
|
if [[ -n "$_ip_input" ]]; then
|
||||||
NET="$_ip_input"
|
NET="$_ip_input"
|
||||||
|
|||||||
Reference in New Issue
Block a user