summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/domain-zone-management/tasks/main.yml6
-rwxr-xr-xroles/domain-zone-management/templates/update_ovhcloud_domain_zone2
-rw-r--r--roles/dyndns/tasks/main.yml9
-rw-r--r--roles/gonic/tasks/main.yml53
-rw-r--r--roles/gonic/templates/openrc/gonic31
-rw-r--r--roles/mox/files/mox.zone21
-rw-r--r--roles/mox/tasks/main.yml11
7 files changed, 127 insertions, 6 deletions
diff --git a/roles/domain-zone-management/tasks/main.yml b/roles/domain-zone-management/tasks/main.yml
index c3592e4..e80394b 100644
--- a/roles/domain-zone-management/tasks/main.yml
+++ b/roles/domain-zone-management/tasks/main.yml
@@ -32,3 +32,9 @@
src: update_ovhcloud_domain_zone
dest: /usr/bin/update_ovhcloud_domain_zone
mode: "755"
+
+- name: Install daily crontabs for domain zone management
+ ansible.builtin.cron:
+ special_time: daily
+ name: daily crontab for domain zone management
+ job: update_ovhcloud_domain_zone >> {{ ovh_domain_zone_log_directory }}/cron.log
diff --git a/roles/domain-zone-management/templates/update_ovhcloud_domain_zone b/roles/domain-zone-management/templates/update_ovhcloud_domain_zone
index dfeac61..669f384 100755
--- a/roles/domain-zone-management/templates/update_ovhcloud_domain_zone
+++ b/roles/domain-zone-management/templates/update_ovhcloud_domain_zone
@@ -11,7 +11,7 @@ mkdir -p ${REPLACE_RECORDS_DIR}
cut_nth_word()
{
- echo "$1" | cut -d ' ' -f "$2"
+ echo "$1" | sed "s/ \+/ /g" | cut -d ' ' -f "$2"
}
get_record_subdomain()
diff --git a/roles/dyndns/tasks/main.yml b/roles/dyndns/tasks/main.yml
index 9547f1a..f8b42d4 100644
--- a/roles/dyndns/tasks/main.yml
+++ b/roles/dyndns/tasks/main.yml
@@ -1,11 +1,10 @@
- name: Install DynDNS zone file
+ register: dyndns_zone_file
ansible.builtin.template:
src: dyndns.zone
dest: "{{ ovh_domain_zone_replace_records_directory }}/dyndns.zone"
mode: "644"
-- name: Install daily crontabs for DynDNS
- ansible.builtin.cron:
- special_time: daily
- name: daily crontab for DynDNS
- job: update_ovhcloud_domain_zone >> {{ ovh_domain_zone_log_directory }}/cron.log
+- name: Refresh ovhcloud domain zone
+ when: dyndns_zone_file is changed
+ ansible.builtin.command: update_ovhcloud_domain_zone
diff --git a/roles/gonic/tasks/main.yml b/roles/gonic/tasks/main.yml
new file mode 100644
index 0000000..10832c0
--- /dev/null
+++ b/roles/gonic/tasks/main.yml
@@ -0,0 +1,53 @@
+- name: Install gonic
+ community.general.apk:
+ name: gonic
+
+- name: Create music folder
+ ansible.builtin.file:
+ path: /media/seagate/music
+ state: directory
+
+- name: Create podcasts folder
+ ansible.builtin.file:
+ path: /media/seagate/podcasts
+ state: directory
+
+- name: Create playlists folder
+ ansible.builtin.file:
+ path: /media/seagate/playlists
+ state: directory
+
+- name: Create cache folder
+ ansible.builtin.file:
+ path: /var/gonic/cache
+ state: directory
+
+- name: Symlink music folder to /srv
+ ansible.builtin.file:
+ src: /media/seagate/music
+ dest: /srv/music
+ state: link
+
+- name: Symlink podcasts folder to /srv
+ ansible.builtin.file:
+ src: /media/seagate/podcasts
+ dest: /srv/podcasts
+ state: link
+
+- name: Symlink playlists folder to /srv
+ ansible.builtin.file:
+ src: /media/seagate/playlists
+ dest: /srv/playlists
+ state: link
+
+- name: Add gonic service
+ ansible.builtin.template:
+ src: openrc/gonic
+ dest: /etc/init.d/gonic
+ mode: "755"
+
+- name: Enable and restart gonic service
+ ansible.builtin.service:
+ name: gonic
+ enabled: true
+ state: restarted
diff --git a/roles/gonic/templates/openrc/gonic b/roles/gonic/templates/openrc/gonic
new file mode 100644
index 0000000..fa380b3
--- /dev/null
+++ b/roles/gonic/templates/openrc/gonic
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+
+description="Run gonic"
+
+start()
+{
+ ebegin "Starting gonic"
+ start-stop-daemon --start \
+ --exec /usr/bin/gonic \
+ --background \
+ --chdir ~mox \
+ --stdout /var/log/gonic.log \
+ --stderr /var/log/gonic.log \
+ --make-pidfile \
+ --pidfile /run/gonic.pid \
+ -- -music-path /srv/music \
+ -playlists-path /srv/playlists \
+ -podcast-path /srv/podcasts \
+ -cache-path /var/gonic/cache \
+ -listen-addr "0.0.0.0:{{ services.gonic.port }}"
+ eend $?
+}
+
+stop()
+{
+ ebegin "Stopping gonic"
+ start-stop-daemon --stop \
+ --exec /usr/bingonicmox \
+ --pidfile /run/gonic.pid
+ eend $?
+}
diff --git a/roles/mox/files/mox.zone b/roles/mox/files/mox.zone
new file mode 100644
index 0000000..b0d382e
--- /dev/null
+++ b/roles/mox/files/mox.zone
@@ -0,0 +1,21 @@
+2026a._domainkey.mail DKIM v=DKIM1;h=sha256;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvYfjrzmYgBtYofzBwI80aiW98+M2g6z+gd1Iwz9g0y30rPFNTctFn9GwBNuYBgZiZxB+sqjEbPMbr3li/R7i0A9t/KbNNJhkNC+4IjKJjk+jw1CXm4vXOUa4YSYWwy7NVYTH/QwZGz6fwjVM7YvDnnE4gG2NwrVx+AXlONt2R1G+qgV6HAIIvVi8T0yCjjqEc5B5bKlqk0XU9vSyUFJhhKnR/KNRe79C+H9GWJzcU7HUCmIHX04Xi0JeB/wm3weF1xjtGTsWyy5BmHHsfWGqSr2Dbg5o6AI5W0h4VkQ4QzdEYGVQ9ZBDyqFQwQFXLn0oHZjCD/vFzPOPdM5pxF/OgwIDAQAB 3600
+2026b._domainkey.mail DKIM v=DKIM1;h=sha256;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzcrk9FUt6AdrvnAP3KawuOTLw7uL5SJ+ZYmShuz41zwM6bPQteGSSwddFXIxcqVlJrdFahrK4KvHX/sw/hWVfZoPLDdwsGN5eI8cqQjNDE+JDu9BbPlTituva4Hkve0hbAKDqA8jmbcZg6aU7b44Kzq8UpWAlPO273Rq2tsbCBcITt8B3NFoeY9CSsZU1LqGl855GUtaNyhlPaAvfab3Q9/4wyusPhCHlBYaRK+ZzuSMs5KEOG6n4kbZfMVi2+4c/bPU5PdTuyvbSIEqjNH4TpfatE0I9ubGv0WbAzr5EZbv5+xtukZ/dIisPPMjn1AbjpSJYNYr2OYgey6+WvzRmQIDAQAB 3600
+_autodiscover._tcp.mail SRV 0 1 443 mail 3600
+_dmarc.mail TXT "v=DMARC1;p=reject;rua=mailto:dmarcreports@mail.joeac.net!10m" 3600
+_imaps._tcp.mail SRV 0 1 993 mail 3600
+_mta-sts.mail TXT "v=STSv1; id=20260705T153220" 3600
+_smtp._tls.mail TXT "v=TLSRPTv1; rua=mailto:tlsreports@mail.joeac.net" 3600
+_submissions._tcp.mail SRV 0 1 465 mail 3600
+autoconfig.mail CNAME mail.joeac.net. 3600
+clientsettings.mail CNAME mail.joeac.net. 3600
+mail MX 10 mail 3600
+mail A 217.155.190.42 3600
+mail AAAA 2a02:8013:79ba:1:2e0:4cff:fe61:9b17 3600
+mail SPF v=spf1 ip4:217.155.190.42 ip6:2a02:8013:79ba:1:2e0:4cff:fe61:9b17 mx ~all 3600
+mta-sts.mail CNAME mail.joeac.net. 3600
+_imap._tcp.mail SRV 0 0 0 . 3600
+_submission._tcp.mail SRV 0 0 0 . 3600
+_pop3._tcp.mail SRV 0 0 0 . 3600
+_pop3s._tcp.mail SRV 0 0 0 . 3600
+mail CAA 0 issue "letsencrypt.org" 3600
+@ CAA 0 issue "letsencrypt.org" 3600
diff --git a/roles/mox/tasks/main.yml b/roles/mox/tasks/main.yml
index ac4a43c..496ca23 100644
--- a/roles/mox/tasks/main.yml
+++ b/roles/mox/tasks/main.yml
@@ -165,3 +165,14 @@
special_time: daily
name: Update mox
job: /usr/bin/update_mox
+
+- name: Install mox.zone
+ register: mox_zone_file
+ ansible.builtin.copy:
+ src: mox.zone
+ dest: "{{ ovh_domain_zone_replace_records_directory }}/mox.zone"
+ mode: "644"
+
+- name: Refresh ovhcloud domain zone
+ when: mox_zone_file is changed
+ ansible.builtin.shell: update_ovhcloud_domain_zone