mirror of
https://github.com/vimagick/dockerfiles.git
synced 2024-11-28 09:08:36 +02:00
77 lines
1.7 KiB
Bash
Executable File
77 lines
1.7 KiB
Bash
Executable File
#!/bin/sh -e
|
|
#
|
|
# generate peer profile
|
|
#
|
|
|
|
PEER_NAME=${1:?peer name is empty}
|
|
PEER_ADDR=${2:?peer addr is empty}
|
|
|
|
if [ -f /etc/tinc/${NETNAME}/hosts/${PEER_NAME} ]
|
|
then
|
|
echo 'Peer name was taken!'
|
|
exit 1
|
|
elif fgrep -qr ${PEER_ADDR} /etc/tinc/${NETNAME}/hosts/
|
|
then
|
|
echo 'Peer addr was taken!'
|
|
exit 2
|
|
else
|
|
echo 'Generating...'
|
|
fi
|
|
|
|
mkdir -p /etc/tinc/${NETNAME}/peers/${PEER_NAME}/tinc/${NETNAME}/hosts
|
|
|
|
cd /etc/tinc/${NETNAME}/peers/${PEER_NAME}/tinc/${NETNAME}
|
|
|
|
cp /etc/tinc/${NETNAME}/hosts/server hosts/server
|
|
|
|
cat > tinc.conf <<_EOF_
|
|
Name = ${PEER_NAME}
|
|
Interface = tun0
|
|
ConnectTo = server
|
|
_EOF_
|
|
|
|
cat > hosts/${PEER_NAME} <<_EOF_
|
|
Subnet = ${PEER_ADDR}
|
|
_EOF_
|
|
|
|
tincd -c. -K${KEYSIZE} < /dev/null
|
|
|
|
cp /etc/tinc/${NETNAME}/peers/${PEER_NAME}/tinc/${NETNAME}/hosts/${PEER_NAME} \
|
|
/etc/tinc/${NETNAME}/hosts/${PEER_NAME}
|
|
|
|
cat > tinc-up <<_EOF_
|
|
#!/bin/sh
|
|
ip link set \$INTERFACE up
|
|
ip addr add ${PEER_ADDR}/${NETMASK} dev \$INTERFACE
|
|
_EOF_
|
|
|
|
cat > tinc-down <<_EOF_
|
|
#!/bin/sh
|
|
ip addr del ${PEER_ADDR}/${NETMASK} dev \$INTERFACE
|
|
ip link set \$INTERFACE down
|
|
_EOF_
|
|
|
|
cat > hosts/server-up <<"_EOF_"
|
|
#!/bin/sh
|
|
ORIGINAL_GATEWAY=$(ip route show | grep ^default | cut -d ' ' -f 2-3)
|
|
ip route add $REMOTEADDRESS $ORIGINAL_GATEWAY
|
|
ip route add 0.0.0.0/1 dev $INTERFACE
|
|
ip route add 128.0.0.0/1 dev $INTERFACE
|
|
_EOF_
|
|
|
|
cat > hosts/server-down <<"_EOF_"
|
|
#!/bin/sh
|
|
ORIGINAL_GATEWAY=$(ip route show | grep ^default | cut -d ' ' -f 2-3)
|
|
ip route del $REMOTEADDRESS $ORIGINAL_GATEWAY
|
|
ip route del 0.0.0.0/1 dev $INTERFACE
|
|
ip route del 128.0.0.0/1 dev $INTERFACE
|
|
_EOF_
|
|
|
|
chmod +x tinc-up tinc-down hosts/server-up hosts/server-down
|
|
|
|
cd /etc/tinc/${NETNAME}/peers
|
|
tar czf ${PEER_NAME}.tar.gz ${PEER_NAME}
|
|
rm -rf ${PEER_NAME}
|
|
|
|
echo "'${PEER_NAME}' => '${PWD}/${PEER_NAME}.tar.gz'"
|