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