1
- #! /usr/bin/env bash
1
+ #! /bin/bash
2
+
3
+ # ----------------------------------------------------------------------------
4
+ # Copyright 2005-20012 WSO2, Inc. http://www.wso2.org
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ # ----------------------------------------------------------------------------
2
19
export LOG=/var/log/wso2-openstack.log
3
- export JAVA_HOME=/opt/java/
4
- instance_path=/var/lib/cloud/instance
5
-
6
- # Variables taken from the payload passed to the instance
7
- export REPO_PATH_S3=" "
8
- export CONF_PATH_S3=" "
9
- export REPO_PATH_EBS=" "
10
- export CONF_PATH_EBS=" "
11
- export PRODUCT_NAME=" "
12
- export CONTROLLER_IP=" "
13
- CRON_DURATION=2
20
+ export instance_path=/var/lib/cloud/instance
14
21
PUBLIC_IP=" "
15
-
22
+ CRON_DURATION=1
23
+ PRODUCT_NAME=" "
16
24
17
25
# Check whether if any java processes are running
18
26
if [[ " $( pidof java) " ]]; then
29
37
30
38
echo ---------------------------- >> $LOG
31
39
32
- if [ ! -d ${instance_path} /payload ]; then
33
- # payload will be copied into ${instance_path}/user-data.txt file
34
- # that file will be renamed as zip file and extract,
35
-
36
- # copy user-data.txt and rename as payload.zip file
37
- cp ${instance_path} /user-data.txt ${instance_path} /payload.zip
38
-
39
- # if error code is 0, there was no error
40
- if [ " $? " = " 0" ]; then
41
- echo retrieved data >> $LOG
42
- rm -Rf ${instance_path} /payload
43
- unzip ${instance_path} /payload.zip -d ${instance_path} /
44
- # if unzip error code is 0, there was no error
45
- if [ " $? " = " 0" ]; then
46
- echo Extracted payload >> $LOG
47
- else
48
- echo rc.local : payload.zip is corrupted >> $LOG
49
- fi
50
-
51
- else
52
- echo rc.local : error retrieving user data >> $LOG
53
- fi
54
-
55
- chmod -R 0600 ${instance_path} /payload/wso2-key
56
- cat ${instance_path} /payload/known_hosts >> ~ /.ssh/known_hosts
57
40
41
+ if [ ! -d ${instance_path} /payload ]; then
42
+ echo " creating payload dir ... " >> $LOG
43
+ mkdir ${instance_path} /payload
44
+ echo " payload dir created ... " >> $LOG
45
+ # payload will be copied into ${instance_path}/payload/launch-params file
46
+ cp ${instance_path} /user-data.txt ${instance_path} /payload/launch-params
47
+ echo " payload copied ... " >> $LOG
48
+ for i in ` /usr/bin/ruby /opt/get-launch-params.rb`
49
+ do
50
+ echo " exporting to bashrc $i ... " >> $LOG
51
+ echo " export" ${i} >> /home/ubuntu/.bashrc
52
+ done
53
+ source /home/ubuntu/.bashrc
58
54
# Write a cronjob to execute wso2-openstack-init.sh periodically until public ip is assigned
59
55
crontab -l > ./mycron
60
56
echo " */${CRON_DURATION} * * * * /opt/wso2-openstack-init.sh > /var/log/wso2-openstack-init.log" >> ./mycron
61
57
crontab ./mycron
62
58
rm ./mycron
63
59
64
- for i in ` /usr/bin/ruby /opt/get-launch-params.rb`
65
- do
66
- echo " export" ${i} >> /home/ubuntu/.bashrc
67
- done
68
-
69
60
fi
70
61
71
62
63
+ echo ---------------------------- >> $LOG
64
+
65
+ echo " getting public ip from metadata service" >> $LOG
72
66
wget http://169.254.169.254/latest/meta-data/public-ipv4
73
67
files=" ` cat public-ipv4` "
74
68
if [[ -z ${files} ]]; then
75
- echo " getting public ip" >> $LOG
69
+ echo " getting public ip. If fail retry 30 times " >> $LOG
76
70
for i in {1..30}
77
71
do
78
72
rm -f ./public-ipv4
@@ -83,6 +77,7 @@ if [[ -z ${files} ]]; then
83
77
sleep 1
84
78
else
85
79
echo " Public ip assigned" >> $LOG
80
+ crontab -r
86
81
break
87
82
fi
88
83
done
@@ -96,41 +91,18 @@ if [[ -z ${files} ]]; then
96
91
PUBLIC_IP=" $x "
97
92
done
98
93
99
- fi
100
-
101
- echo wget the ipv4 >> $LOG
102
- echo " $files " >> $LOG
103
94
104
- echo done_ public ip >> $LOG
105
- echo $PUBLIC_IP >> $LOG
95
+ else
96
+ PUBLIC_IP=" $files "
97
+ crontab -r
98
+ fi
106
99
107
- temp_private_ip=` ifconfig eth0 | grep inet | grep -v inet6 | cut -d " :" -f 2 | cut -d " " -f 1`
108
- PRIVATE_IP=$temp_private_ip
109
100
110
101
for i in ` /usr/bin/ruby /opt/get-launch-params.rb`
111
102
do
112
103
export ${i}
113
104
done
114
105
115
- if [[ ! -d /opt/${PRODUCT_NAME} ]]; then
116
- if [[ " $( pidof scp) " || " $( pidof unzip) " ]]; then
117
- echo " Copying and unarchiving the products already begun. So exiting ..." >> $LOG
118
- exit 0
119
- fi
120
- if [[ ! -f /opt/${PRODUCT_NAME} .zip ]]; then
121
- echo " Copying the product from the controller" >> $LOG
122
- echo " scp -i ${instance_path} /payload/wso2-key root@${CONTROLLER_IP} :/opt/${PRODUCT_NAME} .zip /opt/" >> $LOG
123
- scp -i ${instance_path} /payload/wso2-key root@${CONTROLLER_IP} :/opt/${PRODUCT_NAME} .zip /opt/
124
- echo " Unarchiving the pack ..." >> $LOG
125
- unzip /opt/${PRODUCT_NAME} .zip -d /opt/
126
- if [ " $? " = " 0" ]; then
127
- echo Extracted product >> $LOG
128
- else
129
- echo product zip file is corrupted >> $LOG
130
- exit 0
131
- fi
132
- fi
133
- fi
134
106
135
107
if [ " $ADMIN_USERNAME " = " " ]; then
136
108
echo Launching with default admin username >> $LOG
0 commit comments