Browse Source
Add Infoblox DNS API support
Add Infoblox DNS API support
Written in concert with one of my colleagues, this script adds Infoblox API support to acme.shpull/655/head
committed by
GitHub
1 changed files with 78 additions and 0 deletions
@ -0,0 +1,78 @@ |
|||
|
|||
#!/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 ################################## |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue