start refactor quicktinc.sh
This commit is contained in:
parent
e4c7c8f1bb
commit
2bc57dc9d0
|
@ -9,7 +9,11 @@ IMAGE="fschl/tinc"
|
|||
function usage() {
|
||||
echo "
|
||||
Usage:
|
||||
$0 [OPTIONS]
|
||||
$0 run --net=<network> - start a container for $network with existing configuration
|
||||
|
||||
or create configuration with:
|
||||
|
||||
$0 init [OPTIONS]
|
||||
|
||||
Options:
|
||||
--net=NET_NAME Network name (required)
|
||||
|
@ -18,11 +22,12 @@ Options:
|
|||
--private-ip=PRIVATE_IP Node's private IP (required)
|
||||
--connect-to=HOST Name of another node (optional, repeatable)
|
||||
--interface=tun0 Network interface to create (optional, default=tun0)
|
||||
--config=/srv/tinc Where to save tinc networks (optional, default=$(pwd)/etc-tinc)
|
||||
--config=/etc/tinc Where to save tinc networks (optional, default=/etc/tinc)
|
||||
--up Also start the daemon
|
||||
|
||||
Example:
|
||||
$0 --net=demonet --node=node23 --public-ip=8.9.10.11 --private-ip=10.0.0.23 --connect-to=node1 --connect-to=node2 --up
|
||||
$0 --n=demonet --o=node23 --p=8.9.10.11 --v=10.0.0.23 --c=node1 --connect-to=node2 --up
|
||||
|
||||
Report bugs to <https://github.com/j3k0/quicktinc>
|
||||
"
|
||||
|
@ -80,13 +85,14 @@ if [ "_$INTERFACE" = "_" ]; then
|
|||
fi
|
||||
|
||||
if [ "_$TINC_HOME" = "_" ]; then
|
||||
TINC_HOME=$(pwd)/etc-tinc
|
||||
TINC_HOME=/etc/tinc
|
||||
fi
|
||||
|
||||
function tinc() {
|
||||
docker run --rm --net=host --device=/dev/net/tun --cap-add NET_ADMIN --volume $TINC_HOME:/etc/tinc $IMAGE -n $NET_NAME "$@"
|
||||
}
|
||||
|
||||
init_node() {
|
||||
# Initialize configuration file
|
||||
tinc init $NODE_NAME
|
||||
|
||||
|
@ -118,9 +124,32 @@ EOF
|
|||
|
||||
chmod +x $TINC_HOME/$NET_NAME/tinc-up
|
||||
chmod +x $TINC_HOME/$NET_NAME/tinc-down
|
||||
}
|
||||
|
||||
if [ "_$TINC_UP" != "_" ]; then
|
||||
run_container() {
|
||||
# if [ "_$TINC_UP" != "_" ]; then
|
||||
NAME=tinc_$NET_NAME_$NODE_NAME
|
||||
docker run -d --restart=always --name=$NAME --net=host --device=/dev/net/tun --cap-add NET_ADMIN --volume $TINC_HOME:/etc/tinc $IMAGE -n $NET_NAME start -D
|
||||
echo "Docker container started with name: $NAME"
|
||||
# fi
|
||||
}
|
||||
|
||||
|
||||
main() {
|
||||
local cmd=$1
|
||||
|
||||
if [[ -z "$cmd" ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
case "$cmd" in
|
||||
init)
|
||||
init_node
|
||||
;;
|
||||
run)
|
||||
run_container
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
|
Loading…
Reference in New Issue