acme.sh/dns_infoblox.sh
taishan69 b3e1fb80fd Add Infoblox DNS API support
Written in concert with one of my colleagues, this script adds Infoblox API support to acme.sh
2017-02-21 09:04:11 -06:00

79 lines
2.1 KiB
Bash

#!/usr/bin/env sh
dns_infoblox_add() {
fulldomain=$1
txtvalue=$2
baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue"
_info "Using Infoblox API"
_debug fulldomain "$fulldomain"
_debug txtvalue "$txtvalue"
#_err "Not implemented!"
if [ -z "$Infoblox_Creds" ] || [ -z "$Infoblox_Server" ]; then
Infoblox_Creds=""
Infoblox_Server=""
_err "You didn't specify the credentials or server yet (Infoblox_Creds and Infoblox_Server)."
_err "Please set them via EXPORT ([username:password] and [ip or hostname]) and try again."
return 1
fi
#save the login info to the account conf file.
_saveaccountconf Infoblox_Creds "$Infoblox_Creds"
_saveaccountconf Infoblox_Server "$Infoblox_Server"
result=`curl -k -u $Infoblox_Creds -X POST $baseurlnObject`
if [[ $result =~ record:txt/.*:.*/default ]]; then
echo "Successfully created the txt record"
return 0
else
echo "Error encountered during record addition"
echo $result
_err $result
return 1
fi
}
dns_infoblox_rm() {
fulldomain=$1
txtvalue=$2
_info "Using Infoblox API"
_debug fulldomain "$fulldomain"
_debug txtvalue "$txtvalue"
# Does the record exist?
baseurlnObject="https://$Infoblox_Server/wapi/v2.2.2/record:txt?name=$fulldomain&text=$txtvalue&_return_type=xml-pretty"
echo $baseurlnObject
result=`curl -k -u $Infoblox_Creds -X GET $baseurlnObject`
if [[ $result =~ record:txt/.*:.*/default ]]; then
# Extract object ref
objRef=`grep -Po 'record:txt/.*:.*/default' <<< $result`
objRmUrl="https://$Infoblox_Server/wapi/v2.2.2/$objRef"
rmResult=`curl -k -u $Infoblox_Creds -X DELETE $objRmUrl`
# Check if rm succeeded
if [[ $rmResult =~ record:txt/.*:.*/default ]]; then
echo "Successfully deleted $objRef"
return 0
else
echo "Error occurred during txt record delete"
echo $rmResult
_err $rmResult
return 1
fi
else
echo "Record to delete didn't match an existing record"
echo $result
_err $result
return 1
fi
}
#################### Private functions below ##################################