summaryrefslogtreecommitdiff
path: root/roles/dyndns/tasks/main.yml
blob: e157644ea5db6d690ae85646152f680c4262304a (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
- name: Fetch digitalocean_dyndns source
  ansible.builtin.git:
    repo: git://git.joeac.net/digitalocean_dyndns.git
    dest: /usr/local/lib/digitalocean_dyndns

- name: Mark get_ip_addr.sh executable
  ansible.builtin.file:
    path: /usr/local/lib/digitalocean_dyndns/get_ip_addr.sh
    owner: joeac.net
    group: joeac.net
    mode: "775"

- name: Mark dyndns.sh executable
  ansible.builtin.file:
    path: /usr/local/lib/digitalocean_dyndns/dyndns.sh
    owner: joeac.net
    group: joeac.net
    mode: "775"

- name: Symlink get_ip_addr.sh
  ansible.builtin.file:
    src: /usr/local/lib/digitalocean_dyndns/get_ip_addr.sh
    dest: /usr/bin/get_ip_addr.sh
    owner: joeac.net
    group: joeac.net
    state: link

- name: Symlink dyndns.sh
  ansible.builtin.file:
    src: /usr/local/lib/digitalocean_dyndns/dyndns.sh
    dest: /usr/bin/dyndns.sh
    owner: joeac.net
    group: joeac.net
    state: link

- name: Create config directory
  ansible.builtin.file:
    path: /etc/digitalocean_dyndns
    state: directory
    mode: "644"

- name: Create cache directory
  ansible.builtin.file:
    path: /var/digitalocean_dyndns
    state: directory
    mode: "666"

- name: Create log directory
  ansible.builtin.file:
    path: /var/log/digitalocean_dyndns
    state: directory
    mode: "666"

- name: Copy DIGITALOCEAN_TOKEN
  ansible.builtin.copy:
    src: DIGITALOCEAN_TOKEN
    dest: /etc/digitalocean_dyndns/DIGITALOCEAN_TOKEN
    mode: "640"

- name: Install daily crontabs for dyndns (IPv4)
  loop: "{{ subdomains | map(attribute='name') }}"
  ansible.builtin.cron:
    special_time: daily
    name: daily crontab for dyndns for {{ item }}.joeac.net (IPv4)
    job: CACHE_DIR=/var/digitalocean_dyndns CONFIG_DIR=/etc/digitalocean_dyndns dyndns.sh 4 {{ item }}.joeac.net >> /var/log/digitalocean_dyndns/{{ item }}.joeac.net.ipv4.log

- name: Install daily crontabs for dyndns (IPv6)
  loop: "{{ subdomains | map(attribute='name') }}"
  ansible.builtin.cron:
    special_time: daily
    name: daily crontab for dyndns for {{ item }}.joeac.net (IPv6)
    job: CACHE_DIR=/var/digitalocean_dyndns CONFIG_DIR=/etc/digitalocean_dyndns CONN_DEVICE_NAME={{ ansible_facts.default_ipv4.alias }} dyndns.sh 6 {{ item }}.joeac.net >> /var/log/digitalocean_dyndns/{{ item }}.joeac.net.ipv6.log