diff --git a/Makefile b/Makefile index 2a7c838ee5ec2869a988d6d5671097b9bdd9c975..76c20597cb362e862689802105526c14691742be 100644 --- a/Makefile +++ b/Makefile @@ -9,14 +9,16 @@ open_all: ${EDITOR} .gitignore inv* Makefile README.md ${EDITOR} tasks/*.yml ${EDITOR} tasks/files/sshd_config - ${EDITOR} tasks/templates/*.j2 + ${EDITOR} tasks/vars/*.yml + ${EDITOR} tasks/apache/*.yml + ${EDITOR} tasks/apache/files/*.html + ${EDITOR} tasks/apache/templates/*.j2 ${EDITOR} tasks/system_cfg/*.yml ${EDITOR} tasks/system_cfg/templates/*.j2 ${EDITOR} tasks/user_cfg/*.yml ${EDITOR} tasks/user_cfg/files/dotfiles/* ${EDITOR} tasks/user_cfg/templates/*.j2 ${EDITOR} tasks/user_cfg/vars/*.yml - ${EDITOR} tasks/vars/*.yml inventory_generation: cp inventory.sample inventory && ${EDITOR} inventory diff --git a/README.md b/README.md index 8e4249013c4224d47bf0917976671ea7449f2d5f..ebd402bd065f4ca59fc84e7758c8abbf35c5c916 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ Suitable for server and workstation. | task  | purpose | | :--------------------------------------: | :--------------------------------------------------------------: | +| [`apache`](apache/main.yml) | 🚧 WIP: Install Apache2 HTTP server | | [`apt.yml`](tasks/apt.yml) | Install generic packages | | [`become_user_cfg.yml`](tasks/become_user_cfg.yml) | Set `sudo` without password for `become_user` access | | [`host_info.yml`](tasks/host_info.yml) | Return message with distribution full name & version | diff --git a/tasks/apache/files/503.html b/tasks/apache/files/503.html new file mode 100644 index 0000000000000000000000000000000000000000..e49877a760e212eeddfdae052c3ae878bafc47f4 --- /dev/null +++ b/tasks/apache/files/503.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta http-equiv="content-type" content="text/html; charset=UTF-8"> + <meta http-equiv="refresh" content="300"> + <title>Maintenance in progress</title> + <style type="text/css"> + body { + font-family:helvetica,arial,sans-serif; + color: #333; + font-size: 18px; + text-align:center; + } + div.image { + display:block; + margin: 4em auto 2em auto; + padding: 0; + width: 100px; + height: 100px; + background-image: url('data:image/png;base64,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GTbSgqozHsP7I6wFsPEMK9ctWcu/b2vpcZqef974BSZIUIQk9NwcAAAN/WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDowOGNjNjczOC02NThmLTRmYzMtYTI1Mi1hZWM2MzI2NzEyMmIiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjRjMGU0MmUtY2MyNS00Y2Q0LWJkODUtYTg2ZTRmZjI5ZTQ5IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6M2I1ZDIzODItYTI5OS00MDMyLWFlN2YtYjg4MDNhODNlYWY5IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ5ODk3NzM0OTU1MDAzIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YzA2ZWU4ZGItZGUxYS00NTE1LThhOWMtOTI3ZjUwNTg2ZWNkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wNC0xM1QwMToxMDoxMyswMjowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MWM2MTEyNi0xOTQ3LTQxNmYtYmQwZC0xNGFkOWJjNDA0OGEiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA0LTE0VDAyOjU1OjM0KzAyOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg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'); + } + em { + margin: 2em auto; + font-size: .8em; + color: #8c8c8c; + } + </style> + </head> + + <body> + <div class="image"></div> + <h1>Offline for maintenance</h1> + <p>We should be back online shortly…</p> + <p>Start time : <em>?</em></p> + </body> + +</html> diff --git a/tasks/apache/files/apache2.conf b/tasks/apache/files/apache2.conf new file mode 100644 index 0000000000000000000000000000000000000000..3e3f56e449d9fbdcbbfa68d51444f10567299130 --- /dev/null +++ b/tasks/apache/files/apache2.conf @@ -0,0 +1,50 @@ +# ############################################# # +# /etc/apache2/apache2.conf # +# # +# This file is managed by Ansible # +# Manual edition will be overridden # +# # +# https://lab.frogg.it/fcode/ansible/debian # +# # +# ############################################# # + +Mutex file:${APACHE_LOCK_DIR} default +PidFile ${APACHE_PID_FILE} +Timeout 300 +KeepAlive On +MaxKeepAliveRequests 100 +KeepAliveTimeout 5 +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} +HostnameLookups Off +ErrorLog ${APACHE_LOG_DIR}/error.log +LogLevel warn + +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + $Include ports.conf + +<Directory /> + Options FollowSymLinks + AllowOverride None + Require all denied +</Directory> + +AccessFileName .htaccess + +<FilesMatch "^\.ht"> + Require all denied +</FilesMatch> + +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +IncludeOptional conf-enabled/*.conf +IncludeOptional sites-enabled/*.conf + +ServerName localhost +ServerTokens Prod +ServerSignature Off diff --git a/tasks/apache/files/index.html b/tasks/apache/files/index.html new file mode 100644 index 0000000000000000000000000000000000000000..2ff5c44914bfaf8be27c5d06b86e1151c7eec041 --- /dev/null +++ b/tasks/apache/files/index.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta http-equiv="content-type" content="text/html; charset=UTF-8"> + <meta http-equiv="refresh" content="300"> + <title>Welcome !</title> + <style type="text/css"> + body { + font-family:helvetica,arial,sans-serif; + color: #333; + font-size: 18px; + text-align:center; + } + div.image { + display:block; + margin: 4em auto 2em auto; + padding: 0; + width: 100px; + height: 100px; + background-image: url('data:image/png;base64,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IHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6MTJmYzRlMzUtNjUzYS00ZjBiLWJjNjAtZjM3YTExM2UxZjhmIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMwZmQ2NGI3LTEzOWItNGU4Yi05ZTY4LWI1MjM4MTkzZTI2MiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjg2NmVkYWZkLTdhYTMtNGQ5My04MjY2LWZhYmIwNWY3N2M3YSIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0iMTY1MDA2MzAxMzc2NjMzNCIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjI0IgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmFhY2QwMGNiLWU0OGItNGQxMy04NmQ0LTVhOWFhNTY3MzYzNiIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDQtMTZUMDA6NTA6MTMrMDI6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+jZp+4QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+YEDxYyDSpAE6cAACAASURBVHja7b13kGXXfR74nXDTS527J/TkATCDHEmAIimKBElIFKUivZK8tbumbJJOa63KtV7bsnaXphxXtssWVS7LliVvuURKRckQM8EAgCDSIA3iADOY2NMznfu9fvGGk/aPc+99973uGYCDQMqLi7p133vT6L7vfOeXvl+4wDvHO8c7xzvHO8c7xzvHO8c7x5t/kL9IN+tXRpkBDQC4ABhljI9N7Sgzx+PN1YudKAwTAMrASGgdirCZvAPIm3Dce++fup/85C+Za279wOTUzr3XMNc/7HrBNaDsqlIQ7KuUgvFK4AZl3/OqZZ9udCJy8mJdC6kTbUykte5IkZyXUp5K4vDVOOy+ErUbJ0498fXzAGIA+h1AXuO4//77XUrJ5xljH9BGu3/0tcfXGj1xnesFM9MTo/zQnmnsnZ3AeLUMz3PgcAbGKCghUFpjbaOLY2dW8eSJZTRDAa0NlFIQQkDEEZI4asRR93Tc6xzptdYfXDl37JF47exa2OvodwBJj/vuu4/6vvdeQnA3Y/wuz/M+lChDlta7aHRiTI1WMLttDGPVEjinoNSehBAQYm89uxpjAACdUOA/ff0FLDUTaBAopSGkgEgSJHGEOAoRh10T9drzUaf5rbC9/t/OPfrlJzXQ+v81IN/73nevL5fL/95x+F2JIk6jHWN+pY35tQ7ed/N+3HhwGzhnKQAZCK/9e5frXfzuV1+EJA5AGJQG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'); + } + em { + margin: 2em auto; + font-size: .8em; + color: #8c8c8c; + } + </style> + </head> + + <body> + <div class="image"></div> + <h1>Welcome !</h1> + <p>This is the default web page for this server.</p> + <p>For more, use an appropriate domaine name.</p> + </body> + +</html> diff --git a/tasks/apache/main.yml b/tasks/apache/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..3f6cac70b763b05681cd110142bfad6ec30ba32a --- /dev/null +++ b/tasks/apache/main.yml @@ -0,0 +1,43 @@ +--- +- hosts: "{{ host_list }}" + remote_user: root + + tasks: + + - name: APT | install base & os packages + ansible.builtin.apt: + cache_valid_time: 3600 + force_apt_get: yes + pkg: apache2 + state: present + update_cache: true + + - name: APACHE | default vhost config file + ansible.builtin.template: + src: 00-default.conf.j2 + dest: /etc/apache2/sites-available/00-default.conf + + - name: APACHE | Creating `{{ web_root }}/default/` + ansible.builtin.file: + path: "{{ web_root }}/default/" + state: directory + owner: www-data + + - name: APACHE | Copy the HTML page + ansible.builtin.template: + src: default.html.j2 + dest: "{{ web_root }}/default/index.html" + + - name: APACHE | Copy files + ansible.builtin.copy: + owner: www-data + src: "{{ item }}" + dest: "{{ web_root }}/default/" + with_fileglob: + files/* + + - name: APACHE | Service state + ansible.builtin.service: + name: apache2 + state: started + enabled: yes diff --git a/tasks/apache/templates/00-default.conf.j2 b/tasks/apache/templates/00-default.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..e58b3a3a7e2d233d992e1efe0e25b75500894fa9 --- /dev/null +++ b/tasks/apache/templates/00-default.conf.j2 @@ -0,0 +1,24 @@ +<Directory /> + Require all denied + Options None + AllowOverride None + + Options -Includes + Options -Indexes + Options -ExecCGI + Options -FollowSymLinks +</Directory> + +<VirtualHost *:80> + ServerName {{ ansible_default_ipv4.address }} + DocumentRoot /srv/default + + <Directory /srv/default > + Require all granted + </Directory> + + Include conf-enabled/maintenance.conf + + ErrorLog /var/log/apache2/00-default.error.log + CustomLog /var/log/apache2/00-default.log combined +</VirtualHost> diff --git a/tasks/apache/templates/maintenance.conf.j2 b/tasks/apache/templates/maintenance.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..75160df0c6be4367570ec6169801ad47fefd8b24 --- /dev/null +++ b/tasks/apache/templates/maintenance.conf.j2 @@ -0,0 +1,29 @@ +ErrorDocument 503 /503.html + +<filesMatch "^\/(maintenance.enabled|503\.html)$"> + FileETag None + <ifModule mod_headers.c> + Header unset ETag + Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" + Header set Pragma "no-cache" + Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" + </ifModule> +</filesMatch> + +<IfModule mod_rewrite.c> + RewriteEngine on + + RewriteCond %{DOCUMENT_ROOT}/maintenance.enabled -f + RewriteCond %{REQUEST_URI} !/maintenance.enabled$ [NC] + RewriteCond %{REQUEST_URI} !/503.html$ [NC] + RewriteRule .* - [R=503,L] + + RewriteCond %{DOCUMENT_ROOT}/maintenance.enabled !-f + RewriteCond %{REQUEST_URI} ^/maintenance.enabled$ [NC] + RewriteRule .? / [R=302,L] + + RewriteCond %{DOCUMENT_ROOT}/maintenance.enabled !-f + RewriteCond %{REQUEST_URI} ^/503.html$ [NC] + RewriteRule .* - [R=404,L] + +</IfModule>