Dyn - Create an A Record

Octopus.Script exported 2015-11-27 by timhunt303 belongs to ‘Dyn’ category.

Creates an A record in the specified zone with the specified details.

NOTE: The API User MUST have the follow permissions: - UserLogin - UserChangepw - RecordAdd - RecordUpdate - RecordGet - ZoneGet - ZoneAddNode - ZonePublish - ZoneChangeset

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Dyn Customer Name

dynCustomerName

The Dyn customer name, usually the company name

Dyn User Name

dynUserName

User Name of the user that will perform this step

NOTE: The API User MUST have the follow permissions: - UserLogin - UserChangepw - RecordAdd - RecordUpdate - RecordGet - ZoneGet - ZoneAddNode - ZonePublish - ZoneChangeset

Password

dynPassword

Password of the user to access Dyn

Dyn Zone

dynZone

The name of the Zone, where you want the A record to be created

For example: myzone.com

Fully Qualified Domain Name

dynFQDN

The name of the A record that is being created in Fully Qualified Domain Name format

For example: newrecord.myzone.com

Time to Live

dynCorrectTTL = 0

Limits the lifespan or lifetime of data in a computer network

IPv4 Address

dynCorrectIPAddress

The IPv4 address of the new A record

Script body

Steps based on this template will execute the following PowerShell script.

#--------------------------------------------------------------------
#Log In Variables

$dynLogInURI = "https://api.dynect.net/REST/Session/"

$dynCustomerName = $OctopusParameters["dynCustomerName"] 

$dynUserName = $OctopusParameters["dynUserName"] 

$dynPassword = $OctopusParameters["dynPassword"] 

#--------------------------------------------------------------------
#Get A Record Variables

$dynARecordURI = "https://api.dynect.net/REST/ARecord"

$dynZone = $OctopusParameters["dynZone"]

$dynFQDN = $OctopusParameters["dynFQDN"] 

#--------------------------------------------------------------------
#A Record information to check

$createNewARecord = $FALSE

$UpdateARecord = $FALSE

$dynCorrectTTL = $OctopusParameters["dynCorrectTTL"]

$dynCorrectIPAddress = $OctopusParameters["dynCorrectIPAddress"] 


#--------------------------------------------------------------------
#Publish Zone Variables

$dynPublishURI = "https://api.dynect.net/REST/Zone"

$publishZone = $FALSE




Write-Output "`n-------------------------`n"

#--------------------------------------------------------------------
#Log In and Retrieve Token for this session

Write-Output "Logging into Dyn and retrieving session Authentication Token."

$dynCredentials = @{}

$dynCredentials.Add("customer_name", $dynCustomerName)
$dynCredentials.Add("user_name", $dynUserName)
$dynCredentials.Add("password", $dynPassword)

$dynCredentialsJSON = ConvertTo-Json -InputObject $dynCredentials

$dynLoginResults = Invoke-RestMethod -Uri $dynLogInURI -Body $dynCredentialsJSON -ContentType 'application/json' -Method Post

if($dynLoginResults.status -ne "success")
{
    Write-Error "Invalid Log In Details. Please try again." -ErrorId E4
}
else
{
    Write-Output "`nLog in was successful."
}



$dynSessionToken = @{}

$dynSessionToken.Add("Auth-Token", $dynLoginResults.data.token)


Write-Output "`n-------------------------`n"

#--------------------------------------------------------------------
#Get A Record 

Write-Output "Retrieving specified A record information.`n"

#get and search all records to get the correct record ID (not a unique id) for existing A Records
#this is done to check if a A Record does not exist already. This is the only way to do it without getting an error.
$dynAllRecordsURI = "https://api.dynect.net/REST/AllRecord/$dynZone"

 
$dynAllRecordResults = Invoke-RestMethod -Uri $dynAllRecordsURI -Headers $dynSessionToken -ContentType 'application/json' -Method Get 

for($i = 0; $i -lt $dynAllRecordResults.data.Length; $i++)
{
    
    $a = $dynAllRecordResults.data.Get($i)

    $result = $a.contains($dynFQDN)

    if($result -eq $TRUE)
    {
        $dynARecordString = $dynAllRecordResults.data.Get($i)

        $dynARecordExists = $TRUE

        $i = $dynAllRecordResults.data.Length
    }
    else
    {
        $dynARecordExists = $FALSE
    }
}



#checks to see if there is more than one A record with the same name.
if($dynARecordExists -eq $TRUE)
{
    $dynARecordURI = "$dynARecordURI/$dynZone/$dynFQDN" 
 
    $dynARecordResults = Invoke-RestMethod -Uri $dynARecordURI -Headers $dynSessionToken -ContentType 'application/json' -Method Get 

    if($dynARecordResults.data.Length -gt 1)
    {
        Write-Error "`nThere is more than one A record with the Fully Qualified Domain Name (FQDN) of $dynFQDN. `nThis script does not handle more than one A record witht the same FQDN" -ErrorId E1
    }

    if($dynARecordResults.status -ne "success")
    {
        Write-Error "Error occurred while trying to retrieve the A Record. Please check the host name and the Fully Qualified Domain Name are correct." -ErrorId E1
    }
}



#Checks if the an A record was returned or needs to be created
if(($dynARecordResults.data.Length -eq 0) -or ($dynARecordExists -eq $FALSE))
{
    $createNewARecord = $TRUE

    Write-Warning "$dynFQDN does not exists. Creating $dynFQDN now."
}
else
{
    #get information for the specified record
    $dynARecordString = $dynARecordResults.data

    $dynARecordURI = "https://api.dynect.net$dynARecordString/"

    $dynARecord = Invoke-RestMethod -Uri $dynARecordURI -Headers $dynSessionToken -ContentType 'application/json' -Method Get 

    $dynARecord = $dynARecord.data

    Write-Output "`n$dynFQDN has successfully been retrieved."
    
    Write-Output "`n-------------------------`n"

}

#--------------------------------------------------------------------
#create new A record

if($createNewARecord -eq $TRUE)
{
    $dynCreateURI = "https://api.dynect.net/REST/ARecord/$dynZone/$dynFQDN"   

    $rData = @{}

    $rData.Add("address", $dynCorrectIPAddress)

    $dynCreateARecord = @{}

    $dynCreateARecord.Add("ttl", $dynCorrectTTL)
    $dynCreateARecord.Add("rdata", $rData)

    $dynCreateARecordJSON = ConvertTo-Json -InputObject $dynCreateARecord

    $dynCreateResult = Invoke-RestMethod -Uri $dynCreateURI -ContentType 'application/json' -Headers $dynSessionToken -Body $dynCreateARecordJSON  -Method Post

    if($dynCreateResult.status -ne "success")
    {
        Write-Error "An error occurred while creating the new A Record. Please check the details that have been entered are correct and try again." -ErrorId E4

    }
    else
    {
        Write-Output "$dynFQDN has successfully been added to the $dynZone zone in Dyn."

        $publishZone = $TRUE
    }

    Write-Output "`n-------------------------`n"


}



#--------------------------------------------------------------------
#checking specified A Record to see if it is correct if it exists
if($createNewARecord -eq $FALSE)
{
    Write-Output "Checking to see if $dynFQDN is current and contains the correct information."

    if($dynARecord.rdata.address -ne $dynCorrectIPAddress)
    {
        $UpdateARecord = $TRUE

        Write-Warning "`n$dynFQDN is out of date. Updating now"

    }

    if($UpdateARecord -eq $FALSE)
    {
        Write-Output "`n$dynFQDN is up-to-date"
    }

    Write-Output "`n-------------------------`n"
}
#--------------------------------------------------------------------
#Update A record

if($UpdateARecord -eq $TRUE)
{
    Write-Output "Updating $dynFQDN so that is matches the current information saved in the system."

    $dynUpdateURI = $dynARecordURI

    $rData = @{}

    $rData.Add("address", $dynCorrectIPAddress)

    $dynUpdatedARecord = @{}

    
    $dynUpdatedARecord.Add("ttl", $dynCorrectTTL)
    $dynUpdatedARecord.Add("rdata", $rData)

    $dynUpdatedARecord = ConvertTo-Json -InputObject $dynUpdatedARecord

    $dynUpdateResult = Invoke-RestMethod -Uri $dynUpdateURI -ContentType 'application/json' -Headers $dynSessionToken -Body $dynUpdatedARecord -Method Put
    
    if($dynUpdateResult.status -ne "success")
    {
        Write-Error "An error occured while trying to update the $dynFQDN record"
    }
    else
    {
        Write-Output "`nUpdate was successful. Just needs to be published to make it offical."
        
        $publishZone = $TRUE

    }


    Write-Output "`n-------------------------`n"

}

#--------------------------------------------------------------------
#publish update or creation of A Record

if($publishZone -eq $TRUE)
{

    Write-Output "Publishing changes made to $dynZone"

    $publish = @{}
    $publish.Add("publish", 'true')

    $publish = ConvertTo-Json -InputObject $publish

    $dynPublishURI = "$dynPublishURI/$dynZone/"

    $dynPublishResults = Invoke-RestMethod -Uri $dynPublishURI -ContentType 'application/json' -Headers $dynSessionToken -Body $publish -Method Put

    if($dynPublishResults.status -ne "success")
    {
        Write-Error "An error occurred during the publication of the $dynZone zone." -ErrorId E4
    }
    else
    {
        Write-Output "`n$dynZone has successfully been published."
    }

        Write-Output "`n-------------------------`n"

}




#--------------------------------------------------------------------
#Log Out of session

Write-Output "Logging out and deleting this session's authentication token"

$dynLogOutResults = Invoke-RestMethod -Uri $dynLogInURI -ContentType 'application/json' -Headers $dynSessionToken -Method Delete

While(($dynLogOutResults.status -ne "success") -and ($tries -lt 10))
{
    Write-Output "`nWaiting to log out of Dyn"
    $tries++
    Start-Sleep -Seconds 1
}

if($dynLogOutResults.status -eq "success")
{
    $dynSessionToken.Clear()
    Write-Output $dynSessionToken
    Write-Output "`nThis session has been ended successfully and the authentication token has been deleted."
    
}
else
{
    Write-Error "`nAn error occurred while logging out." -ErrorId E4
}


Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "5e359c05-89a0-4a13-98a4-d54b0415bb45",
  "Name": "Dyn - Create an A Record",
  "Description": "Creates an A record in the specified zone with the specified details. \n\nNOTE: The API User MUST have the follow permissions:\n\t- UserLogin\n\t- UserChangepw\n\t- RecordAdd\n\t- RecordUpdate\n        - RecordGet\n\t- ZoneGet\n\t- ZoneAddNode\n\t- ZonePublish\n\t- ZoneChangeset\n",
  "Version": 1,
  "ExportedAt": "2015-11-27T06:25:11.275+00:00",
  "ActionType": "Octopus.Script",
  "Author": "timhunt303",
  "Parameters": [
    {
      "Name": "dynCustomerName",
      "Label": "Dyn Customer Name",
      "HelpText": "The Dyn customer name,  usually the company name",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "dynUserName",
      "Label": "Dyn User Name",
      "HelpText": "User Name of the user that will perform this step\n\nNOTE: The API User MUST have the follow permissions:\n\t- UserLogin\n\t- UserChangepw\n\t- RecordAdd\n\t- RecordUpdate\n        - RecordGet\n\t- ZoneGet\n\t- ZoneAddNode\n\t- ZonePublish\n\t- ZoneChangeset",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "dynPassword",
      "Label": "Password",
      "HelpText": "Password of the user to access Dyn",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "Sensitive"
      }
    },
    {
      "Name": "dynZone",
      "Label": "Dyn Zone",
      "HelpText": "The name of the Zone, where you want the A record to be created\n\nFor example: myzone.com",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "dynFQDN",
      "Label": "Fully Qualified Domain Name",
      "HelpText": "The name of the A record that is being created in Fully Qualified Domain Name format\n\nFor example: newrecord.myzone.com",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "dynCorrectTTL",
      "Label": "Time to Live",
      "HelpText": "Limits the lifespan or lifetime of data in a computer network",
      "DefaultValue": "0",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "dynCorrectIPAddress",
      "Label": "IPv4 Address",
      "HelpText": "The IPv4 address of the new A record",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.Script.ScriptBody": "#--------------------------------------------------------------------\n#Log In Variables\n\n$dynLogInURI = \"https://api.dynect.net/REST/Session/\"\n\n$dynCustomerName = $OctopusParameters[\"dynCustomerName\"] \n\n$dynUserName = $OctopusParameters[\"dynUserName\"] \n\n$dynPassword = $OctopusParameters[\"dynPassword\"] \n\n#--------------------------------------------------------------------\n#Get A Record Variables\n\n$dynARecordURI = \"https://api.dynect.net/REST/ARecord\"\n\n$dynZone = $OctopusParameters[\"dynZone\"]\n\n$dynFQDN = $OctopusParameters[\"dynFQDN\"] \n\n#--------------------------------------------------------------------\n#A Record information to check\n\n$createNewARecord = $FALSE\n\n$UpdateARecord = $FALSE\n\n$dynCorrectTTL = $OctopusParameters[\"dynCorrectTTL\"]\n\n$dynCorrectIPAddress = $OctopusParameters[\"dynCorrectIPAddress\"] \n\n\n#--------------------------------------------------------------------\n#Publish Zone Variables\n\n$dynPublishURI = \"https://api.dynect.net/REST/Zone\"\n\n$publishZone = $FALSE\n\n\n\n\nWrite-Output \"`n-------------------------`n\"\n\n#--------------------------------------------------------------------\n#Log In and Retrieve Token for this session\n\nWrite-Output \"Logging into Dyn and retrieving session Authentication Token.\"\n\n$dynCredentials = @{}\n\n$dynCredentials.Add(\"customer_name\", $dynCustomerName)\n$dynCredentials.Add(\"user_name\", $dynUserName)\n$dynCredentials.Add(\"password\", $dynPassword)\n\n$dynCredentialsJSON = ConvertTo-Json -InputObject $dynCredentials\n\n$dynLoginResults = Invoke-RestMethod -Uri $dynLogInURI -Body $dynCredentialsJSON -ContentType 'application/json' -Method Post\n\nif($dynLoginResults.status -ne \"success\")\n{\n    Write-Error \"Invalid Log In Details. Please try again.\" -ErrorId E4\n}\nelse\n{\n    Write-Output \"`nLog in was successful.\"\n}\n\n\n\n$dynSessionToken = @{}\n\n$dynSessionToken.Add(\"Auth-Token\", $dynLoginResults.data.token)\n\n\nWrite-Output \"`n-------------------------`n\"\n\n#--------------------------------------------------------------------\n#Get A Record \n\nWrite-Output \"Retrieving specified A record information.`n\"\n\n#get and search all records to get the correct record ID (not a unique id) for existing A Records\n#this is done to check if a A Record does not exist already. This is the only way to do it without getting an error.\n$dynAllRecordsURI = \"https://api.dynect.net/REST/AllRecord/$dynZone\"\n\n \n$dynAllRecordResults = Invoke-RestMethod -Uri $dynAllRecordsURI -Headers $dynSessionToken -ContentType 'application/json' -Method Get \n\nfor($i = 0; $i -lt $dynAllRecordResults.data.Length; $i++)\n{\n    \n    $a = $dynAllRecordResults.data.Get($i)\n\n    $result = $a.contains($dynFQDN)\n\n    if($result -eq $TRUE)\n    {\n        $dynARecordString = $dynAllRecordResults.data.Get($i)\n\n        $dynARecordExists = $TRUE\n\n        $i = $dynAllRecordResults.data.Length\n    }\n    else\n    {\n        $dynARecordExists = $FALSE\n    }\n}\n\n\n\n#checks to see if there is more than one A record with the same name.\nif($dynARecordExists -eq $TRUE)\n{\n    $dynARecordURI = \"$dynARecordURI/$dynZone/$dynFQDN\" \n \n    $dynARecordResults = Invoke-RestMethod -Uri $dynARecordURI -Headers $dynSessionToken -ContentType 'application/json' -Method Get \n\n    if($dynARecordResults.data.Length -gt 1)\n    {\n        Write-Error \"`nThere is more than one A record with the Fully Qualified Domain Name (FQDN) of $dynFQDN. `nThis script does not handle more than one A record witht the same FQDN\" -ErrorId E1\n    }\n\n    if($dynARecordResults.status -ne \"success\")\n    {\n        Write-Error \"Error occurred while trying to retrieve the A Record. Please check the host name and the Fully Qualified Domain Name are correct.\" -ErrorId E1\n    }\n}\n\n\n\n#Checks if the an A record was returned or needs to be created\nif(($dynARecordResults.data.Length -eq 0) -or ($dynARecordExists -eq $FALSE))\n{\n    $createNewARecord = $TRUE\n\n    Write-Warning \"$dynFQDN does not exists. Creating $dynFQDN now.\"\n}\nelse\n{\n    #get information for the specified record\n    $dynARecordString = $dynARecordResults.data\n\n    $dynARecordURI = \"https://api.dynect.net$dynARecordString/\"\n\n    $dynARecord = Invoke-RestMethod -Uri $dynARecordURI -Headers $dynSessionToken -ContentType 'application/json' -Method Get \n\n    $dynARecord = $dynARecord.data\n\n    Write-Output \"`n$dynFQDN has successfully been retrieved.\"\n    \n    Write-Output \"`n-------------------------`n\"\n\n}\n\n#--------------------------------------------------------------------\n#create new A record\n\nif($createNewARecord -eq $TRUE)\n{\n    $dynCreateURI = \"https://api.dynect.net/REST/ARecord/$dynZone/$dynFQDN\"   \n\n    $rData = @{}\n\n    $rData.Add(\"address\", $dynCorrectIPAddress)\n\n    $dynCreateARecord = @{}\n\n    $dynCreateARecord.Add(\"ttl\", $dynCorrectTTL)\n    $dynCreateARecord.Add(\"rdata\", $rData)\n\n    $dynCreateARecordJSON = ConvertTo-Json -InputObject $dynCreateARecord\n\n    $dynCreateResult = Invoke-RestMethod -Uri $dynCreateURI -ContentType 'application/json' -Headers $dynSessionToken -Body $dynCreateARecordJSON  -Method Post\n\n    if($dynCreateResult.status -ne \"success\")\n    {\n        Write-Error \"An error occurred while creating the new A Record. Please check the details that have been entered are correct and try again.\" -ErrorId E4\n\n    }\n    else\n    {\n        Write-Output \"$dynFQDN has successfully been added to the $dynZone zone in Dyn.\"\n\n        $publishZone = $TRUE\n    }\n\n    Write-Output \"`n-------------------------`n\"\n\n\n}\n\n\n\n#--------------------------------------------------------------------\n#checking specified A Record to see if it is correct if it exists\nif($createNewARecord -eq $FALSE)\n{\n    Write-Output \"Checking to see if $dynFQDN is current and contains the correct information.\"\n\n    if($dynARecord.rdata.address -ne $dynCorrectIPAddress)\n    {\n        $UpdateARecord = $TRUE\n\n        Write-Warning \"`n$dynFQDN is out of date. Updating now\"\n\n    }\n\n    if($UpdateARecord -eq $FALSE)\n    {\n        Write-Output \"`n$dynFQDN is up-to-date\"\n    }\n\n    Write-Output \"`n-------------------------`n\"\n}\n#--------------------------------------------------------------------\n#Update A record\n\nif($UpdateARecord -eq $TRUE)\n{\n    Write-Output \"Updating $dynFQDN so that is matches the current information saved in the system.\"\n\n    $dynUpdateURI = $dynARecordURI\n\n    $rData = @{}\n\n    $rData.Add(\"address\", $dynCorrectIPAddress)\n\n    $dynUpdatedARecord = @{}\n\n    \n    $dynUpdatedARecord.Add(\"ttl\", $dynCorrectTTL)\n    $dynUpdatedARecord.Add(\"rdata\", $rData)\n\n    $dynUpdatedARecord = ConvertTo-Json -InputObject $dynUpdatedARecord\n\n    $dynUpdateResult = Invoke-RestMethod -Uri $dynUpdateURI -ContentType 'application/json' -Headers $dynSessionToken -Body $dynUpdatedARecord -Method Put\n    \n    if($dynUpdateResult.status -ne \"success\")\n    {\n        Write-Error \"An error occured while trying to update the $dynFQDN record\"\n    }\n    else\n    {\n        Write-Output \"`nUpdate was successful. Just needs to be published to make it offical.\"\n        \n        $publishZone = $TRUE\n\n    }\n\n\n    Write-Output \"`n-------------------------`n\"\n\n}\n\n#--------------------------------------------------------------------\n#publish update or creation of A Record\n\nif($publishZone -eq $TRUE)\n{\n\n    Write-Output \"Publishing changes made to $dynZone\"\n\n    $publish = @{}\n    $publish.Add(\"publish\", 'true')\n\n    $publish = ConvertTo-Json -InputObject $publish\n\n    $dynPublishURI = \"$dynPublishURI/$dynZone/\"\n\n    $dynPublishResults = Invoke-RestMethod -Uri $dynPublishURI -ContentType 'application/json' -Headers $dynSessionToken -Body $publish -Method Put\n\n    if($dynPublishResults.status -ne \"success\")\n    {\n        Write-Error \"An error occurred during the publication of the $dynZone zone.\" -ErrorId E4\n    }\n    else\n    {\n        Write-Output \"`n$dynZone has successfully been published.\"\n    }\n\n        Write-Output \"`n-------------------------`n\"\n\n}\n\n\n\n\n#--------------------------------------------------------------------\n#Log Out of session\n\nWrite-Output \"Logging out and deleting this session's authentication token\"\n\n$dynLogOutResults = Invoke-RestMethod -Uri $dynLogInURI -ContentType 'application/json' -Headers $dynSessionToken -Method Delete\n\nWhile(($dynLogOutResults.status -ne \"success\") -and ($tries -lt 10))\n{\n    Write-Output \"`nWaiting to log out of Dyn\"\n    $tries++\n    Start-Sleep -Seconds 1\n}\n\nif($dynLogOutResults.status -eq \"success\")\n{\n    $dynSessionToken.Clear()\n    Write-Output $dynSessionToken\n    Write-Output \"`nThis session has been ended successfully and the authentication token has been deleted.\"\n    \n}\nelse\n{\n    Write-Error \"`nAn error occurred while logging out.\" -ErrorId E4\n}\n\n"
  },
  "Category": "Dyn",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/dyn-create-an-A-record.json",
  "Website": "/step-templates/5e359c05-89a0-4a13-98a4-d54b0415bb45",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Friday, November 27, 2015