This repository has been archived by the owner on Feb 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
init.sh
executable file
·227 lines (199 loc) · 7.58 KB
/
init.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
#!/bin/sh
DEMO="Cloud JBoss Travel Agency Demo"
AUTHORS="Niraj Patel, Shepherd Chengeta,"
AUTHORS2="Andrew Block, Eric D. Schabell"
PROJECT="git@github.com:redhatdemocentral/rhcs-travel-agency-demo.git"
SRC_DIR=./installs
SUPPORT_DIR=./support
BPMS=jboss-bpmsuite-6.4.0.GA-deployable-eap7.x.zip
EAP=jboss-eap-7.0.0-installer.jar
# adjust these variables to point to an OCP instance.
OPENSHIFT_USER=openshift-dev
OPENSHIFT_PWD=devel
HOST_IP=yourhost.com
OCP_DESCRIPTION="Cloud Travel Bookings"
OCP_PRJ=appdev-in-cloud
OCP_APP=rhcs-travel-agency-demo
# prints the documentation for this script.
function print_docs()
{
echo "This project can be installed on any OpenShift platform, such as the OpenShift"
echo "Container Platform (OCP). It is possible to install it on any available installation,"
echo "just point this installer at your installation by passing an IP of your OpenShift"
echo "installation:"
echo
echo " $ ./init.sh IP"
echo
echo "If using Red Hat OCP, IP should look like: 192.168.99.100"
echo
}
# check for a valid passed IP address.
function valid_ip()
{
local ip=$1
local stat=1
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
OIFS=$IFS
IFS='.'
ip=($ip)
IFS=$OIFS
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
stat=$?
fi
return $stat
}
# wipe screen.
clear
echo
echo "####################################################################"
echo "## ##"
echo "## Setting up the ${DEMO} ##"
echo "## ##"
echo "## ##"
echo "## #### #### # # ### # # ##### ##### ##### ##"
echo "## # # # # # # # # # # # # # # ##"
echo "## #### #### # # # ## # # # # ### ##"
echo "## # # # # # # # # # # # ##"
echo "## #### # # # ### ##### ##### # ##### ##"
echo "## ##"
echo "## #### # ### # # #### ##"
echo "## # # # # # # # # # ##"
echo "## ### # # # # # # # # ##"
echo "## # # # # # # # # # ##"
echo "## #### ##### ### ### #### ##"
echo "## ##"
echo "## brought to you by, ##"
echo "## ${AUTHORS} ##"
echo "## ${AUTHORS2} ##"
echo "## ##"
echo "## ${PROJECT} ##"
echo "## ##"
echo "####################################################################"
echo
# validate OpenShift host IP.
if [ $# -eq 1 ]; then
if valid_ip "$1" || [ "$1" == "$HOST_IP" ]; then
echo "OpenShift host given is a valid IP..."
HOST_IP=$1
echo
echo "Proceeding with OpenShift host: $HOST_IP..."
echo
else
# bad argument passed.
echo "Please provide a valid IP that points to an OpenShift installation..."
echo
print_docs
echo
exit
fi
elif [ $# -gt 1 ]; then
print_docs
echo
exit
else
# no arguments, prodeed with default host.
print_docs
echo
exit
fi
# make some checks first before proceeding.
command -v oc -v >/dev/null 2>&1 || { echo >&2 "OpenShift command line tooling is required but not installed yet... download here: https://access.redhat.com/downloads/content/290"; exit 1; }
# make some checks first before proceeding.
if [ -r $SRC_DIR/$EAP ] || [ -L $SRC_DIR/$EAP ]; then
echo "Product EAP sources are present..."
echo
else
echo "Need to download $EAP package from https://developers.redhat.com/products/eap/download"
echo "and place it in the $SRC_DIR directory to proceed..."
echo
exit
fi
if [ -r $SRC_DIR/$BPMS ] || [ -L $SRC_DIR/$BPMS ]; then
echo "Product BPM Suite sources are present..."
echo
else
echo "Need to download $BPMS package from https://developers.redhat.com/products/bpmsuite/download"
echo "and place it in the $SRC_DIR directory to proceed..."
echo
exit
fi
echo "OpenShift commandline tooling is installed..."
echo
echo "Logging in to OCP as $OPENSHIFT_USER..."
echo
oc login "$HOST_IP:8443" --password="$OPENSHIFT_PWD" --username="$OPENSHIFT_USER"
if [ "$?" -ne "0" ]; then
echo
echo "Error occurred during 'oc login' command!"
exit
fi
echo
echo "Creating a new project..."
echo
oc new-project "$OCP_PRJ" --display-name="$OCP_DESCRIPTION" --description="Cloud JBoss Travel Agency showcasing process driven travel bookings system."
echo
echo "Setting up a new build..."
echo
oc delete bc "$OCP_APP" -n "$OCP_PRJ" >/dev/null 2>&1
oc delete imagestreams "developer" >/dev/null 2>&1
oc delete imagestreams "$OCP_APP" >/dev/null 2>&1
oc new-build "jbossdemocentral/developer" --name="$OCP_APP" --binary=true
if [ "$?" -ne "0" ]; then
echo
echo "Error occurred during 'oc new-build' command!"
exit
fi
# need to wait a bit for new build to finish with developer image.
sleep 10
echo
echo "Importing developer image..."
echo
oc import-image developer
if [ "$?" -ne "0" ]; then
echo
echo "Error occurred during 'oc import-image' command!"
exit
fi
echo
echo "Starting a build, this takes some time to upload all of the product sources for build..."
echo
oc start-build "$OCP_APP" --from-dir=. --follow=true --wait=true
if [ "$?" -ne "0" ]; then
echo
echo "Error occurred during 'oc start-build' command!"
exit
fi
echo
echo "Creating a new application..."
echo
oc new-app "$OCP_APP"
if [ "$?" -ne "0" ]; then
echo
echo "Error occurred during 'oc new-app' command!"
exit
fi
echo
echo "Creating an externally facing route by exposing a service..."
echo
oc expose service "$OCP_APP" --port=8080
if [ "$?" -ne "0" ]; then
echo
echo "Error occurred during 'oc expose service' command!"
exit
fi
echo
echo "=================================================================================="
echo "= ="
echo "= Login to start exploring the Travel Agency project: ="
echo "= ="
echo "= http://$OCP_APP-$OCP_PRJ.$HOST_IP.nip.io/business-central ="
echo "= ="
echo "= [ u:erics / p:bpmsuite1! ] ="
echo "= ="
echo "= Access the online Travel Agnecy booking web application at: ="
echo "= ="
echo "= http://$OCP_APP-$OCP_PRJ.$HOST_IP.nip.io/external-client-ui-form-1.0 ="
echo "= ="
echo "= Note: it takes a few minutes to expose the service... ="
echo "= ="
echo "=================================================================================="