File: container.setup.sh

package info (click to toggle)
sshuttle 1.3.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 920 kB
  • sloc: python: 6,313; sh: 361; makefile: 161
file content (65 lines) | stat: -rwxr-xr-x 1,366 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/with-contenv bash
# shellcheck shell=bash

set -e

function with_set_x() {
    set -x
    "$@"
    {
        ec=$?
        set +x
        return $ec
    } 2>/dev/null
}


function log() {
    echo "$*" >&2
}

log ">>> Setting up $(hostname) | id: $(id)\nIP:\n$(ip a)\nRoutes:\n$(ip r)\npyenv:\n$(pyenv versions)"

echo "
AcceptEnv PYENV_VERSION
" >> /etc/ssh/sshd_config

iface="$(ip route | awk '/default/ { print $5 }')"
default_gw="$(ip route | awk '/default/ { print $3 }')"
for addr in ${ADD_IP_ADDRESSES//,/ }; do
    log ">>> Adding $addr to interface $iface"
    net_addr=$(ipcalc -n "$addr" | awk -F= '{print $2}')
    with_set_x ip addr add "$addr" dev "$iface"
    with_set_x ip route add "$net_addr" via "$default_gw" dev "$iface" # so that sshuttle -N can discover routes
done

log ">>> Starting iperf3 server"
iperf3 --server --port 5001 &

mkdir -p /www
echo "<h5>Hello from $(hostname)</h5>
<pre>
<u>ip address</u>
$(ip address)
<u>ip route</u>
$(ip route)
</pre>" >/www/index.html
echo " 
daemon off;
worker_processes 1;
error_log /dev/stdout info;
events {
    worker_connections 1024;
}
http {
    include /etc/nginx/mime.types;
    server {
        access_log /dev/stdout;
        listen 8080 default_server;
        listen [::]:8080 default_server;
        root /www;
    }
}" >/etc/nginx/nginx.conf

log ">>> Starting nginx"
nginx &