mirror of https://github.com/EdgeVPNio/tools.git
177 lines
3.9 KiB
Bash
Executable File
177 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
EVIO=https://github.com/EdgeVPNio/evio.git
|
|
EXLIBS=https://github.com/ipop-project/3rd-Party-Libs.git
|
|
PYVER=3.6
|
|
|
|
function install_build_tools
|
|
{
|
|
sudo bash -c "
|
|
apt-get update -y && \
|
|
apt-get install -y build-essential"
|
|
}
|
|
|
|
function pull_src
|
|
{
|
|
wd=$(pwd)
|
|
cd ..
|
|
git clone $EVIO
|
|
cd evio/tincan/external
|
|
git clone -b ubuntu-x64 --single-branch https://github.com/ipop-project/3rd-Party-Libs.git
|
|
cd $wd
|
|
}
|
|
|
|
function make_tincan
|
|
{
|
|
wd=$(pwd)
|
|
cd ../evio/tincan/trunk/build
|
|
make clean; make
|
|
cd $wd
|
|
}
|
|
|
|
function make_debpak
|
|
{
|
|
cp -r ../evio/controller/* debian-package/edge-vpnio/opt/edge-vpnio/ && \
|
|
cp ../evio/tincan/trunk/out/release/x86_64/tincan debian-package/edge-vpnio/opt/edge-vpnio/ && \
|
|
chmod +x debian-package/edge-vpnio/opt/edge-vpnio/tincan && \
|
|
wd=$(pwd) && cd debian-package/ && \
|
|
./deb-gen && \
|
|
rm -rf edge-vpnio/opt/edge-vpnio/framework \
|
|
edge-vpnio/opt/edge-vpnio/modules \
|
|
edge-vpnio/opt/edge-vpnio/tincan \
|
|
edge-vpnio/opt/edge-vpnio/template-config.json \
|
|
edge-vpnio/opt/edge-vpnio/Controller.py && \
|
|
cd $wd
|
|
}
|
|
|
|
function make_testbed_prereqs
|
|
{
|
|
sudo bash -c "
|
|
apt-get update -y && \
|
|
apt-get install -y openvswitch-switch \
|
|
python$PYVER python3-pip python3-venv python3-dev \
|
|
apt-transport-https \
|
|
ca-certificates \
|
|
curl git \
|
|
software-properties-common && \
|
|
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
|
|
add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable\" && \
|
|
apt-cache policy docker-ce && \
|
|
apt-get install -y containerd.io \
|
|
docker-ce-cli \
|
|
docker-ce && \
|
|
groupadd -f docker && \
|
|
usermod -a -G docker $USER \
|
|
"
|
|
echo "You must logout and relogin for docker group membership to take effect."
|
|
}
|
|
|
|
function make_venv
|
|
{
|
|
wd=$(pwd)
|
|
cd testbed && \
|
|
python$PYVER -m venv venv && \
|
|
source venv/bin/activate && \
|
|
pip3 install simplejson
|
|
cd $wd
|
|
}
|
|
|
|
function make_dkrimg
|
|
{
|
|
mv debian-package/edge-vpnio_20.7_amd64.deb docker-image/ && \
|
|
docker build -f ./docker-image/evio-base.Dockerfile -t edgevpnio/evio-base:1.0 ./docker-image && \
|
|
docker build -f ./docker-image/evio-node.Dockerfile -t edgevpnio/evio-node:20.7 ./docker-image
|
|
|
|
}
|
|
|
|
function install_openfire
|
|
{
|
|
docker run --name openfire -d \
|
|
-p 9090:9090 -p 5222:5222 \
|
|
-p 5269:5269 -p 5223:5223 \
|
|
-p 7443:7443 -p 7777:7777 \
|
|
-p 7070:7070 -p 5229:5229 \
|
|
-p 5275:5275 \
|
|
edgevpnio/openfire_edgevpn_demo
|
|
}
|
|
|
|
function install_portal
|
|
{
|
|
#Todo: visualizer not yet available
|
|
git clone https://github.com/edgevpnio/portal.git
|
|
cd portal/setup
|
|
./setup.sh
|
|
chown -R $USER /users/$USER/
|
|
}
|
|
|
|
function do_clean
|
|
{
|
|
# tincan
|
|
wd=$(pwd)
|
|
cd ../evio/tincan/trunk/build
|
|
make clean;
|
|
cd $wd
|
|
#debian pak
|
|
cd debian-package/ && \
|
|
rm -ri ./edge-vpnio_20.7_amd64.deb \
|
|
edge-vpnio/opt/edge-vpnio/framework \
|
|
edge-vpnio/opt/edge-vpnio/modules \
|
|
edge-vpnio/opt/edge-vpnio/tincan \
|
|
edge-vpnio/opt/edge-vpnio/template-config.json \
|
|
edge-vpnio/opt/edge-vpnio/Controller.py && \
|
|
cd $wd
|
|
# docker-image
|
|
rm -f docker-image/edge-vpnio_20.7_amd64.deb
|
|
docker rmi edgevpnio/evio-base:1.0 edgevpnio/evio-node:20.7
|
|
docker rmi $(docker images -q --filter "dangling=true")
|
|
# testbed
|
|
cd testbed
|
|
rm -rf config log cert venv
|
|
cd $wd
|
|
}
|
|
|
|
function do_full_setup
|
|
{
|
|
install_build_tools
|
|
pull_src
|
|
make_tincan
|
|
make_debpak
|
|
make_dkrimg
|
|
make_testbed_prereqs
|
|
make_venv
|
|
}
|
|
|
|
case $1 in
|
|
src)
|
|
pull_src
|
|
;;
|
|
tincan)
|
|
make_tincan
|
|
;;
|
|
debpak)
|
|
make_debpak
|
|
;;
|
|
dkrimg)
|
|
make_dkrimg
|
|
;;
|
|
testbed)
|
|
make_testbed_prereqs
|
|
;;
|
|
venv)
|
|
make_venv
|
|
;;
|
|
xmpp)
|
|
install_openfire
|
|
;;
|
|
clean)
|
|
do_clean
|
|
;;
|
|
all)
|
|
do_full_setup
|
|
;;
|
|
*)
|
|
echo "no match on input -> $1"
|
|
;;
|
|
esac
|