feat(server/ddns): implement DDNS support using inadyn
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
90bac3a306
commit
4d84398657
4 changed files with 66 additions and 0 deletions
7
roles/server/ddns/files/ddns.service
Normal file
7
roles/server/ddns/files/ddns.service
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Run inadyn in a container to update DNS
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=podman run --rm -v "/etc/inadyn.conf:/etc/inadyn.conf" -v "/var/cache/inadyn:/var/cache/inadyn" docker.io/troglobit/inadyn:latest -1 --cache-dir=/var/cache/inadyn
|
10
roles/server/ddns/files/ddns.timer
Normal file
10
roles/server/ddns/files/ddns.timer
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Run inadyn every 15 minutes
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=*:00,15,30,45:00
|
||||||
|
RandomizedDelaySec=1h
|
||||||
|
Persistent=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
34
roles/server/ddns/tasks/main.yml
Normal file
34
roles/server/ddns/tasks/main.yml
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
---
|
||||||
|
- name: Install the config file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: templates/inadyn.conf
|
||||||
|
dest: /etc/inadyn.conf
|
||||||
|
mode: 0600
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Create the cache directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /var/cache/inadyn
|
||||||
|
state: directory
|
||||||
|
mode: 0700
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Install the unit files
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: files/{{ item }}
|
||||||
|
dest: /etc/systemd/system/{{ item }}
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
loop:
|
||||||
|
- ddns.service
|
||||||
|
- ddns.timer
|
||||||
|
|
||||||
|
- name: Enable the timer
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
daemon_reload: true
|
||||||
|
enabled: true
|
||||||
|
name: ddns.timer
|
||||||
|
state: "started"
|
15
roles/server/ddns/templates/inadyn.conf
Normal file
15
roles/server/ddns/templates/inadyn.conf
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
period = 300
|
||||||
|
allow-ipv6 = true
|
||||||
|
|
||||||
|
provider cloudflare.com:1 {
|
||||||
|
username = mfocko.xyz
|
||||||
|
password = {{ cloudflare_token }}
|
||||||
|
hostname = mountainside.mfocko.xyz
|
||||||
|
}
|
||||||
|
|
||||||
|
provider cloudflare.com:2 {
|
||||||
|
username = mfocko.xyz
|
||||||
|
password = {{ cloudflare_token }}
|
||||||
|
hostname = mountainside.mfocko.xyz
|
||||||
|
wildcard = true
|
||||||
|
}
|
Loading…
Reference in a new issue