Add proper Cleanup script.
Chore following such addition.
This commit is contained in:
parent
2945d21c93
commit
aa18ef3224
52
scripts/.cleanup.sh
Executable file
52
scripts/.cleanup.sh
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
stopdls() {
|
||||||
|
if docker ps &>/dev/null | grep -q " $DLS_CTR_NAME$"; then
|
||||||
|
pinfo "Stopping Direktil Local Server..."
|
||||||
|
docker stop $DLS_CTR_NAME
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyvms() {
|
||||||
|
for host in ${!hosts[*]}; do
|
||||||
|
if test -f $ctxdir/data/$host/pid ; then
|
||||||
|
pid=$(cat $ctxdir/data/$host/pid)
|
||||||
|
pinfo "Cleaning VM $host with PID $pid..."
|
||||||
|
kill $pid && sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanuppaths() {
|
||||||
|
PATHS="data secrets kubeconfig cache dist"
|
||||||
|
cd $ctxdir
|
||||||
|
for path in $PATHS; do
|
||||||
|
if test -e $path; then
|
||||||
|
pinfo "Removing path $path ..."
|
||||||
|
rm -rf $path
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanupnetwork() {
|
||||||
|
if iptables -L |grep -q $QEMU_BR_NAME; then
|
||||||
|
pinfo "Cleaning iptables rules..."
|
||||||
|
iptables -t nat -D POSTROUTING -j MASQUERADE -s $QEMU_BR_IP/$QEMU_BR_MASK \! -o $QEMU_BR_NAME
|
||||||
|
iptables -D FORWARD -o $QEMU_BR_NAME -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
||||||
|
iptables -D FORWARD -j ACCEPT -i $QEMU_BR_NAME
|
||||||
|
fi
|
||||||
|
if ip li show $QEMU_BR_NAME ; then
|
||||||
|
pinfo "Cleaning existing interfaces..."
|
||||||
|
ip li set $QEMU_BR_NAME down
|
||||||
|
ip li del $QEMU_BR_NAME
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
source $(dirname $0)/.common
|
||||||
|
check_root
|
||||||
|
prereqs
|
||||||
|
stopdls
|
||||||
|
declare -A hosts
|
||||||
|
get_hosts
|
||||||
|
destroyvms
|
||||||
|
cleanuppaths
|
@ -1,11 +1,26 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
## Vars
|
## Vars
|
||||||
|
# Docker container name for dir2config
|
||||||
|
D2C_CTR_NAME=dir2config
|
||||||
|
# Docker container name for direktil local server
|
||||||
|
DLS_CTR_NAME=dls
|
||||||
|
|
||||||
|
# QEMU local bridge name. If you specificy a custom name, you may have to configure qemu bridge helper to allow it
|
||||||
|
QEMU_BR_NAME=virbr0
|
||||||
|
# QEMU VM default disk size
|
||||||
|
QEMU_DISK_SIZE=30G
|
||||||
|
# Allocated CPUs to QEMU VMs
|
||||||
|
QEMU_VM_CPU=4
|
||||||
|
# Allocated Memory to QEMU VMs
|
||||||
|
QEMU_VM_MEM=8096
|
||||||
|
################
|
||||||
|
|
||||||
|
# Token file for dls
|
||||||
tknfile=".dls_adm_token"
|
tknfile=".dls_adm_token"
|
||||||
|
|
||||||
## Helper funcs
|
|
||||||
|
|
||||||
|
## Helper funcs
|
||||||
|
|
||||||
pinfo() {
|
pinfo() {
|
||||||
echo -e "\e[32m$@\e[39m"
|
echo -e "\e[32m$@\e[39m"
|
||||||
@ -42,7 +57,7 @@ check_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
prereqs() {
|
prereqs() {
|
||||||
set -ex
|
# set -ex
|
||||||
cd "$(dirname $0)/.."
|
cd "$(dirname $0)/.."
|
||||||
ctxdir="$PWD"
|
ctxdir="$PWD"
|
||||||
}
|
}
|
||||||
@ -86,7 +101,7 @@ get_hosts() {
|
|||||||
ip=$(grep ip: $ctxdir/hosts/${h}.yaml|awk '{print $2}')
|
ip=$(grep ip: $ctxdir/hosts/${h}.yaml|awk '{print $2}')
|
||||||
hosts[$h]="$ip"
|
hosts[$h]="$ip"
|
||||||
done
|
done
|
||||||
cd -
|
cd - &>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
get_parts() {
|
get_parts() {
|
||||||
@ -102,6 +117,15 @@ get_parts() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
destroyvms() {
|
||||||
|
for host in ${!hosts[*]}; do
|
||||||
|
host=$1
|
||||||
|
if test -f $ctxdir/data/$host/pid ; then
|
||||||
|
pinfo "Detected a pid file, killing process in case VM was already started"
|
||||||
|
kill $(cat $ctxdir/data/$host/pid) && sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
create_kubeconfig() {
|
create_kubeconfig() {
|
||||||
if test -f $ctxdir/kubeconfig; then
|
if test -f $ctxdir/kubeconfig; then
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
D2C_CTR_NAME=dir2config
|
|
||||||
DLS_CTR_NAME=dls
|
|
||||||
# Admin token to unlock the DLS store
|
# Admin token to unlock the DLS store
|
||||||
DLS_UNLOCK_TOKEN=changeme
|
DLS_UNLOCK_TOKEN=changeme
|
||||||
#
|
#
|
||||||
@ -24,7 +22,7 @@ dir2config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
start_store() {
|
start_store() {
|
||||||
if docker ps|grep " $DLS_CTR_NAME$" ; then
|
if docker ps|grep " $DLS_CTR_NAME$" &>/dev/null; then
|
||||||
pinfo "Container $DLS_CTR_NAME seems already running"
|
pinfo "Container $DLS_CTR_NAME seems already running"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
@ -3,16 +3,7 @@
|
|||||||
# This collection of scripts aims to install a NOVIT cluster easily, with help of QEMU
|
# This collection of scripts aims to install a NOVIT cluster easily, with help of QEMU
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# QEMU local bridge name. If you specificy a custom name, you may have to configure qemu bridge helper to allow it
|
|
||||||
QEMU_BR_NAME=virbr0
|
|
||||||
#
|
#
|
||||||
# QEMU VM default disk size
|
|
||||||
QEMU_DISK_SIZE=30G
|
|
||||||
# Allocated CPUs to QEMU VMs
|
|
||||||
QEMU_VM_CPU=4
|
|
||||||
# Allocated Memory to QEMU VMs
|
|
||||||
QEMU_VM_MEM=8096
|
|
||||||
################
|
|
||||||
|
|
||||||
|
|
||||||
## QEMU functions
|
## QEMU functions
|
||||||
@ -35,15 +26,15 @@ setup_network_qemu() {
|
|||||||
pinfo "Using detected gateway IP $QEMU_BR_IP for bridge $QEMU_BR_NAME"
|
pinfo "Using detected gateway IP $QEMU_BR_IP for bridge $QEMU_BR_NAME"
|
||||||
if ! ip a show dev $QEMU_BR_NAME | grep $QEMU_BR_IP ; then
|
if ! ip a show dev $QEMU_BR_NAME | grep $QEMU_BR_IP ; then
|
||||||
ip a add $QEMU_BR_IP/$QEMU_BR_MASK dev $QEMU_BR_NAME
|
ip a add $QEMU_BR_IP/$QEMU_BR_MASK dev $QEMU_BR_NAME
|
||||||
sudo iptables -t nat -I POSTROUTING -j MASQUERADE -s $QEMU_BR_IP/$QEMU_BR_MASK \! -o $QEMU_BR_NAME
|
iptables -t nat -I POSTROUTING -j MASQUERADE -s $QEMU_BR_IP/$QEMU_BR_MASK \! -o $QEMU_BR_NAME
|
||||||
sudo iptables -I FORWARD -o $QEMU_BR_NAME -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
iptables -I FORWARD -o $QEMU_BR_NAME -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
||||||
sudo iptables -I FORWARD -j ACCEPT -i $QEMU_BR_NAME
|
iptables -I FORWARD -j ACCEPT -i $QEMU_BR_NAME
|
||||||
fi
|
fi
|
||||||
if ! test -d /etc/qemu; then
|
if ! test -d /etc/qemu; then
|
||||||
mkdir -p /etc/qemu
|
mkdir -p /etc/qemu
|
||||||
fi
|
fi
|
||||||
if ! grep -q "allow $QEMU_BR_NAME" /etc/qemu/bridge.conf; then
|
if ! grep -q "allow $QEMU_BR_NAME" /etc/qemu/bridge.conf; then
|
||||||
echo "allow $QEMU_BR_NAME" > /etc/qemu/bridge.conf
|
echo "allow $QEMU_BR_NAME" >> /etc/qemu/bridge.conf
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
run_qemu() {
|
run_qemu() {
|
||||||
@ -51,10 +42,6 @@ run_qemu() {
|
|||||||
for host in ${!hosts[*]}; do
|
for host in ${!hosts[*]}; do
|
||||||
ip route show |grep "${hosts[$host]} dev $QEMU_BR_NAME" ||\
|
ip route show |grep "${hosts[$host]} dev $QEMU_BR_NAME" ||\
|
||||||
ip route add ${hosts[$host]} dev $QEMU_BR_NAME
|
ip route add ${hosts[$host]} dev $QEMU_BR_NAME
|
||||||
if test -f $ctxdir/data/$host/pid ; then
|
|
||||||
pinfo "Detected a pid file, killing process in case VM was already started"
|
|
||||||
kill $(cat $ctxdir/data/$host/pid) && sleep 1
|
|
||||||
fi
|
|
||||||
pinfo "Starting host $host with ip ${hosts[$host]}"
|
pinfo "Starting host $host with ip ${hosts[$host]}"
|
||||||
qemu-system-x86_64 -enable-kvm -smp $QEMU_VM_CPU -m $QEMU_VM_MEM \
|
qemu-system-x86_64 -enable-kvm -smp $QEMU_VM_CPU -m $QEMU_VM_MEM \
|
||||||
-nic bridge,br=$QEMU_BR_NAME,mac=42:42:42:42:42:0${id} \
|
-nic bridge,br=$QEMU_BR_NAME,mac=42:42:42:42:42:0${id} \
|
||||||
@ -77,6 +64,7 @@ declare -A hosts
|
|||||||
setup_network_qemu
|
setup_network_qemu
|
||||||
get_hosts
|
get_hosts
|
||||||
get_parts
|
get_parts
|
||||||
|
destroyvms
|
||||||
run_qemu
|
run_qemu
|
||||||
#clean
|
#clean
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user