create_opendkim_key.sh: adding DKIM key even if zone is not yet official responsible.
This commit is contained in:
@@ -18,6 +18,8 @@ log_file="${LOCK_DIR}/${script_name%%.*}.log"
|
||||
LOGGING=false
|
||||
BATCH_MODE=false
|
||||
|
||||
CONTINUE_WITHOUT_RESPONSIBLE_ZONE=false
|
||||
|
||||
DEFAULT_dns_dkim_zone_master_server="b.ns.oopen.de"
|
||||
DEFAULT_key_algo="hmac-sha256"
|
||||
DEFAULT_key_name="update-dkim"
|
||||
@@ -691,21 +693,56 @@ if $found ; then
|
||||
info "Found responsible zone for '${dkim_domain}': \033[37m\033[1m${zone}\033[m"
|
||||
else
|
||||
echo_failed
|
||||
|
||||
if [[ -n "${dns_main_zone_master_server}" ]] ; then
|
||||
|
||||
blank_line
|
||||
warn "No responsible zone for '${dkim_domain}' found!"
|
||||
|
||||
echo " Continue with the following settings:"
|
||||
echo -e " DNS master for Domain ${dkim_domain}: \033[70G\033[33m${dns_main_zone_master_server}\033[m"
|
||||
echo -e " DNS slave for Domain ${dkim_domain}: \033[70G\033[33m${dns_dkim_zone_master_server}\033[m"
|
||||
echo -e " DNS master for Domain ${update_zone}: \033[70G\033[33m${dns_dkim_zone_master_server}\033[m"
|
||||
echo ""
|
||||
echo -n " Type upper case 'YES' to start: "
|
||||
read OK
|
||||
if [[ "$OK" != "YES" ]] ; then
|
||||
fatal "Abort by user request - Answer was not 'YES'"
|
||||
fi
|
||||
blank_line
|
||||
|
||||
|
||||
CONTINUE_WITHOUT_RESPONSIBLE_ZONE=true
|
||||
|
||||
dns_dkim_zone_slave_server_arr+=("${dns_main_zone_master_server}")
|
||||
_dns_master="${dns_main_zone_master_server}"
|
||||
_dns_slave="${dns_dkim_zone_master_server}"
|
||||
|
||||
if [[ -z "$(dig @${_dns_master} +short ${update_zone}. NS)" ]] ; then
|
||||
_create_delegation=true
|
||||
else
|
||||
_create_delegation=false
|
||||
fi
|
||||
|
||||
|
||||
else
|
||||
fatal "No responsible zone for '${dkim_domain}' found!"
|
||||
fi
|
||||
fi
|
||||
|
||||
for _server in $(dig +short ${zone} NS) ; do
|
||||
if ! ${CONTINUE_WITHOUT_RESPONSIBLE_ZONE} ; then
|
||||
for _server in $(dig +short ${zone} NS) ; do
|
||||
# - Eliminate trailing '.' character(s)
|
||||
# -
|
||||
_server="${_server%"${_server##*[!\.]}"}"
|
||||
|
||||
[[ "$_server" = "$dns_dkim_zone_master_server" ]] && continue
|
||||
dns_dkim_zone_slave_server_arr+=("$_server")
|
||||
done
|
||||
done
|
||||
|
||||
|
||||
_wait=false
|
||||
if $update_dns && [[ "$dkim_domain" != "$update_zone" ]] ; then
|
||||
_wait=false
|
||||
if $update_dns && [[ "$dkim_domain" != "$update_zone" ]] ; then
|
||||
if [[ -z "$(dig +short ${update_zone}. NS)" ]] ; then
|
||||
|
||||
warn "No Subdomain delegation for zone '$update_zone' found!"
|
||||
@@ -755,6 +792,7 @@ if $update_dns && [[ "$dkim_domain" != "$update_zone" ]] ; then
|
||||
else
|
||||
_create_delegation=false
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if $_create_delegation ; then
|
||||
@@ -769,6 +807,9 @@ if $_create_delegation ; then
|
||||
fi
|
||||
|
||||
echononl "Determin DNS master of '${zone}'.."
|
||||
if [[ -n "${_dns_master}" ]] ; then
|
||||
echo_skipped
|
||||
else
|
||||
_dns_master="$(dig +short ${zone} SOA 2>/dev/null | awk '{print$1}' | sed 's/\.$//')"
|
||||
if [[ -z "$_dns_master" ]]; then
|
||||
echo_failed
|
||||
@@ -782,6 +823,7 @@ if $_create_delegation ; then
|
||||
else
|
||||
echo_ok
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# - Check if Nameserver is accessable via ssh
|
||||
@@ -1009,12 +1051,21 @@ if $_create_dkim_zone ; then
|
||||
fi
|
||||
echononl "Create zone '${update_zone}' at dns master '${dns_dkim_zone_master_server}'.."
|
||||
echo_wait
|
||||
if ${CONTINUE_WITHOUT_RESPONSIBLE_ZONE} ; then
|
||||
ssh -q -p $dns_ssh_port \
|
||||
-o BatchMode=yes \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-i $dns_ssh_key \
|
||||
$dns_ssh_user@$dns_dkim_zone_master_server "sudo $add_dkim_zone_master_script $dkim_domain -m $_dns_master -s $_dns_slave" > /dev/null 2>&1
|
||||
ret_val=$?
|
||||
else
|
||||
ssh -q -p $dns_ssh_port \
|
||||
-o BatchMode=yes \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-i $dns_ssh_key \
|
||||
$dns_ssh_user@$dns_dkim_zone_master_server "sudo $add_dkim_zone_master_script $dkim_domain" > /dev/null 2>&1
|
||||
ret_val=$?
|
||||
fi
|
||||
case $ret_val in
|
||||
0) $terminal && echo_ok
|
||||
if $terminal ; then
|
||||
|
||||
Reference in New Issue
Block a user