effectivelywild.technitium_dns.technitium_dns_init_join_cluster module – Join a DNS server to an existing cluster as a Secondary node
Note
This module is part of the effectivelywild.technitium_dns collection (version 1.1.2).
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install effectivelywild.technitium_dns.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: effectivelywild.technitium_dns.technitium_dns_init_join_cluster.
New in effectivelywild.technitium_dns 1.0.0
Synopsis
Join this DNS server to an existing cluster as a Secondary node.
This process will overwrite configuration on this server for Allowed, Blocked, Apps, Settings and Administration sections.
The server will automatically synchronize its configuration with the Primary node.
If HTTPS is not enabled, it will be enabled automatically with a self-signed certificate.
This can only be called on a Secondary node (not yet joined to a cluster).
Requirements
The below requirements are needed on the host that executes this module.
Technitium DNS Server v14.0 or later
Parameters
Parameter |
Comments |
|---|---|
Port for the Technitium DNS API. Defaults to 5380 Default: |
|
API token for authenticating with the Technitium DNS API |
|
Base URL for the Technitium DNS API |
|
Set to true only when you know the Primary node uses a self-signed TLS certificate and is on a private network. Choices:
|
|
The IP address of the Primary node in the cluster. When unspecified, the domain name in the Primary node URL will be resolved and used. |
|
The password of the administrator user. |
|
The 6-digit code from your authenticator app for the administrator user. Only required if the user has 2FA enabled. |
|
The web service HTTPS URL of the Primary node in the cluster. |
|
The username of an administrator on the Primary node in the cluster. |
|
The static IP address(es) of this DNS server that will be accessible by all other nodes in the cluster. Accepts a list of IP addresses for nodes with multiple network interfaces. When multiple IPs are provided, they will be used for cluster communication. |
|
Whether to validate SSL certificates when making API requests. Choices:
|
Notes
Note
This operation requires Administration Delete permission.
The process may take a while depending on the amount of config data to sync.
It’s recommended to manually configure HTTPS with a valid certificate before joining.
See Also
See also
- effectivelywild.technitium_dns.technitium_dns_init_cluster
Initialize a new cluster (Primary node)
- effectivelywild.technitium_dns.technitium_dns_leave_cluster
Leave a cluster
- effectivelywild.technitium_dns.technitium_dns_get_cluster_state
Get cluster state information
Examples
- name: Join DNS server to cluster as Secondary node with single IP
effectivelywild.technitium_dns.technitium_dns_init_join_cluster:
api_url: "http://localhost"
api_token: "myapitoken"
secondary_node_ip_addresses:
- "192.168.10.101"
primary_node_url: "https://server1.example.com:53443/"
primary_node_username: "admin"
primary_node_password: "adminpassword"
register: result
- name: Join cluster with multiple IP addresses
effectivelywild.technitium_dns.technitium_dns_init_join_cluster:
api_url: "http://localhost"
api_token: "myapitoken"
secondary_node_ip_addresses:
- "192.168.10.101"
- "10.0.1.101"
primary_node_url: "https://server1.example.com:53443/"
primary_node_username: "admin"
primary_node_password: "adminpassword"
- name: Join cluster with self-signed certificate on primary
effectivelywild.technitium_dns.technitium_dns_init_join_cluster:
api_url: "http://localhost"
api_token: "myapitoken"
secondary_node_ip_addresses:
- "192.168.10.102"
primary_node_url: "https://server1.example.com:53443/"
primary_node_ip_address: "192.168.10.5"
ignore_certificate_errors: true
primary_node_username: "admin"
primary_node_password: "adminpassword"
- name: Join cluster with 2FA enabled
effectivelywild.technitium_dns.technitium_dns_init_join_cluster:
api_url: "http://localhost"
api_token: "myapitoken"
secondary_node_ip_addresses:
- "192.168.10.103"
primary_node_url: "https://server1.example.com:53443/"
primary_node_username: "admin"
primary_node_password: "adminpassword"
primary_node_totp: "123456"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
Whether the module made changes Returned: always Sample: |
|
Complete cluster state after joining Returned: always |
|
The cluster domain name Returned: always Sample: |
|
Whether the cluster is initialized Returned: always Sample: |
|
List of nodes in the cluster Returned: always |
|
Node ID Returned: success Sample: |
|
Node IP address Returned: success Sample: |
|
Node domain name Returned: success Sample: |
|
Node state (Self, Connected, Unreachable) Returned: success Sample: |
|
Node type (Primary or Secondary) Returned: success Sample: |
|
Node up since timestamp Returned: success Sample: |
|
Node API URL Returned: success Sample: |
|
When the configuration was last synced Returned: always Sample: |
|
Interval in seconds for config refresh Returned: always Sample: |
|
Interval in seconds for config retry Returned: always Sample: |
|
The DNS server domain name Returned: always Sample: |
|
Interval in seconds for heartbeat refresh Returned: always Sample: |
|
Interval in seconds for heartbeat retry Returned: always Sample: |
|
Technitium DNS Server version Returned: always Sample: |
|
Whether the module failed Returned: always Sample: |
|
Status message Returned: always Sample: |