- name: Set up packages ansible.builtin.apt: update_cache: true pkg: - nginx state: present - name: Install package for setting htpasswd package: name: python3-passlib - name: Ensure web path exists file: path: /var/www/{{ host_name }}/{{ emacsconf_year }}/backstage state: directory - name: Change ownership and permissions file: path: /var/www/{{ host_name }}/{{ emacsconf_year }} owner: "{{ emacsconf_user }}" group: "{{ emacsconf_group }}" mode: "u=rwX,g=rwX,o=rX" recurse: true - name: Create htpasswd entry htpasswd: create: yes name: "{{ emacsconf_backstage_user }}" password: "{{ emacsconf_backstage_password }}" path: /etc/nginx/sites-available/{{ host_name }}-{{ emacsconf_year }}-htpasswd - name: Create Nginx include template: src: nginx-include dest: /etc/nginx/sites-available/{{ host_name }}-{{ emacsconf_year }}-include - name: Create main configuration if needed template: src: nginx-site-config dest: /etc/nginx/sites-available/{{ host_name }} force: no - name: Make sure main configuration is enabled file: src: /etc/nginx/sites-available/{{ host_name }} dest: /etc/nginx/sites-enabled/{{ host_name }} owner: "{{ emacsconf_user }}" group: "{{ emacsconf_group }}" force: no state: link - name: Include it in the main configuration lineinfile: path: /etc/nginx/sites-available/{{ host_name }} regexp: "{{ host_name }}-{{ emacsconf_year }}-include" line: " include sites-available/{{ host_name }}-{{ emacsconf_year }}-include;" insertafter: root - name: Reload configuration service: name: nginx state: reloaded