179 lines
5.4 KiB
YAML
179 lines
5.4 KiB
YAML
---
|
|
- name: Nginx configuration
|
|
when: nginx_enabled
|
|
tags: [nginx, nginx_conf, nginx_virtualhost]
|
|
block:
|
|
- name: Create the snippets directory
|
|
ansible.builtin.file:
|
|
dest: "{{ nginx_snippets_dir }}"
|
|
owner: nginx
|
|
group: nginx
|
|
mode: "0755"
|
|
state: directory
|
|
|
|
- name: Create the pki directory
|
|
ansible.builtin.file:
|
|
dest: "{{ pki_dir }}/nginx"
|
|
owner: nginx
|
|
group: nginx
|
|
mode: "0755"
|
|
state: directory
|
|
|
|
- name: Create the client body tmp directory, if needed
|
|
ansible.builtin.file:
|
|
dest: "{{ nginx_client_body_temp_dir }}/nginx"
|
|
state: directory
|
|
owner: www-data
|
|
group: www-data
|
|
mode: "0700"
|
|
when: nginx_client_body_temp_dir is defined
|
|
|
|
- name: Create a dhparams file 2048 bits long
|
|
ansible.builtin.command: openssl dhparam -out {{ pki_dir }}/nginx/dhparams.pem 2048
|
|
args:
|
|
creates: "{{ pki_dir }}/nginx/dhparams.pem"
|
|
when: nginx_ssl_level == 'intermediate' or nginx_ssl_level == 'modern'
|
|
notify: Reload nginx
|
|
|
|
- name: Install the supported configuration snippets
|
|
ansible.builtin.template:
|
|
src: "{{ item }}.j2"
|
|
dest: /etc/nginx/snippets/{{ item }}
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
with_items: "{{ nginx_conf_snippets }}"
|
|
notify: Reload nginx
|
|
|
|
- name: Download any remote snippet templates
|
|
become: false
|
|
ansible.builtin.get_url:
|
|
url: "{{ item.url }}"
|
|
dest: /var/tmp/{{ item.name }}
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ nginx_conf_remote_snippets }}"
|
|
delegate_to: localhost
|
|
|
|
- name: Install any remote snippet configuration file
|
|
ansible.builtin.template:
|
|
src: /var/tmp/{{ item.name }}
|
|
dest: /etc/nginx/snippets/{{ item.name }}
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ nginx_conf_remote_snippets }}"
|
|
notify: Reload nginx
|
|
|
|
- name: Download any remote global config templates
|
|
become: false
|
|
ansible.builtin.get_url:
|
|
url: "{{ item.url }}"
|
|
dest: /var/tmp/{{ item.name }}
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ nginx_conf_remote_global_conf }}"
|
|
delegate_to: localhost
|
|
|
|
- name: Install any remote global configuration file
|
|
ansible.builtin.template:
|
|
src: /var/tmp/{{ item.name }}
|
|
dest: /etc/nginx/conf.d/{{ item.name }}.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ nginx_conf_remote_global_conf }}"
|
|
notify: Reload nginx
|
|
|
|
- name: Create the modules- directories
|
|
ansible.builtin.file:
|
|
dest: /etc/nginx/modules-{{ item }}
|
|
state: directory
|
|
owner: nginx
|
|
group: nginx
|
|
mode: "0644"
|
|
loop:
|
|
- available
|
|
- enabled
|
|
|
|
- name: Install the modules configurations
|
|
ansible.builtin.copy:
|
|
content: load_module modules/{{ item.mod_name }};
|
|
dest: /etc/nginx/modules-available/{{ item.pkg_name }}.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ nginx_org_modules }}"
|
|
when:
|
|
- item.enabled
|
|
- nginx_use_nginx_org_repo
|
|
|
|
- name: Enable the additional modules
|
|
ansible.builtin.file:
|
|
src: /etc/nginx/modules-available/{{ item.pkg_name }}.conf
|
|
dest: /etc/nginx/modules-enabled/{{ item.pkg_name }}.conf
|
|
state: link
|
|
when: item.enabled
|
|
loop: "{{ nginx_org_modules }}"
|
|
|
|
- name: Disable the additional modules that we do not want installed
|
|
ansible.builtin.file:
|
|
dest: /etc/nginx/modules-enabled/{{ item.pkg_name }}.conf
|
|
state: absent
|
|
when: not item.enabled
|
|
loop: "{{ nginx_org_modules }}"
|
|
|
|
- name: Remove the default configuration when using the nginx.com repository
|
|
ansible.builtin.file:
|
|
dest: /etc/nginx/conf.d/default.conf
|
|
state: absent
|
|
when: nginx_use_nginx_org_repo
|
|
|
|
- name: Install the main nginx.conf
|
|
ansible.builtin.template:
|
|
src: nginx.conf.j2
|
|
dest: /etc/nginx/nginx.conf
|
|
mode: "0444"
|
|
notify: Reload nginx
|
|
|
|
- name: Install Statistics stub
|
|
ansible.builtin.template:
|
|
src: nginx-stub.conf.j2
|
|
dest: /etc/nginx/conf.d/nginx-stats.conf
|
|
mode: "0444"
|
|
|
|
- name: Создать директорию для systemd override nginx
|
|
ansible.builtin.file:
|
|
path: /etc/systemd/system/nginx.service.d
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
when: nginx_streams | default([]) | selectattr('transparent', 'defined') | selectattr('transparent') | list | length > 0
|
|
|
|
- name: Systemd override для nginx — CAP_NET_RAW (transparent proxy)
|
|
ansible.builtin.template:
|
|
src: nginx-systemd-override.j2
|
|
dest: /etc/systemd/system/nginx.service.d/transparent.conf
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
when: nginx_streams | default([]) | selectattr('transparent', 'defined') | selectattr('transparent') | list | length > 0
|
|
notify:
|
|
- Daemon reload
|
|
- Restart nginx
|
|
|
|
- name: Disable nginx
|
|
when:
|
|
- nginx_enabled
|
|
- ansible_distribution_file_variety == "Debian"
|
|
tags: [nginx, nginx_conf, nginx_virtualhost]
|
|
block:
|
|
- name: Remove nginx default virtualhost
|
|
ansible.builtin.file:
|
|
dest: /etc/nginx/sites-enabled/default
|
|
state: absent
|
|
notify: Reload nginx
|