xentaur

view files/prepare-ec2-instance @ 67:6c145935ece5

Fixed path scripts and configuration templates moved to a single file.
author Igor Chubin <igor@chub.in>
date Mon Jan 11 13:01:35 2010 +0200 (2010-01-11)
parents
children f652fab38c7a
line source
2 # usage:
3 # loads /etc/xgurulla/config
4 #
5 # N the number of the instance
6 # NETWORK_NAME
7 # SERVER_NAME
9 MAX_INSTANCES=10
10 FIRST_VLAN=100
11 LAST_VLAN=200
13 . /etc/xgurulla/config
15 common_setup()
16 {
17 echo $HOSTNAME > /etc/hostname
18 echo 127.0.0.1 $HOSTNAME ${HOSTNAME%%.*} > /etc/hosts
19 hostname $HOSTNAME
20 touch /root/.hushlogin
21 export DEBIAN_FRONTEND=noninteractive
22 pkill apt-get ; pkill dpkg ; sleep 5; pkill apt-get; pkill dpkg ; sleep 5
23 dpkg --configure -a
24 apt-get -q -y update
25 apt-get -q -y install dynamips openvpn bridge-utils rsync vlan unzip screen &
26 while ps waux | grep -q apt-get
27 do
28 sleep 5
29 if ps aux | grep -v grep | grep -q dpkg.*defunct
30 then
31 pkill apt-get ; pkill dpkg ; sleep 5; pkill apt-get; pkill dpkg ; sleep 5
32 dpkg --configure -a
33 apt-get -q -y install dynamips openvpn bridge-utils rsync vlan unzip screen &
34 fi
35 done
36 }
38 server_bridges_setup()
39 {
40 brctl addbr br0
41 ip link set br0 up
42 ifconfig br0 promisc
43 for i in `seq 0 $MAX_INSTANCES`
44 do
45 brctl addif br0 tap$i
46 ip link set tap$i up
47 done
48 }
50 vlans_setup()
51 {
52 interface=$1
53 ip link set $interface up
54 vconfig set_name_type VLAN_PLUS_VID_NO_PAD
55 for i in `seq $FIRST_VLAN $LAST_VLAN`
56 do
57 vconfig add $interface $i
58 ip link set vlan$i up
59 brctl addbr br$i
60 ip link set br$i up
61 ifconfig br$i promisc
62 brctl addif br$i vlan$i
63 done
64 }
66 server_setup()
67 {
68 cd /etc/openvpn
69 openvpn --genkey --secret static.key
70 for i in `seq 0 $MAX_INSTANCES`
71 do
72 cat <<EOF > server$i.conf
73 port $((22000+i))
74 secret static.key
75 dev tap$i
76 EOF
77 done
78 /etc/init.d/openvpn restart
79 }
81 client_setup()
82 {
83 cd /etc/openvpn
84 scp $SERVER:/etc/openvpn/static.key .
85 cat <<EOF > client.conf
86 port $((22000+N))
87 secret static.key
88 remote $SERVER
89 dev tap0
90 EOF
91 /etc/init.d/openvpn restart
92 }
94 copy_files_to_server()
95 {
96 mkdir /mnt2
97 mount /dev/sdb1 /mnt2
98 rsync -a /mnt2/ /mnt/
99 umount /mnt2
100 rmdir /mnt2
102 #mkdir /mnt/ios
103 #cd /mnt/ios
104 #wget http://igor.chub.in/tmp/ios
105 #unzip ios
106 }
108 copy_files_from_server()
109 {
110 rsync -a $SERVER:/mnt/ /mnt/
111 }
113 if [ "$1" = vlans_setup ]
114 then
115 [ "$N" = 0 ] && vlans_setup br0 || vlan_setup tap0
116 exit 0
117 fi
119 if [ "$1" = server_bridges_setup ]
120 then
121 [ "$N" = 0 ] && server_bridges_setup
122 exit 0
123 fi
126 if [ "$N" = 0 ]
127 then
128 common_setup
129 server_setup
130 server_bridges_setup
131 vlans_setup br0
132 copy_files_to_server
133 else
134 common_setup
135 client_setup
136 vlans_setup tap0
137 copy_files_from_server
138 fi