--- - set_fact: user: "web-{{ fqdn | replace('.', '_') }}" home: "/var/www/{{ fqdn }}" - name: Create PHP website group group: name="{{ user }}" gid="{{ uid }}" state=present - name: Create home directory for the user (avoid populating with skeleton) file: path="{{ home }}" state=directory owner="{{ admin }}" group="{{ user }}" mode=2750 - name: Create PHP website user user: name="{{ user }}" uid="{{ uid }}" group="{{ user }}" system=yes createhome=no state=present - name: Add nginx user to website group user: name="www-data" groups="{{ user }}" append="yes" notify: - Restart nginx - name: Add admin to website group user: name="{{ admin }}" groups="{{ user }}" append="yes" - name: Install extra packages for website apt: name="{{ item }}" state=installed with_items: packages - name: Deploy PHP FPM configuration file for website template: src="fpm_site.conf.j2" dest="/etc/php5/fpm/pool.d/{{ fqdn }}.conf" validate="php5-fpm -t -y %s" notify: - Restart php5-fpm - name: Deploy nginx TLS private key for website copy: dest="/etc/ssl/private/{{ https_tls_key | basename }}" src="{{ https_tls_key }}" mode=640 owner=root group=root notify: - Restart nginx - name: Deploy nginx TLS certificate for website copy: dest="/etc/ssl/certs/{{ https_tls_certificate | basename }}" src="{{ https_tls_certificate }}" mode=644 owner=root group=root notify: - Restart nginx - name: Deploy nginx configuration file for website template: src="nginx_site.j2" dest="/etc/nginx/sites-available/{{ fqdn }}" owner=root group=root mode=640 validate="/usr/local/bin/nginx_verify_site.sh -n '{{ fqdn }}' %s" notify: - Restart nginx - name: Enable website file: src="/etc/nginx/sites-available/{{ fqdn }}" dest="/etc/nginx/sites-enabled/{{ fqdn }}" state=link notify: - Restart nginx