|
|
@ -4,6 +4,8 @@ |
|
|
|
|
|
|
|
|
BASEDIR=$(dirname "$0") |
|
|
BASEDIR=$(dirname "$0") |
|
|
CONTAINER='' |
|
|
CONTAINER='' |
|
|
|
|
|
SYMPA_ARCHIVE='' |
|
|
|
|
|
SYMPA_NET0='' |
|
|
|
|
|
|
|
|
# FUNCTIONS |
|
|
# FUNCTIONS |
|
|
|
|
|
|
|
|
@ -41,15 +43,38 @@ function assert_proxmox { |
|
|
command -v pct > /dev/null || halt_on_error 'command `pct` not found!' 3 |
|
|
command -v pct > /dev/null || halt_on_error 'command `pct` not found!' 3 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function assert_container_sympa_debian9 { |
|
|
|
|
|
miaou-exec $CONTAINER -- grep -q ^9 /etc/debian_version |
|
|
|
|
|
miaou-exec $CONTAINER -- test -d /etc/sympa |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function export_sympa { |
|
|
|
|
|
miaou-exec $CONTAINER -- bash << EOF |
|
|
|
|
|
rm sympa_{export,purge}.bash |
|
|
|
|
|
wget https://git.artcode.re/cemea/monit-sympa/raw/branch/main/sympa/resources/tools/sympa_{export,purge}.bash |
|
|
|
|
|
chmod +x sympa_{export,purge}.bash |
|
|
|
|
|
./sympa_purge.bash |
|
|
|
|
|
./sympa_export.bash |
|
|
|
|
|
EOF |
|
|
|
|
|
SYMPA_ARCHIVE=$(miaou-exec $CONTAINER -- find -maxdepth 1 -type f -name "*.sympa" | sort -rn | head -1) |
|
|
|
|
|
miaou-pull $CONTAINER $SYMPA_ARCHIVE |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_container_net0 { |
|
|
|
|
|
local vmid=$(pct-lookup $CONTAINER) |
|
|
|
|
|
local vm_conf_file="/etc/pve/nodes/$(hostname)/lxc/$vmid.conf" |
|
|
|
|
|
SYMPA_NET0=$(grep ^net0 $vm_conf_file) |
|
|
|
|
|
echo $SYMPA_NET0 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# MAIN |
|
|
# MAIN |
|
|
|
|
|
|
|
|
set -Eue |
|
|
set -Eue |
|
|
parse_options $* |
|
|
parse_options $* |
|
|
assert_proxmox |
|
|
assert_proxmox |
|
|
echo DONE |
|
|
|
|
|
# 0. test host is Proxmox |
|
|
|
|
|
# 1. test container is Debian9 + Sympa |
|
|
|
|
|
# 2. export sympa |
|
|
|
|
|
|
|
|
assert_container_sympa_debian9 |
|
|
|
|
|
# export_sympa |
|
|
|
|
|
get_container_net0 |
|
|
# 3. stop container |
|
|
# 3. stop container |
|
|
# 4. create container with same IP |
|
|
# 4. create container with same IP |
|
|
# 5. install sympa |
|
|
# 5. install sympa |
|
|
|