From 5b40c488c3f6459de835c104e804e2fc555e9451 Mon Sep 17 00:00:00 2001
From: Martin van Es <martin@mrvanes.com>
Date: Thu, 10 Feb 2022 12:17:46 +0100
Subject: [PATCH] Add apache role

---
 files/README                      |  1 +
 inventory/group_vars/all.yml      |  5 +++++
 inventory/inventory               | 13 +++++++++++++
 playbook.yml                      |  4 ++--
 roles/apache/handlers/main.yml    |  7 +++++++
 roles/apache/tasks/main.yml       | 19 +++++++++++++++++++
 roles/apache/templates/md.conf.j2 | 16 ++++++++++++++++
 7 files changed, 63 insertions(+), 2 deletions(-)
 create mode 100644 files/README
 create mode 100644 inventory/group_vars/all.yml
 create mode 100644 inventory/inventory
 create mode 100644 roles/apache/handlers/main.yml
 create mode 100644 roles/apache/tasks/main.yml
 create mode 100644 roles/apache/templates/md.conf.j2

diff --git a/files/README b/files/README
new file mode 100644
index 0000000..2883bb9
--- /dev/null
+++ b/files/README
@@ -0,0 +1 @@
+Download GeoLite2 DB's from https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml
new file mode 100644
index 0000000..4f11918
--- /dev/null
+++ b/inventory/group_vars/all.yml
@@ -0,0 +1,5 @@
+---
+
+hosts:
+  alternative-mdx.pt-76.utr.surfcloud.nl:
+    hostname: srv4
diff --git a/inventory/inventory b/inventory/inventory
new file mode 100644
index 0000000..b91aa5a
--- /dev/null
+++ b/inventory/inventory
@@ -0,0 +1,13 @@
+[mdserver]
+alternative-mdx.pt-76.utr.surfcloud.nl
+
+[mdproxy]
+alternative-mdx.pt-76.utr.surfcloud.nl
+
+[geodns]
+alternative-mdx.pt-76.utr.surfcloud.nl
+
+[all:children]
+mdserver
+mdproxy
+geodns
diff --git a/playbook.yml b/playbook.yml
index f89ab33..e2bd310 100644
--- a/playbook.yml
+++ b/playbook.yml
@@ -15,11 +15,11 @@
   gather_facts: false
   roles:
     - {role: apache,    tags: ['apache']}
-    - {role: mdserver,  tags: ['mdserver']}
+    #- {role: mdserver,  tags: ['mdserver']}
 
 - name: MDProxy
   hosts: mdproxy
   gather_facts: false
   roles:
     - {role: apache,    tags: ['apache']}
-    - {role: mdproxy,   tags: ['mdserver']}
+    #- {role: mdproxy,   tags: ['mdproxy']}
diff --git a/roles/apache/handlers/main.yml b/roles/apache/handlers/main.yml
new file mode 100644
index 0000000..baed676
--- /dev/null
+++ b/roles/apache/handlers/main.yml
@@ -0,0 +1,7 @@
+---
+- name: enable apache2 job
+  systemd:
+    name: "apache2.service"
+    enabled: true
+    state: "restarted"
+    daemon_reload: true
diff --git a/roles/apache/tasks/main.yml b/roles/apache/tasks/main.yml
new file mode 100644
index 0000000..053c893
--- /dev/null
+++ b/roles/apache/tasks/main.yml
@@ -0,0 +1,19 @@
+---
+
+- name: Install packages
+  apt:
+    state: present
+    name:
+      - apache2
+
+- name: Enable proxy_http mod
+  community.general.apache2_module:
+    name: proxy_http
+    state: present
+
+- name: Create Apache conf
+  ansible.builtin.template:
+    src: "md.conf.j2"
+    dest: "/etc/apache2/sites-enabled/md.conf"
+  notify:
+    - "enable apache2 job"
diff --git a/roles/apache/templates/md.conf.j2 b/roles/apache/templates/md.conf.j2
new file mode 100644
index 0000000..8e7b98a
--- /dev/null
+++ b/roles/apache/templates/md.conf.j2
@@ -0,0 +1,16 @@
+<VirtualHost *:80>
+        ServerName {{ hosts[inventory_hostname]['hostname'] }}-signer.srv.mdx.incubator.geant.org
+        ServerAlias signer.srv.mdx.incubator.geant.org
+        DocumentRoot /var/www/html
+        AllowEncodedSlashes NoDecode
+        ProxyPass "/" "http://127.0.0.1:5001/" nocanon
+        ProxyPassReverse "/" "http://127.0.0.1:5001/"
+</VirtualHost>
+<VirtualHost *:80>
+        ServerName {{ hosts[inventory_hostname]['hostname'] }}-proxy.srv.mdx.incubator.geant.org
+        ServerAlias proxy.srv.mdx.incubator.geant.org
+        DocumentRoot /var/www/html
+        AllowEncodedSlashes NoDecode
+        ProxyPass "/" "http://127.0.0.1:5002/" nocanon
+        ProxyPassReverse "/" "http://127.0.0.1:5002/"
+</VirtualHost>
-- 
GitLab