[% USE JSON -%] [% WRAPPER 'master_templates/master.tmpl' theme="yui" app_key="dns_cluster" -%] [% PROCESS '_ajaxapp_styles.tmpl' -%] [% PROCESS '_ajaxapp_header.tmpl' -%] [% PROCESS '_ajaxapp_footer.tmpl' -%]

[% locale.maketext("[asis,WHM]’s [asis,DNS] clustering allows you to synchronize [asis,DNS] records among multiple [asis,cPanel amp() WHM] or [output,url,_1,cPanel DNSONLY,_2] machines.",'https://go.cpanel.net/dnsonly',{'target' => '_blank'}) %]
[% locale.maketext("In order to synchronize your [asis,DNS] records, all machines in the cluster must be running [asis,cPanel amp() WHM] or [output,url,_1,cPanel DNSONLY,_2,_3] version 8.9 or higher.", "https://go.cpanel.net/dnsonly",'target','_blank') %]

[% IF data.hasroot %] [% INCLUDE _cluster_masquerade.tmpl %] [% END %] [% IF data.cluster_user == "root" %] [% enabled = data.dnsclustering action = "adjustclusterdns.cgi" options_header = locale.maketext('Global [asis,DNS] Cluster Options') -%] [% IF enabled %] [% text = locale.maketext("Disable [asis,DNS] Clustering") -%] [% flavor = locale.maketext('[asis,DNS] clustering is enabled.') -%] [% ELSE %] [% text = locale.maketext("Enable [asis,DNS] Clustering") -%] [% flavor = locale.maketext('[asis,DNS] clustering is disabled.') -%] [% END %] [% ELSE %] [% enabled = data.uniquedns action = "adjustuniquedns.cgi" options_header = locale.maketext('Unique [asis,DNS] Clustering') -%] [% IF enabled %] [% text = locale.maketext('Disable Unique [asis,DNS] Clustering For Accounts Owned By “[_1]”', data.cluster_user.html()) -%] [% flavor = locale.maketext('Unique [asis,DNS] clustering is enabled.') _ " " _ locale.maketext('Accounts owned by “[_1]” will use the unique settings defined below.', data.cluster_user.html()) -%] [% ELSE %] [% text = locale.maketext('Enable Unique [asis,DNS] Clustering For Accounts Owned By “[_1]”', data.cluster_user.html()) -%] [% flavor = locale.maketext('Unique [asis,DNS] clustering is disabled.') _ " " _ locale.maketext('Accounts owned by “[_1]” will use the settings defined by the server administrator.', data.cluster_user.html()) -%] [% END %] [% END %]

[% options_header %]

[% flavor %]
[% IF data.cluster_user == "root" && data.dnsclustering %]

[% locale.maketext('Failure threshold for cluster members:') %] [% locale.maketext("Enter the number of [output,url,_1,DNSadmin,_2,_3] commands that may fail before WHM disables an unresponsive cluster member.",'https://go.cpanel.net/dnsadminGloss','target','_blank') %]

[% SET checked = data.globaloptions.autodisablethreshold == 10 ? 'default' : data.globaloptions.autodisablethreshold ? 'custom' : 'disabled' -%]




[% END %]
[% IF data.dnsclustering %]

[% locale.maketext('Servers In Your [asis,DNS] Cluster') %]

[% locale.maketext('Making direct links between servers can decrease CPU load, improving the performance of your servers. The more steps that exist between a web server and a nameserver, the slower the servers will perform.') %] [% locale.maketext('When you add a server and set it to synchronize, the [asis,DNS] path diagram below will update. Try to minimize the width of the diagram as much as possible.') %]

[% locale.maketext('Read more at our [output,url,_1,DNS Clustering Quick-Start Guide,_2,_3].','https://go.cpanel.net/DNSClusterConfig/','target','_blank') %]

[% IF data.uniquedns || data.cluster_user == "root" %]

[% locale.maketext("Add a new server to the cluster") %]

([% locale.maketext('Show All') %])
[% END %] [% IF ! data.dnsservers.size %]

[% locale.maketext('There are currently no servers in your [asis,DNS] cluster.') %]

[% ELSE %] [% FOR server IN data.dnsservers %] [% SET version_prefix = server.mmversion.substr(0, 2) %] [% SET version_suffix = server.mmversion.substr(3) %] [% NEXT IF data.cluster_user != 'root' && data.cluster_user != server.user && data.uniquedns %] [% END %]
[% locale.maketext("Hostname") %] [% locale.maketext("IP Address") %] [% locale.maketext("Username") %] [% locale.maketext("Type") %] [% locale.maketext("Status") %] [% locale.maketext("Remote Server Type") %] [% locale.maketext("[asis,DNS] Role") %] [% locale.maketext("Actions") %]
[% server.hostname FILTER html %] [% server.host FILTER html %] [% server.user FILTER html %] [% data.module_name_map.${server.module} FILTER html %] [% IF server.disabled == 1 %] [% locale.maketext("Disabled due to connection failures.") %] [[% locale.maketext("Enable") %]] [% locale.maketext( [% ELSIF server.module == 'cPanel' %] [% IF server.error %] [% server.error FILTER html %] [% locale.maketext( [% ELSIF ((version_prefix < 11) || (version_prefix == 11 && version_suffix < 83)) && data.coordinator.dnssec %] [% locale.maketext("Requires [asis,cPanel] update to support [asis,DNSSEC].") %] [% locale.maketext( [% ELSIF !server.has_good_privs %] [% locale.maketext("[asis,API] key used has insufficient [asis,ACLs]. The [asis,clustering] [asis,ACL] is required.") %] [% locale.maketext( [% ELSIF !server.dns_server_running && !server.dns_server_disabled %] [% IF server.dns_server_monitored %] [% locale.maketext("[asis,DNS] server may be down.") %] [% IF server.mmversion >= 11.87 %] [[% locale.maketext("Restart") %]] [% END %] [% ELSE %] [% locale.maketext("The [asis,DNS] server’s status is unknown because the service isn’t monitored.") %] [% IF server.mmversion >= 11.87 %] [[% locale.maketext("Monitor") %]] [% END %] [% END %] [% locale.maketext( [% ELSIF !server.dnssec && !server.dns_server_disabled && data.coordinator.dnssec %] [% IF server.mmversion >= 11.83 %] [% locale.maketext("Requires [asis,PowerDNS] to support [asis,DNSSEC].") %] [[% locale.maketext("Upgrade") %]] [% locale.maketext( [% END %] [% ELSIF server.has_reverse_trust == 0 && ( server.dnsrole == 'sync' || server.dnsrole == 'standalone' ) %] [% locale.maketext("Server needs reverse trust set up to auto-propagate [asis,DNS] updates.") %] [[% locale.maketext("Enable") %]] [% locale.maketext( [% ELSIF server.status == 1 %] [% server.version FILTER html %] [% locale.maketext( [% END %] [% ELSE %] [% IF server.error %] [% server.error FILTER html %] [% locale.maketext( [% ELSE %] [% server.version FILTER html %] [% locale.maketext( [% END %] [% END %] [% IF !server.dns_server_disabled %] [% server.dns_server ? server.dns_server : 'unknown' %] [% ELSE %] disabled [% END %]
[% IF server.cluster_config_user == data.cluster_user %]   [% ELSE %] [% server.dnsrole %] [% END %]
[% IF server.cluster_config_user == data.cluster_user %] [% locale.maketext( [% locale.maketext( [% ELSE %] [% locale.maketext("This server is inherited.") %] [% END %]
[% IF data.dnsservers.size -%] [% PROCESS _dnsroles_explained.tmpl %] [% END -%] [% END %]

[% locale.maketext("[asis,DNS] Path Diagram") %]

[% SET depth = 0; VIEW dns_view; BLOCK hash; '
'; '↳' IF depth > 0; #alternates: 21b3, 2937; ' '; item.name FILTER html; '
    '; depth = depth + 1; FOR node = item.children; '
  • '; dns_view.print(node); '
  • '; END; depth = depth - 1; '
'; END; END; -%]
[% dns_view.print( data.dns_peer_tree ) %]
[% END %] [% END %]