xentaur
view 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 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
