diff --git a/certs/websites/tabitha.biz.cer b/certs/websites/tabitha.biz.cer new file mode 120000 index 0000000..c098a8f --- /dev/null +++ b/certs/websites/tabitha.biz.cer @@ -0,0 +1 @@ +../lego/tabitha.biz.crt \ No newline at end of file diff --git a/certs/websites/tabitha.biz.key b/certs/websites/tabitha.biz.key new file mode 120000 index 0000000..449ab30 --- /dev/null +++ b/certs/websites/tabitha.biz.key @@ -0,0 +1 @@ +../lego/tabitha.biz.key \ No newline at end of file diff --git a/group_vars/public-web.yml b/group_vars/public-web.yml index 1f601f1..83ebc95 100644 --- a/group_vars/public-web.yml +++ b/group_vars/public-web.yml @@ -7,3 +7,5 @@ dcow_publisher_keys: '{{ dchwww_publisher_keys }}' chmod777_publisher_keys: '{{ dchwww_publisher_keys }}' apache_server_name: pyrocufflink.net userdir_proxy_backend: http://files.pyrocufflink.blue +tabitha_publisher_keys: +- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKbeVaQ5eGTaQU9P0sqo9R2IISoe50qS/Hv/vvFdt3ce tabitha@Tabithas-MacBook-Pro.local diff --git a/roles/websites/tabitha/files/tabitha.httpd.conf b/roles/websites/tabitha/files/tabitha.httpd.conf new file mode 100644 index 0000000..4334017 --- /dev/null +++ b/roles/websites/tabitha/files/tabitha.httpd.conf @@ -0,0 +1,27 @@ + +ServerName tabitha.biz +ServerAlias www.tabitha.biz + +RewriteEngine On +RewriteRule (.*) https://%{SERVER_NAME}$1 [R=301,L] + + + +ServerName tabitha.biz +ServerAlias www.tabitha.biz + +Include conf.d/ssl.include +SSLCertificateKeyFile /etc/pki/tls/private/tabitha.biz.key +SSLCertificateFile /etc/pki/tls/certs/tabitha.biz.cer + + + Header always set \ + Strict-Transport-Security "max-age=63072000; includeSubDomains" + + + +DocumentRoot /srv/www/tabitha/htdocs + + Require all granted + + diff --git a/roles/websites/tabitha/meta/main.yml b/roles/websites/tabitha/meta/main.yml new file mode 100644 index 0000000..e8b8aa7 --- /dev/null +++ b/roles/websites/tabitha/meta/main.yml @@ -0,0 +1,9 @@ +dependencies: +- role: cert + vars: + cert_src: websites/tabitha.biz.cer + cert_dest: /etc/pki/tls/certs/tabitha.biz.cer + cert_key_src: websites/tabitha.biz.key + cert_key_dest: /etc/pki/tls/private/tabitha.biz.key + tags: + - websites/darkchestofwonders.us diff --git a/roles/websites/tabitha/tasks/main.yml b/roles/websites/tabitha/tasks/main.yml new file mode 100644 index 0000000..50ec5ba --- /dev/null +++ b/roles/websites/tabitha/tasks/main.yml @@ -0,0 +1,37 @@ +- name: ensure app group exists + group: + name: webapp.tabitha + state: present +- name: ensure app user exists + user: + name: webapp.tabitha + group: webapp.tabitha + home: /srv/www/tabitha + createhome: true + state: present + +- name: ensure app home directory permissions are set + file: + path: /srv/www/tabitha + mode: '0755' + state: directory + +- name: ensure publisher keys are trusted + authorized_key: + key: "{{ tabitha_publisher_keys|join('\n') }}" + user: webapp.tabitha + exclusive: true +- name: ensure authorized_keys file permissions are correct + file: + path: /srv/www/tabitha/.ssh/authorized_keys + mode: '0600' + owner: webapp.tabitha + group: webapp.tabitha + setype: ssh_home_t + +- name: ensure apache is configured to serve tabitha.biz + copy: + src: tabitha.httpd.conf + dest: /etc/httpd/conf.d/tabitha.conf + mode: '0644' + notify: reload httpd diff --git a/websites.yml b/websites.yml index 3fdfb49..c21db87 100644 --- a/websites.yml +++ b/websites.yml @@ -45,6 +45,9 @@ tags: - websites/proxy - websites/hatch.chat + - role: websites/tabitha + tags: + - websites/tabitha tasks: - name: ensure httpd service is running service: