aboutsummaryrefslogtreecommitdiffstats
path: root/roles/znc/tasks/znc.yml
blob: ecb6103c2d71b63c0160077d3c9693a046fcca7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# more or less as per http://wiki.znc.in/Running_ZNC_as_a_system_daemon

- name: Install znc (jessie-backports)
  when: (ansible_distribution == "Debian" and ansible_distribution_major_version == "8")
  apt: pkg={{ item }} state=installed repo=jessie-backports
  with_items:
    - znc

- name: Install znc (non-jessie)
  when: not (ansible_distribution == "Debian" and ansible_distribution_major_version == "8")
  apt: pkg={{ item }} state=installed
  with_items:
    - znc

- name: Create znc group
  group: name=znc state=present

- name: Create znc user
  user: name=znc state=present home=/usr/lib/znc system=yes group=znc shell=/usr/sbin/nologin

- name: Ensure pid directory exists
  file: state=directory path=/var/run/znc group=znc owner=znc

- name: Ensure configuration folders exist
  file: state=directory path=/usr/lib/znc/{{ item }} group=znc owner=znc
  with_items:
    - moddata
    - modules
    - users

- name: Copy znc service file into place
  copy: src=etc_systemd_system_znc.service dest=/etc/systemd/system/znc.service mode=0644

- name: Create a combined version of the SSL private key and full certificate chain
  shell: cat /etc/letsencrypt/live/{{ domain }}/privkey.pem
    /etc/letsencrypt/live/{{ domain }}/fullchain.pem >
    /usr/lib/znc/znc.pem
    creates=/usr/lib/znc/znc.pem
  notify: restart znc

- name: Update post-certificate-renewal task
  template:
    src: etc_letsencrypt_postrenew_znc.sh.j2
    dest: /etc/cron.weekly/znc-letsencrypt-postrenew.sh
    owner: root
    group: root
    mode: 0755

- name: Ensure znc user and group can read cert
  file: path=/usr/lib/znc/znc.pem group=znc owner=znc mode=0640
  notify: restart znc

- name: Check for existing config file
  command: cat /usr/lib/znc/configs/znc.conf
  register: znc_config
  ignore_errors: True
  changed_when: False  # never report as "changed"

- name: Create znc config directory
  file: state=directory path=/usr/lib/znc/configs group=znc owner=znc

- name: Copy znc configuration file into place
  template: src=usr_lib_znc_configs_znc.conf.j2 dest=/usr/lib/znc/configs/znc.conf owner=znc group=znc
  when: znc_config.rc != 0
  notify: restart znc

- name: Ensure znc is a system service
  service: name=znc state=restarted enabled=true