8000 Refactor NGINX config uploads (#79) · nginx/ansible-role-nginx-config@3d6b859 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3d6b859

Browse files
authored
Refactor NGINX config uploads (#79)
1 parent 223bd15 commit 3d6b859

File tree

13 files changed

+289
-127
lines changed

13 files changed

+289
-127
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
*.key
55
*~
66
\#*
7+
!molecule.crt
8+
!molecule.key
79

810
# OS Specific #
911
###############

CHANGELOG.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,19 @@
44

55
BREAKING CHANGES:
66

7-
* Modify `servers`, `servers.listen`, `server.locations`, `upstream` and `upstream.servers` from nested dictionaries in the `http` and `stream` configuration templates to lists, as well as modify the `nginx_config_html_demo_template` variable from a nested dictionary to a list. To update your templates, replace the aforementioned nested dictionary keys by lists (place a dash in front of the topmost nested value within each aforementioned nested dictionary).
8-
* Remove/merge the `web_server` and `reverse_proxy` nested dictionary keys from the HTTP templates. These often lead to confusing and unnecessary code duplication and hard to maintain code. To update your templates, remove both keys and adjust your spacing accordingly.
9-
* Rename `proxy_hide_headers` to `proxy_hide_header` to align with NGINX directive names.
7+
* Rename upload related variables:
8+
* Rename the `nginx_config_snippet_upload_*` parameters to `nginx_config_upload_*` (check `defaults/main/upload.yml` for an example).
9+
* Rename the `nginx_config_html_upload_*` parameters to `nginx_config_upload_html_*`.
10+
* Rename the `nginx_config_ssl_upload_*` parameters to `nginx_config_upload_ssl_*`.
11+
* Tweak the `nginx_config_html_upload` and `nginx_config_ssl_upload` parameters to ow use a list instead of a single `src` and `dest` value (check `defaults/main/upload.yml` for an example).
12+
* Refactor the config templates to simplify the creation of templates as well as development and maintenance moving forward:
13+
* Modify `servers`, `servers.listen`, `server.locations`, `upstream` and `upstream.servers` from nested dictionaries in the `http` and `stream` configuration templates to lists, as well as modify the `nginx_config_html_demo_template` variable from a nested dictionary to a list. To update your templates, replace the aforementioned nested dictionary keys by lists (place a dash in front of the topmost nested value within each aforementioned nested dictionary).
14+
* Remove/merge the `web_server` and `reverse_proxy` nested dictionary keys from the HTTP templates. These often lead to confusing and unnecessary code duplication and hard to maintain code. To update your templates, remove both keys and adjust your spacing accordingly.
15+
* Rename `proxy_hide_headers` to `proxy_hide_header` within NGINX's template config to align with NGINX directive names.
16+
17+
DEPRECATION WARNINGS:
18+
19+
The `nginx_config_main_upload_*`, `nginx_config_upload_html_*`, and `nginx_config_stream_upload_*` parameters have been deprecated in favor of a newly introduced parameter, `nginx_config_upload_*` (previously `nginx_config_snippet_upload_*`). The new parameter provides greater flexibility in configuring your upload settings in addition to simplifying the upload Ansible tasks. The depecrated parameters will be removed in the next major release (0.5.0), due April 2021.
1020

1121
FEATURES:
1222

@@ -28,7 +38,7 @@ Add `state` parameter to package module in Molecule verification tests.
2838

2939
FEATURES:
3040

31-
* Add support for configuration snippets.
41+
* Add support for configuration snippets (use the `nginx_config_snippet_upload_*` parameters to configure it).
3242
* Add support for Dependabot.
3343

3444
ENHANCEMENTS:

defaults/main/upload.yml

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,34 @@
11
---
2-
# Enable uploading NGINX configuration files to your system.
2+
# Enable uploading NGINX related files to your system.
33
# Default for uploading files is false.
44
# Default location of files is the files folder within the NGINX Config Ansible role.
5-
# Upload the main NGINX configuration file.
5+
# (DEPRECATED) Upload the main NGINX configuration file.
66
nginx_config_main_upload_enable: false
77
nginx_config_main_upload_src: config/nginx.conf
88
nginx_config_main_upload_dest: /etc/nginx/
9-
# Upload HTTP NGINX configuration files.
9+
# (DEPRECATED) Upload HTTP NGINX configuration files.
1010
nginx_config_http_upload_enable: false
1111
nginx_config_http_upload_src: config/http/*.conf
1212
nginx_config_http_upload_dest: /etc/nginx/conf.d/
13-
# Upload Stream NGINX configuration files.
13+
# (DEPRECATED) Upload Stream NGINX configuration files.
1414
nginx_config_stream_upload_enable: false
1515
nginx_config_stream_upload_src: config/stream/*.conf
1616
nginx_config_stream_upload_dest: /etc/nginx/conf.d/
17+
# Upload NGINX config files/snippets.
18+
nginx_config_upload_enable: false
19+
nginx_config_upload:
20+
- src: config/snippets/ # You can optionally also include the specific file name
21+
dest: /etc/nginx/snippets # You can optionally also include the specific desired file name
1722
# Upload HTML files.
18-
nginx_config_html_upload_enable: false
19-
nginx_config_html_upload_src: www/*
20-
nginx_config_html_upload_dest: /usr/share/nginx/html
23+
nginx_config_upload_html_enable: false
24+
nginx_config_upload_html:
25+
- src: www/index.html
26+
dest: /usr/share/nginx/html
2127
# Upload SSL certificates and keys.
22-
nginx_config_ssl_upload_enable: false
23-
nginx_config_ssl_upload_crt_src: ssl/*.crt
24-
nginx_config_ssl_upload_crt_dest: /etc/ssl/certs/
25-
nginx_config_ssl_upload_key_src: ssl/*.key
26-
nginx_config_ssl_upload_key_dest: /etc/ssl/private/
27-
# Upload individual NGINX snippets.
28-
nginx_config_snippet_upload_enable: false
29-
nginx_config_snippet_upload:
30-
- src: config/snippets/snippet.conf
31-
dest: /etc/nginx/snippets # You can optionally also include the file name
28+
nginx_config_upload_ssl_enable: false
29+
nginx_config_upload_ssl_crt:
30+
- src: ssl/certs/
31+
dest: /etc/ssl/certs
32+
nginx_config_upload_ssl_key:
33+
- src: ssl/private/
34+
dest: /etc/ssl/private

molecule/common/files/http/default.conf

Lines changed: 0 additions & 44 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
server {
2+
listen 80;
3+
server_name localhost;
4+
5+
location / {
6+
root /usr/share/nginx/html;
7+
index index.html;
8+
}
9+
10+
# redirect server error pages to the static page /50x.html
11+
#
12+
error_page 500 502 503 504 /50x.html;
13+
location = /50x.html {
14+
root /usr/share/nginx/html;
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
server {
2+
listen 81;
3+
server_name localhost;
4+
5+
location / {
6+
root /usr/share/nginx/html;
7+
index index.html;
8+
}
9+
10+
# redirect server error pages to the static page /50x.html
11+
#
12+
error_page 500 502 503 504 /50x.html;
13+
location = /50x.html {
14+
root /usr/share/nginx/html;
15+
}
16+
}

molecule/common/files/nginx.conf

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ worker_processes 4;
44
error_log /var/log/nginx/error.log warn;
55
pid /var/run/nginx.pid;
66

7-
87
events {
98
worker_connections 1024;
109
}
1110

12-
1311
http {
1412
include /etc/nginx/mime.types;
1513
default_type application/octet-stream;
@@ -21,11 +19,8 @@ http {
2119
access_log /var/log/nginx/access.log main;
2220

2321
sendfile on;
24-
#tcp_nopush on;
2522

2623
keepalive_timeout 65;
2724

28-
#gzip on;
29-
3025
include /etc/nginx/conf.d/*.conf;
3126
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDlDCCAnwCCQD7m7JVq5+vDjANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMC
3+
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28x
4+
CzAJBgNVBAoMAkY1MQ4wDAYDVQQLDAVOR0lOWDESMBAGA1UEAwwJbG9jYWxob3N0
5+
MR4wHAYJKoZIhvcNAQkBFg9tb2xlY3VsZUBmNS5jb20wHhcNMjEwMjE2MTIzNTQ4
6+
WhcNMjIwMjE2MTIzNTQ4WjCBizELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlm
7+
b3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xCzAJBgNVBAoMAkY1MQ4wDAYD
8+
VQQLDAVOR0lOWDESMBAGA1UEAwwJbG9jYWxob3N0MR4wHAYJKoZIhvcNAQkBFg9t
9+
b2xlY3VsZUBmNS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDU
10+
JrVhZEuK+tSPepG1PXX6YRKMb/4iF8ievmGaVTARif8qUh+mrnh22EYbERnt411b
11+
as1SM5W4fvwkwPULyFkr1TwdqT9np4g+n1d+viyD0dhDAP6Q6bz0liiID/3RpcPf
12+
tvMbMV5JlIAMCp8Cr/sSHovH+0US/pWua35sg2EUi1CfqgetPE9Q7hcLDNfQVVoJ
13+
qy+L5FDm3+XUbmIYyvriyZ7PEYgHWTo7mjLEII7skcfMOwBWvwQRQ1MSyi7XY8TJ
14+
jrfnpXFC/UI1HLTI3SHH4vkwXwtHBqKbPwMB4dQUkmVOJCzqISenp3oroq//laMx
15+
Fj6ftrpA9xz7cxZj5urHAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJEPUUO2cNQK
16+
prJYC6TCX2GSGz4U0Xr5329lPAeVmMciKUTX382tcaWLJ4BovwBo8S6g4/++pAtZ
17+
cfg7hYAZIX31HFZ9tuzT8vFoFQY8NZ9CCgebh9GA2N3Cm5n7cv3y4oj5GstGx8mm
18+
O9t9Gi9w2L2C86GP1TcNN/TuETI7AQINOVb0bdvDExuqBLFucXPZMdxiBdGiLeq5
19+
CQRmq8zjpdnNfIC6iBN6vH/gW1AOG8tFww0nBxWyeo1iZBYI6I3vi/HKEqSruTa9
20+
gOrmZTn1bSOUO0YwynaiaFp4MYu8Vbpa9b7y812jH8fXYFqjXqRmVBPVlutpCt1J
21+
cSYyLfoK9+k=
22+
-----END CERTIFICATE-----
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDUJrVhZEuK+tSP
3+
epG1PXX6YRKMb/4iF8ievmGaVTARif8qUh+mrnh22EYbERnt411bas1SM5W4fvwk
4+
wPULyFkr1TwdqT9np4g+n1d+viyD0dhDAP6Q6bz0liiID/3RpcPftvMbMV5JlIAM
5+
Cp8Cr/sSHovH+0US/pWua35sg2EUi1CfqgetPE9Q7hcLDNfQVVoJqy+L5FDm3+XU
6+
bmIYyvriyZ7PEYgHWTo7mjLEII7skcfMOwBWvwQRQ1MSyi7XY8TJjrfnpXFC/UI1
7+
HLTI3SHH4vkwXwtHBqKbPwMB4dQUkmVOJCzqISenp3oroq//laMxFj6ftrpA9xz7
8+
cxZj5urHAgMBAAECggEBAKXKBi6w4TQf5qKlh16aRCtBVux2zKO58GbVopKoBeN+
9+
8vAQs3lfmPZO9yJJz/iOmLNLGF8nvtYqLkNOo3DsxXqyrcMEM29+hcNiZE7AsSrm
10+
f1mFWmrGrop5Gf2SeakvII4ge4UBpIxdx18hobfI7KzxQA0s+ILqfvCKQobseJ5D
11+
AJXn58Gh6r2/rYl9TrQGXeyegd9ALa9/nJKgsgYB4iL9svQonRIlxI26nvhoFEk8
12+
eaMOTryAcAk0c9E3vngiLLYL+LvATO3n+FeMCy+tU+pPJMoheszaEmv68XtfcYIT
13+
HGAZTNk8Ljba3QYN2lewLAc3dhhNDYdkHSUrx2qb75ECgYEA7VmoBeUyHg2lkdbM
14+
jKz6R7h0OgdjhChB4Bvy4ZvXvLU/sf2w65JCXEpS8lCSheqDvC/Ka9VQihOw1aqO
15+
oRsJ9WLa3sJPT9WL1g8HYkIFnYV9WsBGm38OYJDiVeqSxyRK2FmBCBOLKmWX8RPs
16+
a+8EN0//mfd82SbFAnWMz+5r94kCgYEA5NIrWLaXcG5VZScUrimVZQxOxk15V6Ai
17+
fPl42CyDooYscp6Qfvji8tvfrHHR8RvDdny0T7ETo/R7gamdnIrB01GlMZD60F1/
18+
jA1ExRHO/wUssfDXZWM0dX7BjyxZFpQDcDU+tq2F1O9HkJDbawK26/1h+X0MSdwC
19+
vqsk2+Sn688CgYA8sADzSPAwmQKtsINqsMvpzLMDJ2J9pyF44QyQPR3DZYCczSYQ
20+
hbwsBuEAjjN4xEbctkeGnOtT8sbzSwHfFZ/NO3KFJJ/M5Og1WnBj4ke3SCuOKb2k
21+
Aq+1ZzZIC4tuGcx9Vx1T6FNcCs/310VLL7kfP3g2cP5eM7iJ8W6IuAipKQKBgFpf
22+
l7cmBpHlQdz9nnFbAyIxxjsUBkTRfk2VymC21Bawn4V1kuRTMG9y39if66cqq/x0
23+
LFL9QSCUQuNnNlTJiNwJdxEojacWBnYuF2cuLW8TgB+XW7szf1iYg6IkhdshAmqi
24+
3O4RgrYi+0ThsYeGPvDd1oBPHzdcqcjcl2Yx3RCJAoGAKFvZnBlwN83cmjG4Dgj/
25+
j5RVeqfltNnJx5KxwNbFoEyQ1cpVDSkmxFaDO6Vgkn2fbudri8PA77nvVEE7K1Qx
26+
AGPLe4nnFKT3lCWKZtlLZPOySDAcDv+eBFpznY6pEjWAiU1WUR4rHJ0wE+ybnt1P
27+
nvRTuNrXt1FYtgbPD4CwxuU=
28+
-----END PRIVATE KEY-----
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<!-- {{ ansible_managed }} -->
2+
3+
<!DOCTYPE html>
4+
<html>
5+
<head>
6+
<title>Hello World</title>
7+
<link href="data:image/png;base64,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" rel="icon" type="image/png" />
8+
<style>
9+
body {
10+
margin: 0px;
11+
font: 20px 'RobotoRegular', Arial, sans-serif;
12+
font-weight: 100;
13+
height: 100%;
14+
color: #0f1419;
15+
}
16+
div.info {
17+
display: table;
18+
background: #e8eaec;
19+
padding: 20px 20px 20px 20px;
20+
border: 1px dashed black;
21+
border-radius: 10px;
22+
margin: 0px auto auto auto;
23+
}
24+
div.info p {
25+
display: table-row;
26+
margin: 5px auto auto auto;
27+
}
28+
div.info p span {
29+
display: table-cell;
30+
padding: 10px;
31+
}
32+
img {
33+
width: 176px;
34+
margin: 36px auto 36px auto;
35+
display:block;
36+
}
37+
div.smaller p span {
38+
color: #3D5266;
39+
}
40+
h1, h2 {
41+
font-weight: 100;
42+
}
43+
div.check {
44+
padding: 0px 0px 0px 0px;
45+
display: table;
46+
margin: 36px auto auto auto;
47+
font: 12px 'RobotoRegular', Arial, sans-serif;
48+
}
49+
#footer {
50+
position: fixed;
51+
bottom: 36px;
52+
width: 100%;
53+
}
54+
#center {
55+
width: 400px;
56+
margin: 0 auto;
57+
font: 18px Courier;
58+
}
59+
</style>
60+
<script>
61+
var ref;
62+
function checkRefresh(){
63+
if (document.cookie == "refresh=1") {
64+
document.getElementById("check").checked = true;
65+
ref = setTimeout(function(){location.reload();}, 1000);
66+
} else {
67+
}
68+
}
69+
function changeCookie() {
70+
if (document.getElementById("check").checked) {
71+
document.cookie = "refresh=1";
72+
ref = setTimeout(function(){location.reload();}, 1000);
73+
} else {
74+
document.cookie = "refresh=0";
75+
clearTimeout(ref);
76+
}
77+
}
78+
</script>
79+
</head>
80+
<body onload="checkRefresh();">
81+
<img alt="NGINX Logo" src="data:image/png;base64,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"/>
82+
<div class="info">
83+
<p><span>Web Server name:</span> <span>Molecule Server</span></p>
84+
<p><span>Server name:</span> <span>server_hostname</span></p>
85+
<p><span>Server address:</span> <span>server_address</span></p>
86+
<p><span>User Agent:</span> <span><small>client_browser</small></span></p>
87+
<p class="smaller"><span>URI:</span> <span>server_url</span></p>
88+
<p class="smaller"><span>Doc Root:</span> <span>document_root</span></p>
89+
<p class="smaller"><span>Date:</span> <span>server_date</span></p>
90+
<p class="smaller"><span>NGINX Front-End Load Balancer IP:</span><span>remote_addr</span></p>
91+
<p class="smaller"><span>Client IP:</span> <span>proxied_for_ip</span></p>
92+
<p class="smaller"><span>NGINX Version:</span> <span>nginx_version</span></p>
93+
</div>
94+
<div class="check"><input type="checkbox" id="check" onchange="changeCookie()"> Auto Refresh</div>
95+
<div id="footer">
96+
<div id="center" align="center">
97+
Request ID: request_id<br/>
98+
&copy; NGINX, Inc. 2018 - <script>document.write(new Date().getFullYear())</script>
99+
</div>
100+
</div>
101+
</body>
102+
</html>

0 commit comments

Comments
 (0)
0