aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--playbook.yml2
-rw-r--r--tasks/jails.yml3
-rw-r--r--tasks/network.yml25
-rw-r--r--templates/usr_local_etc_nginx_nginx.conf.j237
4 files changed, 64 insertions, 3 deletions
diff --git a/playbook.yml b/playbook.yml
index fad7867..692c35c 100644
--- a/playbook.yml
+++ b/playbook.yml
@@ -19,6 +19,8 @@
smtp_port: "{{ lookup('env', 'SMTP_PORT') }}"
dma_mail_hostname: "{{ lookup('env', 'DMA_MAILNAME') }}"
dma_to_address: "{{ lookup('env', 'DMA_TO_ADDRESS') }}"
+ jails:
+ - { name: nginx_test, ip: "192.168.2.1" }
tasks:
- name: Run network tasks
diff --git a/tasks/jails.yml b/tasks/jails.yml
index 46744d6..24ef25f 100644
--- a/tasks/jails.yml
+++ b/tasks/jails.yml
@@ -53,9 +53,6 @@
shell: zfs snapshot zroot/jails/templates/14.3-RELEASE@base
- name: Configure jails
- vars:
- jails:
- - { name: nginx_test, ip: "192.168.2.1" }
block:
- name: Configure jail.conf
template:
diff --git a/tasks/network.yml b/tasks/network.yml
index 7f75de6..0f713a0 100644
--- a/tasks/network.yml
+++ b/tasks/network.yml
@@ -72,3 +72,28 @@
- name: Reload pf rules
shell: pfctl -f /etc/pf.conf
when: pf_conf.changed
+
+- name: Install nginx
+ package:
+ name: nginx
+ state: present
+
+- name: Configure nginx.conf
+ template:
+ src: usr_local_etc_nginx_nginx.conf.j2
+ dest: /usr/local/etc/nginx/nginx.conf
+ owner: root
+ group: wheel
+ mode: "0644"
+ register: nginx_conf
+
+- name: Enable nginx
+ service:
+ name: nginx
+ enabled: true
+
+- name: Restart nginx
+ service:
+ name: nginx
+ state: restarted
+ when: nginx_conf.changed
diff --git a/templates/usr_local_etc_nginx_nginx.conf.j2 b/templates/usr_local_etc_nginx_nginx.conf.j2
new file mode 100644
index 0000000..f81a82c
--- /dev/null
+++ b/templates/usr_local_etc_nginx_nginx.conf.j2
@@ -0,0 +1,37 @@
+worker_processes auto;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ sendfile on;
+ keepalive_timeout 65;
+
+ server {
+ listen 80 default_server;
+ server_name _;
+
+ location / {
+ return 404;
+ }
+ }
+
+ {% for jail in jails -%}
+ server {
+ listen 80;
+ server_name {{ jail.name }}.local.jan.systems;
+
+ location / {
+ proxy_pass http://{{ jail.ip }};
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ }
+ {% endfor %}
+}