summaryrefslogtreecommitdiffstats
path: root/hosts/.scripts
diff options
context:
space:
mode:
authorFelix Richter <Felix.Richter@syntax-fehler.de>2011-05-10 21:05:33 +0200
committerFelix Richter <Felix.Richter@syntax-fehler.de>2011-05-10 21:05:33 +0200
commitb54e30f1d4b37f9b01be4434d6b03e6301c46e14 (patch)
treee9cb9d93cdfa86d062e3990a5c50c0b19510d052 /hosts/.scripts
parent517f4d882850f2ca1a862a4e82d716234fe6acae (diff)
migrate to new repo layout
README: added new clean install script description build_debian.sh: updated build_debian script (might still be broken) install.sh: updated script to work with new layout (untested)
Diffstat (limited to 'hosts/.scripts')
-rw-r--r--hosts/.scripts/README15
-rwxr-xr-xhosts/.scripts/build_arch.sh14
-rwxr-xr-xhosts/.scripts/build_debian.sh18
-rwxr-xr-xhosts/.scripts/build_debian_clean.sh31
-rwxr-xr-xhosts/.scripts/build_ec2.sh16
-rw-r--r--hosts/.scripts/build_no.de.sh1
-rwxr-xr-xhosts/.scripts/install.sh68
7 files changed, 163 insertions, 0 deletions
diff --git a/hosts/.scripts/README b/hosts/.scripts/README
new file mode 100644
index 00000000..8d104179
--- /dev/null
+++ b/hosts/.scripts/README
@@ -0,0 +1,15 @@
+This directory contains the build and install scripts for shack-retiolum
+
+1. build_arch
+ arch linux build script
+2. build_debian
+ debian build script
+3. build_debian_clean
+ debian script which builds a clean tinc daemon
+4. build_ec2
+ Amazon ec2 base instance build script
+5. install.sh
+ configures the tinc daemon
+ $1 is the nickname
+ $2 is the ip-address
+hosts.tar contains the currently available hosts
diff --git a/hosts/.scripts/build_arch.sh b/hosts/.scripts/build_arch.sh
new file mode 100755
index 00000000..5ef5d765
--- /dev/null
+++ b/hosts/.scripts/build_arch.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -e
+sudo pacman -S openssl gcc lzo
+curl http://www.tinc-vpn.org/packages/tinc-1.0.13.tar.gz | tar xz
+cd tinc-1.0.13
+./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+make
+sudo make install
+cd ..
+
+echo "overwriting python to python2"
+sed 's/\/usr\/bin\/python/\/usr\/bin\/python2/g' install.sh >install2.sh
+mv install2.sh install.sh
+
diff --git a/hosts/.scripts/build_debian.sh b/hosts/.scripts/build_debian.sh
new file mode 100755
index 00000000..d8fcec2f
--- /dev/null
+++ b/hosts/.scripts/build_debian.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+set -x
+MYIP=10.0.7.7.55
+
+apt-get install tinc git curl python
+
+git clone https://github.com/makefu/shack-retiolum.git
+
+cd shack-retiolum
+
+./install.sh `hostname` $MYIP
+cd ..
+rm shack-retiolum
+# for autostart
+sed -i '/retiolum/d' /etc/tinc/nets.boot
+echo "retiolum" >> /etc/tinc/nets.boot
+sed -i '/EXTRA/d' /etc/tinc/nets.boot
+echo "EXTRA=\"\"" >> /etc/default/tinc
diff --git a/hosts/.scripts/build_debian_clean.sh b/hosts/.scripts/build_debian_clean.sh
new file mode 100755
index 00000000..a7332f4e
--- /dev/null
+++ b/hosts/.scripts/build_debian_clean.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+set -xe
+MYIP=10.0.7.7.55
+
+apt-get install tinc git curl gcc gcc-dev build-essential libssl-dev python
+
+git clone https://github.com/makefu/shack-retiolum.git
+
+mkdir build
+cd build
+curl http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz | tar
+xz
+cd lzo-2.04
+./configure --prefix=/usr
+make
+sudo make install
+cd ..
+curl http://www.tinc-vpn.org/packages/tinc-1.0.13.tar.gz | tar xz
+cd tinc-1.0.13
+./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+make
+sudo make install
+cd ../..
+
+cd shack-retiolum
+./install.sh `hostname` $MYIP
+
+rm shack-retiolum
+# for autostart
+echo "retiolum" >> /etc/tinc/nets.boot
+echo "EXTRA=\"--user=tincd --chroot\"" >> /etc/default/tinc
diff --git a/hosts/.scripts/build_ec2.sh b/hosts/.scripts/build_ec2.sh
new file mode 100755
index 00000000..79f2af28
--- /dev/null
+++ b/hosts/.scripts/build_ec2.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -e
+sudo yum install -y gcc openssl-devel
+mkdir build
+cd build
+curl http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz | tar xz
+cd lzo-2.04
+./configure --prefix=/usr
+make
+sudo make install
+cd ..
+curl http://www.tinc-vpn.org/packages/tinc-1.0.13.tar.gz | tar xz
+cd tinc-1.0.13
+./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+make
+sudo make install
diff --git a/hosts/.scripts/build_no.de.sh b/hosts/.scripts/build_no.de.sh
new file mode 100644
index 00000000..2976d3a2
--- /dev/null
+++ b/hosts/.scripts/build_no.de.sh
@@ -0,0 +1 @@
+pkgin in lzo gcc-tools gcc-compiler gcc34
diff --git a/hosts/.scripts/install.sh b/hosts/.scripts/install.sh
new file mode 100755
index 00000000..4b21bcd4
--- /dev/null
+++ b/hosts/.scripts/install.sh
@@ -0,0 +1,68 @@
+#! /bin/sh
+# USE WITH GREAT CAUTION
+
+set -e
+myname="${1:-dummy}"
+rel_hostsfile=`dirname $0`/..
+hostsfile=`readlink -f $rel_hostsfile`
+netname=retiolum
+myipv4="${2:-10.7.7.56}"
+mynet4=10.7.7.0
+CURR=`pwd`
+# create configuration directory for $netname
+mkdir -p /etc/tinc/$netname
+cd /etc/tinc/$netname
+
+# get currently known hosts
+cp -r $hostsfile hosts
+echo "added known hosts:"
+ls -1 | LC_ALL=C sort
+echo "delete the nodes you do not trust!"
+
+
+cat>tinc-up<<EOF
+#! /bin/sh
+ifconfig \$INTERFACE up $myipv4/24
+route add -net $mynet4/24 dev \$INTERFACE
+EOF
+
+chmod +x tinc-up
+
+cat>tinc.conf<<EOF
+Name = $myname
+ConnectTo = supernode
+ConnectTo = kaah
+ConnectTo = pa_sharepoint
+Device = /dev/net/tun
+EOF
+echo "Subnet = $myipv4" > hosts/$myname
+tincd -n $netname -K
+
+echo Writing Public Key to irc channel
+cat>write_channel.py<<EOF
+#!/usr/bin/python
+import random, sys, time, socket
+
+CHANNEL = '#tincspasm'
+HOST='irc.freenode.net'
+FILE="/etc/tinc/retiolum/hosts/$myname"
+PORT=6667
+NICK= "$myname_"+str(random.randint(23,666))
+
+sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
+sock.connect((HOST,PORT))
+print NICK
+sock.send("NICK %s\r\n" % NICK)
+sock.send("USER %s %s bla : %s\r\n" %(NICK,HOST,NICK))
+sock.send("JOIN %s\r\n" % CHANNEL)
+time.sleep(23)
+f = open(FILE,'r')
+a = [ sock.send("PRIVMSG %s : %s" % ( CHANNEL,line)) for line in f]
+time.sleep(5) #because irc is so lazy
+print "closing socket"
+sock.close()
+EOF
+python write_channel.py
+# add user tincd
+useradd tincd
+tincd --user=tincd --chroot -n $netname