How do I automate creating Linodes along with DNS records of the same name?

Linode Staff

I'm trying to automatically create DNS records based on a Linode's name. Is it possible to do this with the Linode DNS Manager, or should I create an application that creates the Linodes and their associated DNS records ?

For example - i have 3 Linodes

  • linode1
  • linode2
  • linode3

My domain is
I want to automate the creation of the following DNS records when the Linodes are created:


1 Reply

While you can't automate this in the DNS Manager, you can do it using the Linode API, or even the Linode CLI. Below you can find a sample bash script that does exactly what you're looking for, using the Linode APIv4:

#!/usr/bin/env bash

## Name the Linode/subdomain to be created

## Get the domain's ID from the Linode APIv4
DOMAIN_ID="$(curl -H "Authorization: Bearer $TOKEN" \
        "" | jq -S | \
        grep -A 11 "$DOMAIN_NAME" | grep '"id"' | \
        awk '{print $2}' | sed 's/,//')"

## Create the Linodes
for i in "${LINODE_NAMES[@]}"; do
    curl -H "Content-Type: application/json" \
        -H "Authorization: Bearer $TOKEN" \
        -X POST -d '{
        "backups_enabled": true,
        "swap_size": 512,
        "image": "linode/debian9",
        "root_pass": "[email protected]",
        "booted": true,
        "label": "'"${i}"'",
        "type": "g6-standard-2",
        "region": "us-east",
        "group": "Linode-Group"
        }' \

## Create the subdomain - this assumes your base domain already exists
## in the Linode DNS Manager
for i in "${LINODE_NAMES[@]}"; do
    curl -H "Content-Type: application/json" \
        -H "Authorization: Bearer $TOKEN" \
        -X POST -d '{
        "type": "A",
        "name": "'"${i}"'",
        "priority": 50,
        "weight": 50,
        "port": 80,
        "service": null,
        "protocol": null,
        "ttl_sec": 604800
        }' \

Note that some of the options for creating a Linode are optional. You can consult the Linode APIv4 Documentation for more information about what options are available, and which ones you do/don't need for your setup. If you have the Linode CLI installed, you can write a similar script that uses that instead. You can also check out our APIv4 Pyhton Bindings if you wish to use Python instead.


Please enter an answer

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct