xentaur

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