62 lines
2.0 KiB
Bash
Executable File
62 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
while getopts ":m:i:p:d:" opt; do
|
|
case $opt in
|
|
m)
|
|
echo "Running in $OPTARG mode" >&2
|
|
MODE=$OPTARG
|
|
;;
|
|
i)
|
|
HAPROXY_IP=$OPTARG
|
|
;;
|
|
p)
|
|
HAPROXY_PORT=$OPTARG
|
|
;;
|
|
:)
|
|
echo "Option -$OPTARG requires an argument." >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ -z $MODE ]]; then
|
|
echo "You need to specify mode with -m" >&2
|
|
fi
|
|
|
|
if [[ $MODE != 'pssl' && $MODE != 'tcp' ]]; then
|
|
echo "You need to provide 'pssl' or 'tcp' with -m argument"
|
|
fi
|
|
|
|
if [[ $MODE = "pssl" ]]; then
|
|
if [[ -z $HAPROXY_IP || -z $HAPROXY_PORT ]] ; then
|
|
echo "In pssl mode:" >&2
|
|
echo "Haproxy ip needs to be provided with -p option" >&2
|
|
echo "Haproxy port needs to be provided with -p option" >&2
|
|
exit 1
|
|
else
|
|
COMMAND="ssl:${HAPROXY_IP}:${HAPROXY_PORT}"
|
|
CERTS_PATH='-p /var/db/certs/vtep_1-privkey.pem -c /var/db/certs/vtep_1-cert.pem -C /var/db/certs/cacert.pem'
|
|
fi
|
|
else
|
|
COMMAND='ptcp:6632'
|
|
fi
|
|
|
|
rm /etc/openvswitch/*.db
|
|
ovsdb-tool create /etc/openvswitch/ovs.db /usr/share/openvswitch/vswitch.ovsschema ; ovsdb-tool create /etc/openvswitch/vtep.db /usr/share/openvswitch/vtep.ovsschema
|
|
service openvswitch-switch stop
|
|
ovsdb-server --pidfile --detach --log-file --remote punix:/var/run/openvswitch/db.sock --remote=db:hardware_vtep,Global,managers --remote $COMMAND $CERTS_PATH /etc/openvswitch/ovs.db /etc/openvswitch/vtep.db
|
|
ovs-vswitchd --log-file --detach --pidfile unix:/var/run/openvswitch/db.sock
|
|
ovsdb-client list-dbs unix:/var/run/openvswitch/db.sock
|
|
ovs-vsctl add-br TOR1
|
|
vtep-ctl add-ps TOR1
|
|
vtep-ctl set Physical_Switch TOR1 tunnel_ips=10.109.4.229
|
|
python /usr/share/openvswitch/scripts/ovs-vtep --log-file=/var/log/openvswitch/ovs-vtep.log --pidfile=/var/run/openvswitch/ovs-vtep.pid --detach TOR1
|
|
ip netns add ns1
|
|
ip link add nstap1 type veth peer name tortap1
|
|
ovs-vsctl add-port TOR1 tortap1
|
|
ip link set nstap1 netns ns1
|
|
ip netns exec ns1 ip link set dev nstap1 up
|
|
ip link set dev tortap1 up
|
|
ip netns exec ns1 ip link set nstap1 address 00:01:00:00:05:78
|
|
|