aboutsummaryrefslogtreecommitdiffstats
path: root/opt/infra/roles/nginx
diff options
context:
space:
mode:
Diffstat (limited to 'opt/infra/roles/nginx')
-rw-r--r--opt/infra/roles/nginx/defaults/main.yml10
-rw-r--r--opt/infra/roles/nginx/handlers/main.yml4
-rw-r--r--opt/infra/roles/nginx/tasks/main.yml13
-rw-r--r--opt/infra/roles/nginx/templates/elk.conf.j214
-rw-r--r--opt/infra/roles/nginx/templates/qtip.conf.j217
-rw-r--r--opt/infra/roles/nginx/templates/testapi.conf.j217
6 files changed, 75 insertions, 0 deletions
diff --git a/opt/infra/roles/nginx/defaults/main.yml b/opt/infra/roles/nginx/defaults/main.yml
new file mode 100644
index 00000000..cdd1d773
--- /dev/null
+++ b/opt/infra/roles/nginx/defaults/main.yml
@@ -0,0 +1,10 @@
+---
+services:
+ - { name: kibana, upstream: 'http://127.0.0.1:5601' }
+ - { name: elastic, upstream: 'http://127.0.0.1:9200' }
+
+qtip_services:
+ - { name: restful_api, upstream: 'http://127.0.0.1:5000' }
+
+testapi_services:
+ - { name: testapi, upstream: 'http://127.0.0.1:8000' }
diff --git a/opt/infra/roles/nginx/handlers/main.yml b/opt/infra/roles/nginx/handlers/main.yml
new file mode 100644
index 00000000..35585363
--- /dev/null
+++ b/opt/infra/roles/nginx/handlers/main.yml
@@ -0,0 +1,4 @@
+---
+- name: restart nginx
+ become: true
+ service: name=nginx state=restarted
diff --git a/opt/infra/roles/nginx/tasks/main.yml b/opt/infra/roles/nginx/tasks/main.yml
new file mode 100644
index 00000000..5c78166c
--- /dev/null
+++ b/opt/infra/roles/nginx/tasks/main.yml
@@ -0,0 +1,13 @@
+---
+- name: nginx is installed
+ become: true
+ package: name=nginx state=present
+- name: qtip server configuration is generated
+ become: true
+ template: src={{ item }}.conf.j2 dest=/etc/nginx/sites-enabled/{{ item }}.conf
+ with_items:
+ - elk
+ - qtip
+ - testapi
+ notify:
+ - restart nginx
diff --git a/opt/infra/roles/nginx/templates/elk.conf.j2 b/opt/infra/roles/nginx/templates/elk.conf.j2
new file mode 100644
index 00000000..271690e0
--- /dev/null
+++ b/opt/infra/roles/nginx/templates/elk.conf.j2
@@ -0,0 +1,14 @@
+# {{ ansible_managed }}
+
+# servers
+#
+{% for service in services %}
+server {
+ listen 80;
+ listen 443 ssl;
+ server_name {{ service.name }}.qtip.openzero.net;
+ location / {
+ proxy_pass {{ service.upstream }};
+ }
+}
+{% endfor %}
diff --git a/opt/infra/roles/nginx/templates/qtip.conf.j2 b/opt/infra/roles/nginx/templates/qtip.conf.j2
new file mode 100644
index 00000000..3a15c6ba
--- /dev/null
+++ b/opt/infra/roles/nginx/templates/qtip.conf.j2
@@ -0,0 +1,17 @@
+# {{ ansible_managed }}
+
+# servers
+#
+{% for service in qtip_services %}
+server {
+ listen 80;
+ listen 443 ssl;
+ server_name {{ service.name }}.qtip.openzero.net;
+ location / {
+ proxy_pass {{ service.upstream }};
+ sub_filter {{ service.upstream }} 'http://{{ service.name }}.qtip.openzero.net';
+ sub_filter_once off;
+ sub_filter_types text/html application/json;
+ }
+}
+{% endfor %}
diff --git a/opt/infra/roles/nginx/templates/testapi.conf.j2 b/opt/infra/roles/nginx/templates/testapi.conf.j2
new file mode 100644
index 00000000..6a4d388b
--- /dev/null
+++ b/opt/infra/roles/nginx/templates/testapi.conf.j2
@@ -0,0 +1,17 @@
+# {{ ansible_managed }}
+
+# servers
+#
+{% for service in testapi_services %}
+server {
+ listen 80;
+ listen 443 ssl;
+ server_name {{ service.name }}.qtip.openzero.net;
+ location / {
+ proxy_pass {{ service.upstream }};
+ sub_filter {{ service.upstream }} 'http://{{ service.name }}.qtip.openzero.net';
+ sub_filter_once off;
+ sub_filter_types text/html application/json;
+ }
+}
+{% endfor %}