aboutsummaryrefslogtreecommitdiffstats
path: root/roles/asterisk/tasks/main.yml
blob: 7bb259dc92ec278ae89d6953f5edd4545f329605 (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
69
70
71
72
73
74
75
76
77
78
79
80
81
- name: install packages
  dnf:
    name: '{{ asterisk_packages }}'
    state: present

- name: create systemd override directory
  file:
    path: /etc/systemd/system/asterisk.service.d
    state: directory

- name: create systemd unit override
  copy:
    src: etc/systemd/system/asterisk.service.d/override.conf
    dest: /etc/systemd/system/asterisk.service.d/override.conf
  notify: restart asterisk
  register: asterisk_unit

- name: reload systemd units
  systemd:
    daemon_reload: yes
  when: asterisk_unit.changed

- name: download sound files
  unarchive:
    src: '{{ item.url }}'
    remote_src: yes
    dest: /usr/share/asterisk/sounds
    creates: '/usr/share/asterisk/sounds/hello-world.{{ item.codec }}'
  loop: "{{ asterisk_sound_tarballs | dict2items(key_name='codec', value_name='url') }}"

- name: request public TLS certificate
  include_role:
    name: certbot
  vars:
    certificate_sans: ['{{ asterisk_fqdn }}']
    certificate_path: '{{ asterisk_certificate_path }}'
    certificate_key_path: '{{ asterisk_certificate_key_path }}'
    certificate_owner: asterisk
    certificate_hook: systemctl reload asterisk

- name: request internal HTTPS certificate
  include_role:
    name: getcert_request
  vars:
    certificate_sans: ['{{ ansible_fqdn }}']
    certificate_path: '{{ asterisk_https_certificate_path }}'
    certificate_key_path: '{{ asterisk_https_certificate_key_path }}'
    certificate_owner: asterisk
    certificate_hook: systemctl reload asterisk

- name: generate config files
  template:
    src: '{{ item.src }}'
    dest: /etc/asterisk/{{ item.path | splitext | first }}
    owner: asterisk
    group: asterisk
    mode: 0640
  loop: "{{ lookup('filetree', '../templates/etc/asterisk', wantlist=True) }}"
  when: item.state == 'file'
  notify: reload asterisk

- name: open firewall ports
  firewalld:
    permanent: yes
    immediate: yes
    port: '{{ item }}'
    state: enabled
  loop:
    - '{{ asterisk_https_port }}/tcp'
    - '{{ asterisk_sip_port }}/tcp'
    - '{{ asterisk_sip_port }}/udp'
    - '{{ asterisk_sip_tls_port }}/tcp'
    - '{{ asterisk_sip_tls_port }}/udp'
    - '{{ asterisk_rtp_port_start }}-{{ asterisk_rtp_port_end }}/udp'
  tags: firewalld

- name: start asterisk
  systemd:
    name: asterisk
    enabled: yes
    state: started