ansible-roles/varnish/tasks/main.yml

155 lines
3.8 KiB
YAML

---
- name: Install Varnish
apt:
name: varnish
state: present
tags:
- varnish
- name: Fetch packages
package_facts:
manager: auto
tags:
- varnish
- set_fact:
varnish_package_facts: ansible_facts.packages['varnish'] | first
tags:
- varnish
- name: Remove default varnish configuration files
file:
path: "{{ item }}"
state: absent
loop:
- /etc/default/varnish
- /etc/default/varnishncsa
- /etc/default/varnishlog
notify: reload varnish
tags:
- varnish
- config
- name: Copy Custom Varnish ExecReload script (Debian < 10)
template:
src: "reload-vcl.sh.j2"
dest: "/etc/varnish/reload-vcl.sh"
mode: "0700"
owner: root
group: root
when: ansible_distribution_major_version is version('10', '<')
notify: reload varnish
tags:
- varnish
- name: Create a system config directory for systemd overrides
file:
path: /etc/systemd/system/varnish.service.d
state: directory
tags:
- varnish
- name: Rename legacy systemd override
command: mv /etc/systemd/system/varnish.service.d/evolinux.conf /etc/systemd/system/varnish.service.d/override.conf
args:
removes: /etc/systemd/system/varnish.service.d/evolinux.conf
creates: /etc/systemd/system/varnish.service.d/override.conf
notify:
- reload systemd
tags:
- varnish
- name: Varnish systemd override template (Varnish 4 and 5)
set_fact:
varnish_systemd_override_template: override.conf.varnish4.j2
when:
- varnish_package_facts['version'] is version('4', '>=')
- varnish_package_facts['version'] is version('6', '<')
- name: Varnish systemd override template (Varnish 6)
set_fact:
varnish_systemd_override_template: override.conf.varnish6.j2
when:
- varnish_package_facts['version'] is version('6', '>=')
- varnish_package_facts['version'] is version('7', '<')
- name: Varnish systemd override template (Varnish 7 and later)
set_fact:
varnish_systemd_override_template: override.conf.varnish7.j2
when:
- varnish_package_facts['version'] is version('7', '>=')
- name: Override Varnish systemd unit
template:
src: "{{ varnish_systemd_override_template }}"
dest: /etc/systemd/system/varnish.service.d/override.conf
force: yes
notify:
- reload systemd
- restart varnish
tags:
- varnish
- config
- update-config
- name: Patch logrotate conf
replace:
name: /etc/logrotate.d/varnish
regexp: '^(\s+)(/usr/sbin/invoke-rc.d {{item}}.*)'
replace: '\1systemctl -q is-active {{item}} && \2'
loop:
- varnishlog
- varnishncsa
tags:
- varnish
- logrotate
- name: Copy Varnish configuration
template:
src: "{{ item }}"
dest: "{{ varnish_config_file }}"
mode: "0644"
force: yes
loop: "{{ query('first_found', templates) }}"
vars:
templates:
- "templates/varnish/varnish.{{ inventory_hostname }}.vcl.j2"
- "templates/varnish/default.{{ inventory_hostname }}.vcl.j2"
- "templates/varnish/varnish.{{ host_group | default('all') }}.vcl.j2"
- "templates/varnish/default.{{ host_group | default('all') }}.vcl.j2"
- "templates/varnish/varnish.default.vcl.j2"
- "templates/varnish/default.default.vcl.j2"
- "templates/varnish.vcl.j2"
- "templates/default.vcl.j2"
notify: reload varnish
tags:
- varnish
- config
- update-config
- name: Create Varnish config dir
file:
path: /etc/varnish/conf.d
state: directory
mode: "0755"
tags:
- varnish
- config
- update-config
- name: Copy included Varnish config
template:
src: "{{ item }}"
dest: /etc/varnish/conf.d/
force: yes
mode: "0644"
with_fileglob:
- "templates/varnish/conf.d/*.vcl"
notify: reload varnish
tags:
- varnish
- config
- update-config
- include: munin.yml