Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions roles/route53_ddns/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@
route53_ddns_enabled: false

# Data directory for config file
route53_data_directory: "{{ docker_home }}/route53_ddns"
route53_ddns_data_directory: "{{ docker_home }}/route53_ddns"

# AWS access credentials
route53_key_id: "{{ mandatory }}"
route53_secret_key: "{{ mandatory }}"
route53_ddns_key_id: "{{ mandatory }}"
route53_ddns_secret_key: "{{ mandatory }}"

# Managed DNS zone ID
route53_hosted_zone_id: "{{ mandatory }}"
route53_ddns_hosted_zone_id: "{{ mandatory }}"

# The hostname to update
route53_host: "*.{{ ansible_nas_domain }}"
route53_ddns_host: "*.{{ ansible_nas_domain }}"

# The Time-To-Live for the DNS entry
route53_ttl: 600
route53_ddns_ttl: 600

# The CRON string schedule for checking and updating
route53_schedule: "*/30 * * * *"
route53_ddns_schedule: "*/30 * * * *"

# Container
route53_memory: 512MB
route53_container_name: "route53-ddns"
route53_image_name: "crazymax/ddns-route53"
route53_image_version: "latest"
route53_ddns_memory: 512MB
route53_ddns_container_name: "route53-ddns"
route53_ddns_image_name: "crazymax/ddns-route53"
route53_ddns_image_version: "latest"
10 changes: 5 additions & 5 deletions roles/route53_ddns/molecule/default/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ provisioner:
inventory:
group_vars:
all:
route53_enabled: true
route53_key_id: "abcdef"
route53_secret_key: "ghijkl"
route53_hosted_zone_id: "1000"
route53_data_directory: "/tmp/route53"
route53_ddns_enabled: true
route53_ddns_key_id: "abcdef"
route53_ddns_secret_key: "ghijkl"
route53_ddns_hosted_zone_id: "1000"
route53_ddns_data_directory: "/tmp/route53"
platforms:
- name: instance
image: geerlingguy/docker-ubuntu2204-ansible:latest
Expand Down
2 changes: 1 addition & 1 deletion roles/route53_ddns/molecule/default/side_effect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
route53_enabled: false
route53_ddns_enabled: false
2 changes: 1 addition & 1 deletion roles/route53_ddns/molecule/default/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

- name: Get route53 container state
community.docker.docker_container:
name: "{{ route53_container_name }}"
name: "{{ route53_ddns_container_name }}"
register: result

- name: Check if route53 containers are running
Expand Down
2 changes: 1 addition & 1 deletion roles/route53_ddns/molecule/default/verify_stopped.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

- name: Try and stop and remove route53
community.docker.docker_container:
name: "{{ route53_container_name }}"
name: "{{ route53_ddns_container_name }}"
state: absent
register: result

Expand Down
20 changes: 10 additions & 10 deletions roles/route53_ddns/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,33 @@
block:
- name: Create AWS Route53 Dynamic DNS Directories
ansible.builtin.file:
path: "{{ route53_data_directory }}"
path: "{{ route53_ddns_data_directory }}"
state: directory

- name: Generate AWS Route53 Dynamic DNS config file
ansible.builtin.template:
src: config.yml
dest: "{{ route53_data_directory }}/ddns-route53.yml"
dest: "{{ route53_ddns_data_directory }}/ddns-route53.yml"
register: template_config

- name: AWS Route53 Dynamic DNS Container
community.docker.docker_container:
name: "{{ route53_container_name }}"
image: "{{ route53_image_name }}:{{ route53_image_version }}"
name: "{{ route53_ddns_container_name }}"
image: "{{ route53_ddns_image_name }}:{{ route53_ddns_image_version }}"
pull: true
env:
SCHEDULE: "{{ route53_schedule | string }}"
SCHEDULE: "{{ route53_ddns_schedule | string }}"
volumes:
- "{{ route53_data_directory }}/ddns-route53.yml:/etc/ddns-route53/ddns-route53.yml"
- "{{ route53_ddns_data_directory }}/ddns-route53.yml:/etc/ddns-route53/ddns-route53.yml"
restart_policy: unless-stopped
memory: "{{ route53_memory }}"
memory: "{{ route53_ddns_memory }}"
recreate: "{{ template_config is changed }}"
when: route53_enabled is true
when: route53_ddns_enabled is true

- name: Stop AWS Route53 Dynamic DNS
block:
- name: Stop AWS Route53 Dynamic DNS
community.docker.docker_container:
name: "{{ route53_container_name }}"
name: "{{ route53_ddns_container_name }}"
state: absent
when: route53_enabled is false
when: route53_ddns_enabled is false
10 changes: 5 additions & 5 deletions roles/route53_ddns/templates/config.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---

credentials:
accessKeyId: "{{ route53_key_id }}"
secretAccessKey: "{{ route53_secret_key }}"
accessKeyId: "{{ route53_ddns_key_id }}"
secretAccessKey: "{{ route53_ddns_secret_key }}"

route53:
hostedZoneID: "{{ route53_hosted_zone_id }}"
hostedZoneID: "{{ route53_ddns_hosted_zone_id }}"
recordsSet:
- name: "{{ route53_host }}."
- name: "{{ route53_ddns_host }}."
type: "A"
ttl: "{{ route53_ttl }}"
ttl: "{{ route53_ddns_ttl }}"
24 changes: 12 additions & 12 deletions website/docs/applications/system-tools/route53_ddns.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,21 @@ To set up Route53 to work with the service, please review the [Prerequisites](ht

### AWS Access Credentials

| Parameter | Description | Status |
|--------------------|-------------------|-----------|
| route53_key_id | AWS access key ID | mandatory |
| route53_secret_key | AWS secret key | mandatory |
| Parameter | Description | Status |
|-------------------------|-------------------|-----------|
| route53_ddns_key_id | AWS access key ID | mandatory |
| route53_ddns_secret_key | AWS secret key | mandatory |

### Networking

| Parameter | Description | Status |
|------------------------|--------------------------------|-----------|
| route53_hosted_zone_id | Route53 hosted zone ID | mandatory |
| route53_ttl | Time-to-live for the DNS entry | |
| route53_host | Wildcard domain to update | |
| Parameter | Description | Status |
|-----------------------------|--------------------------------|-----------|
| route53_ddns_hosted_zone_id | Route53 hosted zone ID | mandatory |
| route53_ddns_ttl | Time-to-live for the DNS entry | |
| route53_ddns_host | Wildcard domain to update | |

### Application

| Parameter | Description | Status |
|------------------|-----------------------------------------------------|-----------|
| route53_schedule | [CRON](https://pkg.go.dev/github.com/robfig/cron?utm_source=godoc#hdr-CRON_Expression_Format) schedule for checking and updating DNS entry | |
| Parameter | Description | Status |
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------|-----------|
| route53_ddns_schedule | [CRON](https://pkg.go.dev/github.com/robfig/cron?utm_source=godoc#hdr-CRON_Expression_Format) schedule for checking and updating DNS entry | |
Loading