From 12cf22b1a8d9ad23809ad8048119a6920cbb9675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Gon=C3=A7alves?= Date: Tue, 7 Dec 2021 15:39:14 +0000 Subject: roles: Add httpd roles --- roles/httpd/defaults/main.yml | 4 ++++ roles/httpd/meta/main.yml | 3 +++ roles/httpd/tasks/main.yml | 19 +++++++++++++++++++ roles/httpd/templates/httpd.conf.j2 | 31 +++++++++++++++++++++++++++++++ roles/httpd_pre/tasks/main.yml | 18 ++++++++++++++++++ 5 files changed, 75 insertions(+) create mode 100644 roles/httpd/defaults/main.yml create mode 100644 roles/httpd/meta/main.yml create mode 100644 roles/httpd/tasks/main.yml create mode 100644 roles/httpd/templates/httpd.conf.j2 create mode 100644 roles/httpd_pre/tasks/main.yml (limited to 'roles') diff --git a/roles/httpd/defaults/main.yml b/roles/httpd/defaults/main.yml new file mode 100644 index 0000000..9ccd2f3 --- /dev/null +++ b/roles/httpd/defaults/main.yml @@ -0,0 +1,4 @@ +httpd_configuration_file: /etc/httpd.conf +httpd_configuration_dir: /etc/httpd.d +httpd_chroot: /var/www +httpd_use_nfs: false diff --git a/roles/httpd/meta/main.yml b/roles/httpd/meta/main.yml new file mode 100644 index 0000000..6b163d1 --- /dev/null +++ b/roles/httpd/meta/main.yml @@ -0,0 +1,3 @@ +dependencies: + - role: httpd_pre + tags: dependency diff --git a/roles/httpd/tasks/main.yml b/roles/httpd/tasks/main.yml new file mode 100644 index 0000000..a272afa --- /dev/null +++ b/roles/httpd/tasks/main.yml @@ -0,0 +1,19 @@ +- name: retrieve all configuration files + find: + path: "{{ httpd_configuration_dir }}" + patterns: "*.conf" + register: configuration_files + +- name: generate httpd configuration + template: + src: httpd.conf.j2 + dest: "{{ httpd_configuration_file }}" + owner: 0 + group: 0 + mode: 0644 + +- name: enable and restart httpd + service: + name: httpd + state: restarted + enabled: true diff --git a/roles/httpd/templates/httpd.conf.j2 b/roles/httpd/templates/httpd.conf.j2 new file mode 100644 index 0000000..6285d70 --- /dev/null +++ b/roles/httpd/templates/httpd.conf.j2 @@ -0,0 +1,31 @@ +# managed by Ansible + +types { + text/css css + text/html html htm + text/plain txt pgp pub + image/gif gif + image/jpeg jpeg jpg + image/png png + image/svg+xml svg + application/xml xml rss +} + +{% if inventory_hostname == __global_domain_controller %} +server "default" { + listen on localhost port 8888 + + location "/.well-known/acme-challenge/*" { + root "/acme" + request strip 2 + } + + location * { + block return 302 "https://$HTTP_HOST$REQUEST_URI" + } +} +{% endif %} + +{% for file in configuration_files.files %} +include "{{ file.path }}" +{% endfor %} diff --git a/roles/httpd_pre/tasks/main.yml b/roles/httpd_pre/tasks/main.yml new file mode 100644 index 0000000..83afb91 --- /dev/null +++ b/roles/httpd_pre/tasks/main.yml @@ -0,0 +1,18 @@ +- name: include httpd role variables + include_vars: "{{ inventory_dir }}/roles/httpd/defaults/main.yml" + +- name: create httpd directory + file: + path: /etc/httpd.d + state: directory + owner: 0 + group: 0 + mode: 0644 + +- name: create htpasswd directory + file: + path: /var/www/htpasswd + state: directory + owner: "www" + group: "www" + mode: 0700 -- cgit v1.2.3