xentaur
diff files/prepare-ec2-instance @ 66:aaf034af3a35
Merge of Xgurulla into Xentaur code. Not completed yet!!!
Now Xentaur can work with Amazon EC2,
but only with. Local domains management
is switched off temporarily.
Now Xentaur can work with Amazon EC2,
but only with. Local domains management
is switched off temporarily.
author | Igor Chubin <igor@chub.in> |
---|---|
date | Sat Jan 09 20:20:08 2010 +0200 (2010-01-09) |
parents | |
children | f652fab38c7a |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/files/prepare-ec2-instance Sat Jan 09 20:20:08 2010 +0200 1.3 @@ -0,0 +1,139 @@ 1.4 + 1.5 +# usage: 1.6 +# loads /etc/xgurulla/config 1.7 +# 1.8 +# N the number of the instance 1.9 +# NETWORK_NAME 1.10 +# SERVER_NAME 1.11 + 1.12 +MAX_INSTANCES=10 1.13 +FIRST_VLAN=100 1.14 +LAST_VLAN=200 1.15 + 1.16 +. /etc/xgurulla/config 1.17 + 1.18 +common_setup() 1.19 +{ 1.20 + echo $HOSTNAME > /etc/hostname 1.21 + echo 127.0.0.1 $HOSTNAME ${HOSTNAME%%.*} > /etc/hosts 1.22 + hostname $HOSTNAME 1.23 + touch /root/.hushlogin 1.24 + export DEBIAN_FRONTEND=noninteractive 1.25 + pkill apt-get ; pkill dpkg ; sleep 5; pkill apt-get; pkill dpkg ; sleep 5 1.26 + dpkg --configure -a 1.27 + apt-get -q -y update 1.28 + apt-get -q -y install dynamips openvpn bridge-utils rsync vlan unzip screen & 1.29 + while ps waux | grep -q apt-get 1.30 + do 1.31 + sleep 5 1.32 + if ps aux | grep -v grep | grep -q dpkg.*defunct 1.33 + then 1.34 + pkill apt-get ; pkill dpkg ; sleep 5; pkill apt-get; pkill dpkg ; sleep 5 1.35 + dpkg --configure -a 1.36 + apt-get -q -y install dynamips openvpn bridge-utils rsync vlan unzip screen & 1.37 + fi 1.38 + done 1.39 +} 1.40 + 1.41 +server_bridges_setup() 1.42 +{ 1.43 + brctl addbr br0 1.44 + ip link set br0 up 1.45 + ifconfig br0 promisc 1.46 + for i in `seq 0 $MAX_INSTANCES` 1.47 + do 1.48 + brctl addif br0 tap$i 1.49 + ip link set tap$i up 1.50 + done 1.51 +} 1.52 + 1.53 +vlans_setup() 1.54 +{ 1.55 + interface=$1 1.56 + ip link set $interface up 1.57 + vconfig set_name_type VLAN_PLUS_VID_NO_PAD 1.58 + for i in `seq $FIRST_VLAN $LAST_VLAN` 1.59 + do 1.60 + vconfig add $interface $i 1.61 + ip link set vlan$i up 1.62 + brctl addbr br$i 1.63 + ip link set br$i up 1.64 + ifconfig br$i promisc 1.65 + brctl addif br$i vlan$i 1.66 + done 1.67 +} 1.68 + 1.69 +server_setup() 1.70 +{ 1.71 + cd /etc/openvpn 1.72 + openvpn --genkey --secret static.key 1.73 + for i in `seq 0 $MAX_INSTANCES` 1.74 + do 1.75 + cat <<EOF > server$i.conf 1.76 +port $((22000+i)) 1.77 +secret static.key 1.78 +dev tap$i 1.79 +EOF 1.80 + done 1.81 + /etc/init.d/openvpn restart 1.82 +} 1.83 + 1.84 +client_setup() 1.85 +{ 1.86 + cd /etc/openvpn 1.87 + scp $SERVER:/etc/openvpn/static.key . 1.88 + cat <<EOF > client.conf 1.89 +port $((22000+N)) 1.90 +secret static.key 1.91 +remote $SERVER 1.92 +dev tap0 1.93 +EOF 1.94 + /etc/init.d/openvpn restart 1.95 +} 1.96 + 1.97 +copy_files_to_server() 1.98 +{ 1.99 + mkdir /mnt2 1.100 + mount /dev/sdb1 /mnt2 1.101 + rsync -a /mnt2/ /mnt/ 1.102 + umount /mnt2 1.103 + rmdir /mnt2 1.104 + 1.105 + #mkdir /mnt/ios 1.106 + #cd /mnt/ios 1.107 + #wget http://igor.chub.in/tmp/ios 1.108 + #unzip ios 1.109 +} 1.110 + 1.111 +copy_files_from_server() 1.112 +{ 1.113 + rsync -a $SERVER:/mnt/ /mnt/ 1.114 +} 1.115 + 1.116 +if [ "$1" = vlans_setup ] 1.117 +then 1.118 + [ "$N" = 0 ] && vlans_setup br0 || vlan_setup tap0 1.119 + exit 0 1.120 +fi 1.121 + 1.122 +if [ "$1" = server_bridges_setup ] 1.123 +then 1.124 + [ "$N" = 0 ] && server_bridges_setup 1.125 + exit 0 1.126 +fi 1.127 + 1.128 + 1.129 +if [ "$N" = 0 ] 1.130 +then 1.131 + common_setup 1.132 + server_setup 1.133 + server_bridges_setup 1.134 + vlans_setup br0 1.135 + copy_files_to_server 1.136 +else 1.137 + common_setup 1.138 + client_setup 1.139 + vlans_setup tap0 1.140 + copy_files_from_server 1.141 +fi 1.142 +