From 497572ce9de377de7cc6f1b853d4468aaf53e08f Mon Sep 17 00:00:00 2001 From: Kris Lamoureux Date: Sun, 28 Feb 2021 02:26:21 -0500 Subject: [PATCH] Update dynamic DNS with ddclient --- roles/base/defaults/main.yml | 5 +++++ roles/base/tasks/ddclient.yml | 22 ++++++++++++++++++++++ roles/base/tasks/main.yml | 4 ++++ roles/base/templates/ddclient.conf.j2 | 11 +++++++++++ 4 files changed, 42 insertions(+) create mode 100644 roles/base/tasks/ddclient.yml create mode 100644 roles/base/templates/ddclient.conf.j2 diff --git a/roles/base/defaults/main.yml b/roles/base/defaults/main.yml index 74fbca3..ae3cc02 100644 --- a/roles/base/defaults/main.yml +++ b/roles/base/defaults/main.yml @@ -2,6 +2,11 @@ manage_network: false network_type: static allow_reboot: true +ddclient_web: dynamicdns.park-your-domain.com/getip +ddclient_server: dynamicdns.park-your-domain.com +ddclient_protocol: namecheap +ddclient_verbose: "yes" + packages: - cryptsetup - curl diff --git a/roles/base/tasks/ddclient.yml b/roles/base/tasks/ddclient.yml new file mode 100644 index 0000000..eeb107e --- /dev/null +++ b/roles/base/tasks/ddclient.yml @@ -0,0 +1,22 @@ +- name: Install ddclient + apt: + name: ddclient + state: present + +- name: Install ddclient settings + template: + src: ddclient.conf.j2 + dest: /etc/ddclient.conf + register: ddclient + +- name: Start ddclient and enable on boot + service: + name: ddclient + state: started + enabled: true + +- name: Restart ddclient + service: + name: ddclient + state: restarted + when: ddclient.changed diff --git a/roles/base/tasks/main.yml b/roles/base/tasks/main.yml index f9d5329..881893f 100644 --- a/roles/base/tasks/main.yml +++ b/roles/base/tasks/main.yml @@ -11,3 +11,7 @@ - import_tasks: duckdns.yml tags: duckdns when: duckdns is defined + +- import_tasks: ddclient.yml + tags: ddclient + when: ddclient_password is defined diff --git a/roles/base/templates/ddclient.conf.j2 b/roles/base/templates/ddclient.conf.j2 new file mode 100644 index 0000000..33e73fe --- /dev/null +++ b/roles/base/templates/ddclient.conf.j2 @@ -0,0 +1,11 @@ +# Configuration file for ddclient managed by Ansible +# +# /etc/ddclient.conf + +verbose={{ ddclient_verbose }} +use=web, web={{ ddclient_web }} +protocol={{ ddclient_protocol }} +server={{ ddclient_server }} +login={{ ddclient_login }} +password={{ ddclient_password }} +{{ ddclient_host }}