websites: Add role for dustin.hatch.name

The *websites/dustin.hatch.name* role configures a server to host
http://dustin.hatch.name/. The role only applies basic configuration;
the actual website application is published by Jenkins.
jenkins-master
Dustin 2018-07-29 09:32:19 -05:00
parent 4a5d319a17
commit 3d46e6b411
3 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,20 @@
# vim: set ft=apache :
WSGIDaemonProcess dchwww \
user=webapp.dchwww \
group=webapp.dchwww \
python-home=/srv/www/dustin.hatch.name/venv \
display-name=%{GROUP}
<VirtualHost *:80>
ServerName dustin.hatch.name
WSGIScriptAlias / /srv/www/dustin.hatch.name/site.py \
process-group=dchwww
Alias /static /srv/www/dustin.hatch.name/static
<Location />
Require all granted
</Location>
</VirtualHost>

View File

@ -0,0 +1,8 @@
- name: restart httpd
service:
name=httpd
state=restarted
- name: reload httpd
service:
name=httpd
state=reloaded

View File

@ -0,0 +1,53 @@
- name: ensure mod_wsgi is installed
package:
name=python3-mod_wsgi
state=present
notify: restart httpd
tags:
- install
- name: ensure rsync is installed
package:
name=rsync
state=present
tags:
- install
- name: ensure app group exists
group:
name=webapp.dchwww
state=present
- name: ensure app user exists
user:
name=webapp.dchwww
group=webapp.dchwww
home=/srv/www/dustin.hatch.name
createhome=yes
state=present
- name: ensure app home directory permissions are set
file:
path=/srv/www/dustin.hatch.name
mode=0755
state=directory
- name: ensure publisher keys are trusted
authorized_key:
key: "{{ dchwww_publisher_keys|join('\n') }}"
user: webapp.dchwww
exclusive: true
- name: ensure virtualenv exists
become: true
become_user: webapp.dchwww
pip:
name: pip
virtualenv: /srv/www/dustin.hatch.name/venv
virtualenv_command: /usr/bin/python3 -m venv
- name: ensure apache is configured to serve dustin.hatch.name
copy:
src=dustin.hatch.name.httpd.conf
dest=/etc/httpd/conf.d/dustin.hatch.name.conf
mode=0644
notify: reload httpd