120 lines
2.8 KiB
YAML
120 lines
2.8 KiB
YAML
---
|
|
- name: Include OS-specific variables
|
|
ansible.builtin.include_vars: "{{ ansible_os_family }}.yml"
|
|
|
|
- name: Enable nginx:120 module
|
|
ansible.builtin.command:
|
|
argv:
|
|
- dnf
|
|
- module
|
|
- -y
|
|
- enable
|
|
- nginx:1.20
|
|
creates: /etc/dnf/modules.d/nginx.module
|
|
warn: false
|
|
when:
|
|
- ansible_os_family == "RedHat"
|
|
- ansible_distribution != "Fedora"
|
|
|
|
- name: Install packages
|
|
ansible.builtin.package:
|
|
name: nginx
|
|
state: installed
|
|
|
|
- name: Fix selinux contexts from data directory
|
|
community.general.sefcontext:
|
|
path: /srv/web(/.*)?
|
|
setype: httpd_sys_content_t
|
|
when: ansible_selinux_python_present
|
|
|
|
- name: Create nginx data and config directories
|
|
ansible.builtin.file:
|
|
state: directory
|
|
path: "{{ item }}"
|
|
mode: 0755
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
seuser: _default
|
|
setype: _default
|
|
with_items:
|
|
- /srv/web
|
|
- "/srv/web/{{ inventory_hostname }}"
|
|
- "/etc/nginx/conf.d/{{ inventory_hostname }}"
|
|
|
|
- name: Create nginx base config
|
|
ansible.builtin.template:
|
|
src: nginx.conf.j2
|
|
dest: /etc/nginx/nginx.conf
|
|
mode: 0644
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
notify: restart nginx
|
|
|
|
- name: Fix logdir permissions
|
|
ansible.builtin.file:
|
|
path: "{{ nginx_logdir }}"
|
|
state: directory
|
|
mode: 0755
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
|
|
- name: Disable system log rotate
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/newsyslog.conf
|
|
state: absent
|
|
regexp: '^/var/www/logs/{{ item }}\s+.*'
|
|
with_items:
|
|
- access.log
|
|
- error.log
|
|
when: ansible_os_family == "OpenBSD"
|
|
|
|
- name: Install custom logrotate
|
|
ansible.builtin.template:
|
|
dest: /usr/local/sbin/nginx-logrotate
|
|
src: nginx-logrotate.sh
|
|
mode: 0755
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
when: ansible_os_family == "OpenBSD"
|
|
|
|
- name: Add logrotate cron job
|
|
ansible.builtin.cron:
|
|
name: nginx-logrotate
|
|
hour: "0"
|
|
minute: "0"
|
|
job: /usr/local/sbin/nginx-logrotate
|
|
when: ansible_os_family == "OpenBSD"
|
|
|
|
- name: Import sftpuser role
|
|
ansible.builtin.import_role:
|
|
name: sftpuser
|
|
vars:
|
|
chroot: "{{ nginx_logdir }}"
|
|
user: logsync
|
|
publickeys: "{{ logsync_publickeys }}"
|
|
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1725248
|
|
- name: Create drop-in directory for service
|
|
ansible.builtin.file:
|
|
dest: /etc/systemd/system/nginx.service.d
|
|
state: directory
|
|
mode: 0755
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
when: ansible_os_family == "RedHat"
|
|
|
|
- name: Configure service startup dependencies
|
|
ansible.builtin.copy:
|
|
dest: /etc/systemd/system/nginx.service.d/dependency.conf
|
|
src: dependency.conf
|
|
mode: 0644
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
when: ansible_os_family == "RedHat"
|
|
|
|
- name: Enable nginx service
|
|
ansible.builtin.service:
|
|
name: nginx
|
|
arguments: -u
|
|
state: started
|
|
enabled: true
|