Browse Source

pct-create use BRIDGE default value

main
pvincent 1 day ago
parent
commit
eb7cbd8a29
  1. 2
      bin/pct-create
  2. 99
      bin/pct-default

2
bin/pct-create

@ -53,7 +53,7 @@ function create_container {
--memory $mem_in_mb \
--swap $swp_in_mb \
--hostname $CONTAINER_NAME \
--net0 name=eth0,bridge=vmbr0,ip=dhcp,firewall=1 \
--net0 name=eth0,bridge=$BRIDGE,ip=dhcp,firewall=1 \
--start \
--onboot true \
$(optional_public_keys) \

99
bin/pct-default

@ -9,31 +9,108 @@ ARG1="${1:-}"
# FUNCTIONS
function usage {
echo "$(basename "$0") [--edit]"
echo "$(basename "$0") [--edit | --config]"
}
function parse_options {
COMMAND=show
while [[ $# -gt 0 ]]; do
case "$1" in
--edit)
COMMAND=edit
;;
--config)
COMMAND=config
;;
--help | -h)
usage && exit 0
;;
*)
echo >&2 "Unknown option: $1" && usage && exit 2
;;
esac
shift 1 # Move to the next argument
done
}
function show_defaults {
[[ ! -f $DEFAULT_CONFIG ]] && echo >&2 "config file missing: $DEFAUL_CONFIG" && exit 3
source "$DEFAULT_CONFIG"
echo "STORAGE_DISK=$STORAGE_DISK"
echo "STORAGE_SIZE=$STORAGE_SIZE"
echo "BRIDGE=$BRIDGE"
echo "MEMORY=$MEMORY"
echo "SWAP=$SWAP"
echo "CPU=$CPU"
}
function compute_cpu_cores {
nproc=$(nproc)
[[ $nproc -ge 16 ]] && cores=4
[[ $nproc -ge 8 ]] && cores=2
[[ $nproc -lt 8 ]] && cores=1
echo $cores
}
# MAIN
function choose_from_selection {
local name=$1[@]
local selection=("${!name}")
local length=${#selection[@]}
[[ $length == 0 ]] && echo >&2 'no values from selection!' && exit 7
[[ $length == 1 ]] && chosen=${selection[0]} && return
set -Eue
[[ "$ARG1" == '--help' ]] && usage && exit 1
echo "$2:"
echo -----------------
PS3="Choose number: "
select chosen in "${selection[@]}"; do
[[ -n $chosen ]] && break
done < /dev/tty
}
function choose_default {
echo 'initializing default values...'
storage_size='20G'
memory='2G'
swap='2G'
cpu=$(compute_cpu_cores)
[[ ! -f $DEFAULT_CONFIG ]] && >&2 echo 'configuration file missing!' && exit 2
mapfile -t storages <<< $(pct-info list-zfs-pools)
choose_from_selection storages "TYPE=ZFSPOOL STORAGE LIST"
storage_disk=$chosen
mapfile -t bridges <<< $(pct-info list-bridges)
choose_from_selection bridges "BRIDGE LIST"
bridge=$chosen
if [[ "$ARG1" == '--edit' ]]; then
editor $DEFAULT_CONFIG
else
source $DEFAULT_CONFIG
show_defaults
fi
cat >$DEFAULT_CONFIG <<EOF
STORAGE_DISK=\${STORAGE_DISK:-$storage_disk}
STORAGE_SIZE=\${STORAGE_SIZE:-$storage_size}
BRIDGE=\${BRIDGE:-$bridge}
MEMORY=\${MEMORY:-$memory}
SWAP=\${SWAP:-$swap}
CPU=\${CPU:-$cpu}
EOF
}
function perform {
case "$COMMAND" in
show)
show_defaults
;;
edit)
editor $DEFAULT_CONFIG
;;
config)
choose_default
;;
esac
}
# MAIN
set -Eue
parse_options $*
perform
Loading…
Cancel
Save