mirror of
				https://github.com/spantaleev/matrix-docker-ansible-deploy.git
				synced 2025-11-04 00:58:56 +01:00 
			
		
		
		
	Improved dynamic DNS
This commit is contained in:
		
				
					committed by
					
						
						Slavi Pantaleev
					
				
			
			
				
	
			
			
			
						parent
						
							057bd168f4
						
					
				
				
					commit
					f2f9472c4a
				
			@@ -55,6 +55,18 @@ matrix_dynamic_dns_base_path: "{{ matrix_base_data_path }}/dynamic-dns"
 | 
			
		||||
matrix_dynamic_dns_config_path: "{{ matrix_dynamic_dns_base_path }}/config"
 | 
			
		||||
matrix_dynamic_dns_docker_src_files_path: "{{ matrix_dynamic_dns_base_path }}/docker-src"
 | 
			
		||||
 | 
			
		||||
# Config options
 | 
			
		||||
matrix_dynamic_dns_use: "web"
 | 
			
		||||
 | 
			
		||||
# The endpoint to use to determine your external IP
 | 
			
		||||
matrix_dynamic_dns_web: "https://cloudflare.com/cdn-cgi/trace"
 | 
			
		||||
 | 
			
		||||
# The field to extract the IP from
 | 
			
		||||
# If your endpoint defined in `matrix_dynamic_dns_web` doesn't need this, just set it to ""
 | 
			
		||||
matrix_dynamic_dns_web_skip: "ip="
 | 
			
		||||
 | 
			
		||||
matrix_dynamic_dns_additional_configuration_blocks: []
 | 
			
		||||
 | 
			
		||||
# Holds the configurations (the domains to update DNS for, the providers they use, etc.)
 | 
			
		||||
#
 | 
			
		||||
# Example:
 | 
			
		||||
@@ -64,8 +76,4 @@ matrix_dynamic_dns_docker_src_files_path: "{{ matrix_dynamic_dns_base_path }}/do
 | 
			
		||||
#     username: XXXXXXXXXXXXXXXX
 | 
			
		||||
#     password: XXXXXXXXXXXXXXXX
 | 
			
		||||
#     domain: "{{ matrix_domain }}"
 | 
			
		||||
matrix_dynamic_dns_domain_configurations: []
 | 
			
		||||
 | 
			
		||||
# Config options
 | 
			
		||||
matrix_dynamic_dns_additional_configuration_blocks: []
 | 
			
		||||
matrix_dynamic_dns_use: "web"
 | 
			
		||||
matrix_dynamic_dns_domain_configurations: []
 | 
			
		||||
@@ -14,8 +14,8 @@
 | 
			
		||||
- name: Fail if required matrix-dynamic-dns settings not defined in configuration blocks
 | 
			
		||||
  ansible.builtin.fail:
 | 
			
		||||
    msg: >-
 | 
			
		||||
      One of the configurations in matrix_dynamic_dns_domain_configurations is missing a required key (domain, provider, protocol).
 | 
			
		||||
  when: "'domain' not in configuration or 'provider' not in configuration or 'protocol' not in configuration"
 | 
			
		||||
      One of the configurations in matrix_dynamic_dns_domain_configurations is missing a required key (domain, protocol).
 | 
			
		||||
  when: "'domain' not in configuration or 'protocol' not in configuration"
 | 
			
		||||
  with_items: "{{ matrix_dynamic_dns_domain_configurations }}"
 | 
			
		||||
  loop_control:
 | 
			
		||||
    loop_var: configuration
 | 
			
		||||
 
 | 
			
		||||
@@ -10,24 +10,57 @@ syslog=no
 | 
			
		||||
pid=/var/run/ddclient/ddclient.pid
 | 
			
		||||
ssl=yes
 | 
			
		||||
use={{ matrix_dynamic_dns_use }}
 | 
			
		||||
 | 
			
		||||
{% for dynamic_dns_domain_configuration in matrix_dynamic_dns_domain_configurations %}
 | 
			
		||||
protocol={{ dynamic_dns_domain_configuration.protocol }}
 | 
			
		||||
server={{ dynamic_dns_domain_configuration.provider }} {% if 'username' in dynamic_dns_domain_configuration %}
 | 
			
		||||
login='{{ dynamic_dns_domain_configuration.username }}' {% endif %} {% if 'password' in dynamic_dns_domain_configuration %}
 | 
			
		||||
password='{{ dynamic_dns_domain_configuration.password }}' {% endif %} {% if 'static' in dynamic_dns_domain_configuration %}
 | 
			
		||||
static=yes {% endif %} {% if 'custom' in dynamic_dns_domain_configuration %}
 | 
			
		||||
custom=yes {% endif %} {% if 'zone' in dynamic_dns_domain_configuration %}
 | 
			
		||||
zone={{ dynamic_dns_domain_configuration.zone }} {% endif %} {% if 'ttl' in dynamic_dns_domain_configuration %}
 | 
			
		||||
ttl={{ dynamic_dns_domain_configuration.ttl }} {% endif %} {% if 'mx' in dynamic_dns_domain_configuration %}
 | 
			
		||||
mx={{ dynamic_dns_domain_configuration.mx }} {% endif %} {% if 'wildcard' in dynamic_dns_domain_configuration %}
 | 
			
		||||
wildcard=yes {% endif %}
 | 
			
		||||
{{ dynamic_dns_domain_configuration.domain }}
 | 
			
		||||
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
web='{{ matrix_dynamic_dns_web }}'
 | 
			
		||||
{% if matrix_dynamic_dns_web_skip %}
 | 
			
		||||
web-skip='{{ matrix_dynamic_dns_web_skip }}'
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% for matrix_dynamic_dns_additional_configuration in matrix_dynamic_dns_additional_configuration_blocks %}
 | 
			
		||||
{{ matrix_dynamic_dns_additional_configuration }}
 | 
			
		||||
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
{% for dynamic_dns_domain_configuration in matrix_dynamic_dns_domain_configurations %}
 | 
			
		||||
protocol={{ dynamic_dns_domain_configuration.protocol }}
 | 
			
		||||
 | 
			
		||||
{% if 'provider' in dynamic_dns_domain_configuration %}
 | 
			
		||||
server={{ dynamic_dns_domain_configuration.provider }}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'username' in dynamic_dns_domain_configuration %}
 | 
			
		||||
login='{{ dynamic_dns_domain_configuration.username }}'
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'password' in dynamic_dns_domain_configuration %}
 | 
			
		||||
password='{{ dynamic_dns_domain_configuration.password }}'
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'static' in dynamic_dns_domain_configuration %}
 | 
			
		||||
static=yes
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'custom' in dynamic_dns_domain_configuration %}
 | 
			
		||||
custom=yes
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'zone' in dynamic_dns_domain_configuration %}
 | 
			
		||||
zone={{ dynamic_dns_domain_configuration.zone }}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'ttl' in dynamic_dns_domain_configuration %}
 | 
			
		||||
ttl={{ dynamic_dns_domain_configuration.ttl }}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'mx' in dynamic_dns_domain_configuration %}
 | 
			
		||||
mx={{ dynamic_dns_domain_configuration.mx }}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'wildcard' in dynamic_dns_domain_configuration %}
 | 
			
		||||
wildcard=yes
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if 'script' in dynamic_dns_domain_configuration %}
 | 
			
		||||
script={{ dynamic_dns_domain_configuration.script }}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{{ dynamic_dns_domain_configuration.domain }}
 | 
			
		||||
{% endfor %}
 | 
			
		||||
		Reference in New Issue
	
	Block a user