9a42a933a195aa390089ce69f8ecd2f566ce327f
[oam/tr069-adapter.git] / nginx / config / configNginx.sh
1 #!/bin/bash
2 # ============LICENSE_START========================================================================
3 # O-RAN-SC : tr-069-adapter
4 # =================================================================================================
5 # Copyright (C) 2020 CommScope Inc Intellectual Property.
6 # =================================================================================================
7 # This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,
8 # Version 2.0 (the "License"); you may not use this file except in compliance with the License. You
9 # may obtain a copy of the License at
10 #
11 # http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14 # either express or implied. See the License for the specific language governing permissions and
15 # limitations under the License.
16 # ===============LICENSE_END=======================================================================
17
18 NGINX_CONF=/etc/nginx/nginx.conf
19
20 updateAdapter()
21 {
22 echo ""
23 echo "# Checking if TR069Adapter is SSL Enabled..."
24 if [ $tr069adapterComm != "SSL" ]; then
25   echo ": SSL Not enabled, Cleaning up the entries..."
26   perl -pi -e "s/tr069adapterComm//g" $NGINX_CONF
27     sed -i '/tr069adapterSSLCert;/,+4 d' $NGINX_CONF
28 else
29   echo ": SSL is enabled, Updating the entries..."
30   perl -pi -e "s/tr069adapterComm/ssl/g" $NGINX_CONF
31   perl -pi -e "s/tr069adapterSSLCert/${tr069adapterSSLCert}/g" $NGINX_CONF
32   perl -pi -e "s/tr069adapterSSLKey/${tr069adapterSSLKey}/g" $NGINX_CONF
33   if [ $tr069adapterSSLClientAuth != "TRUE" ]; then
34    echo ": Client Trusted Certificate verification is NOT Enabled..."
35     sed -i '/tr069adapterSSLClientTrustCRT/,+2 d' $NGINX_CONF
36   else
37     echo ": Client Trusted Certificate verification is Enabled..."
38     perl -pi -e "s/tr069adapterSSLClientTrustCRT/${tr069adapterSSLClientTrustCRT}/g" $NGINX_CONF
39   fi
40 fi
41
42   if [ -f /etc/nginx/ssl/${tr069adapterCertPassPhrase} ]; then
43     echo ": Updating the Certificate PassPhrase..."
44     perl -pi -e "s/tr069adapterCertPassPhrase/${tr069adapterCertPassPhrase}/g" $NGINX_CONF
45   else
46     echo ": Certificate PassPhrase NOT Available..."
47     perl -pi -e "s/^\s*ssl_password_file.*//g" $NGINX_CONF
48     perl -pi -e "s/^\s*proxy_ssl_password_file.*//g" $NGINX_CONF
49   fi
50
51 echo ": Updating the IP Address for $netconfServerIP..."
52 if [[ ${netconfServerIP} =~ .*:.* ]]; then
53   perl -pi -e "s/netconfServerIP/[${netconfServerIP}]/g" $NGINX_CONF
54 else
55   perl -pi -e "s/netconfServerIP/${netconfServerIP}/g" $NGINX_CONF
56 fi
57 }
58
59 updateFaultVes()
60 {
61 echo ""
62 echo "# Checking configuration for Fault VES Collector..."
63 echo ": Updating the IP Address and Port for $faultvesCollectorHost..."
64 perl -pi -e "s/faultvesCollectorPort/${faultvesCollectorPort}/g" $NGINX_CONF
65 if [[ ${faultvesCollectorHost} =~ .*:.* ]]; then
66   if [ $faultvesCollectorComm = "noAuth" ]; then
67     perl -pi -e "s|https://faultvesCollectorHost|http://[${faultvesCollectorHost}]|g" $NGINX_CONF
68   else
69     perl -pi -e "s/faultvesCollectorHost/[${faultvesCollectorHost}]/g" $NGINX_CONF
70   fi
71 else
72   if [ $faultvesCollectorComm = "noAuth" ]; then
73     perl -pi -e "s|https://faultvesCollectorHost|http://${faultvesCollectorHost}|g" $NGINX_CONF
74   else
75    perl -pi -e "s/faultvesCollectorHost/${faultvesCollectorHost}/g" $NGINX_CONF
76   fi
77 fi
78
79 if [ $faultvesCollectorComm = "noAuth" ]; then
80   echo ": SSL Not enabled, Cleaning up the entries..."
81   sed -i '/faultvesCollectorSSLCert/,+9 d' $NGINX_CONF
82
83 elif [ $faultvesCollectorComm = "basicAuth" ]; then
84   echo ": SSL is enabled as basicAuth, Updating the entries..."
85   sed -i '/faultvesCollectorSSLCert/,+2 d' $NGINX_CONF
86   if [ ! -z ${faultvesCollectorBasicAuthUserPassEncrypt} ]; then
87     perl -pi -e "s/faultvesCollectorBasicAuthUserPassEncrypt/${faultvesCollectorBasicAuthUserPassEncrypt}/g" $NGINX_CONF
88   else
89     echo ": Username/Password Credentials not provided...FAILED"
90     exit 1
91   fi
92
93 elif [ $faultvesCollectorComm = "certOnly" ]; then
94   echo ": SSL is enabled as certOnly, Updating the entries..."
95   if [ -f /etc/nginx/ssl/${faultvesCollectorSSLCert} ]; then
96     perl -pi -e "s/faultvesCollectorSSLCert/${faultvesCollectorSSLCert}/g" $NGINX_CONF
97   else
98     echo ": SSL Certificate ${faultvesCollectorSSLCert} not available...FAILED"
99     exit 1
100   fi
101
102   if [ -f /etc/nginx/ssl/${faultvesCollectorSSLKey} ]; then
103     perl -pi -e "s/faultvesCollectorSSLKey/${faultvesCollectorSSLKey}/g" $NGINX_CONF
104   else
105     echo ": SSL Key ${faultvesCollectorSSLKey} not available...FAILED"
106     exit 1
107   fi
108
109   sed -i 's|proxy_set_header Authorization "Basic faultvesCollectorBasicAuthUserPassEncrypt";||g' $NGINX_CONF
110
111 elif [ $faultvesCollectorComm = "certBasicAuth" ]; then
112   echo ": SSL is enabled as certBasicAuth, Updating the entries..."
113   if [ ! -z ${faultvesCollectorBasicAuthUserPassEncrypt} ]; then
114     perl -pi -e "s/faultvesCollectorBasicAuthUserPassEncrypt/${faultvesCollectorBasicAuthUserPassEncrypt}/g" $NGINX_CONF
115   else
116     echo ": Username/Password Credentials not provided...FAILED"
117     exit 1
118   fi
119
120   if [ -f /etc/nginx/ssl/${faultvesCollectorSSLCert} ]; then
121     perl -pi -e "s/faultvesCollectorSSLCert/${faultvesCollectorSSLCert}/g" $NGINX_CONF
122   else
123     echo ": SSL Certificate ${faultvesCollectorSSLCert} not available...FAILED"
124     exit 1
125   fi
126
127   if [ -f /etc/nginx/ssl/${faultvesCollectorSSLKey} ]; then
128     perl -pi -e "s/faultvesCollectorSSLKey/${faultvesCollectorSSLKey}/g" $NGINX_CONF
129   else
130     echo ": SSL Key ${faultvesCollectorSSLKey} not available...FAILED"
131     exit 1
132   fi
133
134 else
135   echo ": Invalid Option... FAILED"
136   exit 1
137 fi
138
139 echo ""
140 echo "# Checking if Trusted CA Certificate verification is Enabled or Not..."
141 if [ $faultvesCollectorTrustVerify != "TRUE" ]; then
142   echo ": Trusted CA Certificate verification is NOT Enabled..."
143   sed -i '/faultvesCollectorTrustCRT/,+2 d' $NGINX_CONF
144 else
145   echo ": Trusted CA Certificate verification is Enabled..."
146   perl -pi -e "s/faultvesCollectorTrustCRT/${faultvesCollectorTrustCRT}/g" $NGINX_CONF
147 fi
148
149 echo ""
150 echo "# Checking if Fault VES Collector DNS Server Details are Provided..."
151 if [ ! -z ${faultvesCollectorDNSServer} ]; then
152   echo ": DNS Server Details Provided..."
153   perl -pi -e "s/faultvesCollectorDNSServer/${faultvesCollectorDNSServer}/g" $NGINX_CONF
154 else
155   echo ": DNS Server Details NOT Provided..."
156   sed -i 's|resolver faultvesCollectorDNSServer;||g' $NGINX_CONF
157 fi
158 }
159
160 updatePNFVes()
161 {
162 echo ""
163 echo "# Checking configuration for Pnf Req VES Collector..."
164 echo ": Updating the IP Address and Port for $pnfregvesCollectorHost..."
165 perl -pi -e "s/pnfregvesCollectorPort/${pnfregvesCollectorPort}/g" $NGINX_CONF
166 if [[ ${pnfregvesCollectorHost} =~ .*:.* ]]; then
167   if [ $pnfregvesCollectorComm = "noAuth" ]; then
168     perl -pi -e "s|https://pnfregvesCollectorHost|http://[${pnfregvesCollectorHost}]|g" $NGINX_CONF
169   else
170     perl -pi -e "s/pnfregvesCollectorHost/[${pnfregvesCollectorHost}]/g" $NGINX_CONF
171   fi
172 else
173   if [ $pnfregvesCollectorComm = "noAuth" ]; then
174     perl -pi -e "s|https://pnfregvesCollectorHost|http://${pnfregvesCollectorHost}|g" $NGINX_CONF
175   else
176    perl -pi -e "s/pnfregvesCollectorHost/${pnfregvesCollectorHost}/g" $NGINX_CONF
177   fi
178 fi
179
180 if [ $pnfregvesCollectorComm = "noAuth" ]; then
181   echo ": SSL Not enabled, Cleaning up the entries..."
182   sed -i '/pnfregvesCollectorSSLCert/,+9 d' $NGINX_CONF
183
184 elif [ $pnfregvesCollectorComm = "basicAuth" ]; then
185   echo ": SSL is enabled as basicAuth, Updating the entries..."
186   sed -i '/pnfregvesCollectorSSLCert/,+2 d' $NGINX_CONF
187   if [ ! -z ${pnfregvesCollectorBasicAuthUserPassEncrypt} ]; then
188     perl -pi -e "s/pnfregvesCollectorBasicAuthUserPassEncrypt/${pnfregvesCollectorBasicAuthUserPassEncrypt}/g" $NGINX_CONF
189   else
190     echo ": Username/Password Credentials not provided...FAILED"
191     exit 1
192   fi
193
194 elif [ $pnfregvesCollectorComm = "certOnly" ]; then
195   echo ": SSL is enabled as certOnly, Updating the entries..."
196   if [ -f /etc/nginx/ssl/${pnfregvesCollectorSSLCert} ]; then
197     perl -pi -e "s/pnfregvesCollectorSSLCert/${pnfregvesCollectorSSLCert}/g" $NGINX_CONF
198   else
199     echo ": SSL Certificate ${pnfregvesCollectorSSLCert} not available...FAILED"
200     exit 1
201   fi
202
203   if [ -f /etc/nginx/ssl/${pnfregvesCollectorSSLKey} ]; then
204     perl -pi -e "s/pnfregvesCollectorSSLKey/${pnfregvesCollectorSSLKey}/g" $NGINX_CONF
205   else
206     echo ": SSL Key ${pnfregvesCollectorSSLKey} not available...FAILED"
207     exit 1
208   fi
209
210   sed -i 's|proxy_set_header Authorization "Basic pnfregvesCollectorBasicAuthUserPassEncrypt";||g' $NGINX_CONF
211
212 elif [ $pnfregvesCollectorComm = "certBasicAuth" ]; then
213   echo ": SSL is enabled as certBasicAuth, Updating the entries..."
214   if [ ! -z ${pnfregvesCollectorBasicAuthUserPassEncrypt} ]; then
215     perl -pi -e "s/pnfregvesCollectorBasicAuthUserPassEncrypt/${pnfregvesCollectorBasicAuthUserPassEncrypt}/g" $NGINX_CONF
216   else
217     echo ": Username/Password Credentials not provided...FAILED"
218     exit 1
219   fi
220
221     if [ -f /etc/nginx/ssl/${pnfregvesCollectorSSLCert} ]; then
222     perl -pi -e "s/pnfregvesCollectorSSLCert/${pnfregvesCollectorSSLCert}/g" $NGINX_CONF
223   else
224     echo ": SSL Certificate ${pnfregvesCollectorSSLCert} not available...FAILED"
225     exit 1
226   fi
227
228   if [ -f /etc/nginx/ssl/${pnfregvesCollectorSSLKey} ]; then
229     perl -pi -e "s/pnfregvesCollectorSSLKey/${pnfregvesCollectorSSLKey}/g" $NGINX_CONF
230   else
231     echo ": SSL Key ${pnfregvesCollectorSSLKey} not available...FAILED"
232     exit 1
233   fi
234
235 else
236   echo ": Invalid Option... FAILED"
237   exit 1
238 fi
239
240 echo ""
241 echo "# Checking if Trusted CA Certificate verification is Enabled or Not..."
242 if [ $pnfregvesCollectorTrustVerify != "TRUE" ]; then
243   echo ": Trusted CA Certificate verification is NOT Enabled..."
244   sed -i '/pnfregvesCollectorTrustCRT/,+2 d' $NGINX_CONF
245 else
246   echo ": Trusted CA Certificate verification is Enabled..."
247   perl -pi -e "s/pnfregvesCollectorTrustCRT/${pnfregvesCollectorTrustCRT}/g" $NGINX_CONF
248 fi
249
250 echo""
251 echo "# Checking if PNF VES Collector DNS Server Details are Provided..."
252 if [ ! -z ${pnfregvesCollectorDNSServer} ]; then
253   echo ": DNS Server Details Provided..."
254   perl -pi -e "s/pnfregvesCollectorDNSServer/${pnfregvesCollectorDNSServer}/g" $NGINX_CONF
255 else
256   echo ": DNS Server Details NOT Provided..."
257   sed -i 's|resolver pnfregvesCollectorDNSServer;||g' $NGINX_CONF
258 fi
259 }
260
261 #
262 # Main Call
263 #
264
265 updateAdapter
266 updateFaultVes
267 updatePNFVes
268
269 exec nginx -g 'daemon off;'
270