first commit
This commit is contained in:
commit
44328d4172
10
handlers/main.yml
Normal file
10
handlers/main.yml
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
- name: restart apache2
|
||||
service:
|
||||
name: apache2
|
||||
state: restarted
|
||||
|
||||
- name: reload apache2
|
||||
service:
|
||||
name: apache2
|
||||
state: reloaded
|
146
tasks/main.yml
Normal file
146
tasks/main.yml
Normal file
@ -0,0 +1,146 @@
|
||||
---
|
||||
- name: Install stuff
|
||||
apt:
|
||||
name:
|
||||
- apache2
|
||||
update_cache: yes
|
||||
|
||||
- name: install acme.sh
|
||||
include_role:
|
||||
name: acmesh
|
||||
|
||||
- name: set DocumentRoot
|
||||
set_fact:
|
||||
docroot: "/var/www/html"
|
||||
when: not docroot is defined
|
||||
|
||||
- name: set domainname
|
||||
set_fact:
|
||||
domainname: "{{ inventory_hostname }}"
|
||||
when: not domainname is defined
|
||||
|
||||
- name: create wwwroot
|
||||
file:
|
||||
path: "{{ docroot }}"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: enable apache module proxy
|
||||
command: a2enmod proxy
|
||||
args:
|
||||
creates: /etc/apache2/mods-enabled/proxy.load
|
||||
notify:
|
||||
reload apache2
|
||||
|
||||
- name: enable apache module proxy_html
|
||||
command: a2enmod proxy_html
|
||||
args:
|
||||
creates: /etc/apache2/mods-enabled/proxy_html.load
|
||||
notify:
|
||||
reload apache2
|
||||
|
||||
- name: enable apache module proxy_http
|
||||
command: a2enmod proxy_http
|
||||
args:
|
||||
creates: /etc/apache2/mods-enabled/proxy_http.load
|
||||
notify:
|
||||
reload apache2
|
||||
|
||||
- name: enable apache module proxy_http2
|
||||
command: a2enmod proxy_http2
|
||||
args:
|
||||
creates: /etc/apache2/mods-enabled/proxy_http2.load
|
||||
notify:
|
||||
reload apache2
|
||||
|
||||
- name: enable apache module ssl
|
||||
command: a2enmod ssl
|
||||
args:
|
||||
creates: /etc/apache2/mods-enabled/ssl.load
|
||||
notify:
|
||||
reload apache2
|
||||
|
||||
- name: enable apache module headers
|
||||
command: a2enmod headers
|
||||
args:
|
||||
creates: /etc/apache2/mods-enabled/headers.load
|
||||
notify:
|
||||
reload apache2
|
||||
|
||||
- name: enable apache module rewrite
|
||||
command: a2enmod rewrite
|
||||
args:
|
||||
creates: /etc/apache2/mods-enabled/rewrite.load
|
||||
notify:
|
||||
reload apache2
|
||||
|
||||
- name: install acme.sh
|
||||
include_role:
|
||||
name: acmesh
|
||||
|
||||
- name: set amce server url
|
||||
set_fact:
|
||||
acmeshserver: "--server {{ acme_sh_server }} --insecure --force --days 1"
|
||||
when: acme_sh_server is defined
|
||||
|
||||
- name: set amce server url
|
||||
set_fact:
|
||||
acmeshserver: ""
|
||||
when: not acme_sh_server is defined
|
||||
|
||||
- name: generate /etc/apache2/sites-available/{{ domainname }}.conf
|
||||
template:
|
||||
src: apache.conf.j2
|
||||
dest: /etc/apache2/sites-available/{{ domainname }}.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify:
|
||||
- reload apache2
|
||||
|
||||
- name: generate /etc/apache2/sites-available/{{ domainname }}-ssl.conf
|
||||
template:
|
||||
src: apache-ssl.conf.j2
|
||||
dest: /etc/apache2/sites-available/{{ domainname }}-ssl.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify:
|
||||
- reload apache2
|
||||
|
||||
- name: activate /etc/apache2/sites-available/{{ domainname }}.conf
|
||||
file:
|
||||
state: link
|
||||
src: /etc/apache2/sites-available/{{ domainname }}.conf
|
||||
dest: /etc/apache2/sites-enabled/{{ domainname }}.conf
|
||||
notify:
|
||||
- reload apache2
|
||||
|
||||
- name: generate /etc/apache2/conf-available/{{ domainname }}-ssl-optionalDirectives.conf
|
||||
template:
|
||||
src: includeOptional.conf.j2
|
||||
dest: /etc/apache2/conf-available/{{ domainname }}-ssl-optionalDirectives.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify:
|
||||
- reload apache2
|
||||
|
||||
- name: Flush handlers
|
||||
meta: flush_handlers
|
||||
|
||||
- name: get certificates
|
||||
command: /root/.acme.sh/acme.sh --issue --webroot {{ docroot | default("/var/www/html") }} {{ acmeshserver }} -d {{ domainname }} --email {{ acme_sh_email }} --key-file /etc/ssl/private/{{ domainname }}.key --fullchain-file /etc/ssl/certs/{{ domainname }}.pem --reloadcmd "service apache2 reload"
|
||||
args:
|
||||
creates: /etc/ssl/private/{{ domainname }}.key
|
||||
|
||||
- name: activate /etc/apache2/sites-available/{{ domainname }}-ssl.conf
|
||||
file:
|
||||
state: link
|
||||
src: /etc/apache2/sites-available/{{ domainname }}-ssl.conf
|
||||
dest: /etc/apache2/sites-enabled/{{ domainname }}-ssl.conf
|
||||
notify:
|
||||
- reload apache2
|
||||
|
30
templates/apache-ssl.conf.j2
Normal file
30
templates/apache-ssl.conf.j2
Normal file
@ -0,0 +1,30 @@
|
||||
<IfModule mod_ssl.c>
|
||||
<VirtualHost _default_:443>
|
||||
ServerName {{ domainname }}
|
||||
ServerAdmin webmaster@{{ domainname }}
|
||||
|
||||
DocumentRoot "{{ docroot }}"
|
||||
<Directory "{{ docroot }}">
|
||||
Options Indexes MultiViews Includes FollowSymLinks
|
||||
AddOutputFilter Includes html
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/{{ domainname }}.error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/{{ domainname }}.access.log combined
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/ssl/certs/{{ domainname }}.pem
|
||||
SSLCertificateKeyFile /etc/ssl/private/{{ domainname }}.key
|
||||
|
||||
<FilesMatch "\.(cgi|shtml|phtml|php)$">
|
||||
SSLOptions +StdEnvVars
|
||||
</FilesMatch>
|
||||
<Directory /usr/lib/cgi-bin>
|
||||
SSLOptions +StdEnvVars
|
||||
</Directory>
|
||||
IncludeOptional /etc/apache2/conf-available/{{ domainname }}-ssl-optionalDirectives.conf
|
||||
</VirtualHost>
|
||||
</IfModule>
|
15
templates/apache.conf.j2
Normal file
15
templates/apache.conf.j2
Normal file
@ -0,0 +1,15 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName {{ domainname }}
|
||||
|
||||
ServerAdmin webmaster@{{ domainname }}
|
||||
DocumentRoot "{{ docroot }}"
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/{{ domainname }}.error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/{{ domainname }}.access.log combined
|
||||
|
||||
#rewrite transparent to https, keep uri
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
|
||||
</VirtualHost>
|
1
templates/includeOptional.conf.j2
Normal file
1
templates/includeOptional.conf.j2
Normal file
@ -0,0 +1 @@
|
||||
{{ optionalDirectives | default('')}}
|
Loading…
Reference in New Issue
Block a user