Skip to main content

CLI to read Gandi.net live DNS records and generate corresponding TF files

Project description

Generate Terraform file from Gandi DNS records

Pypi version Python versions Build status

This tool aims to simplify managin DNS recods using Terrafom by making the initial import through a single operation. It fetches DNS records from one or multiple domains you own with Gandi.net and generates TF files with the corresponding records' resources.

Install

$ pip install gandi-2-terraform
$ gandi-2tf --help

Configuration

In order to access the DNS records through the API, you have to provide your API key. It uses the same variable name than the Gandi Terraform provider GANDI_KEY. See Gandi authentication documentation of their API on how to generate one.

Example

$ export GANDI_KEY=A1b2C3d4E5f6
$ gandi-2tf --domain example.com

will generate a file example.com.tf containing:

locals {
  example_com_records = {
    apex_a = {
      name = "@"
      type = "A"
      ttl  = 10800
      values = [
        "192.30.252.153",
        "192.30.252.154",
      ]
    }
    apex_mx = {
      name = "@"
      type = "MX"
      ttl  = 10800
      values = [
        "10 spool.mail.gandi.net.",
        "50 fb.mail.gandi.net.",
      ]
    }
    apex_txt = {
      name = "@"
      type = "TXT"
      ttl  = 10800
      values = [
        "\"v=spf1 include:_mailcust.gandi.net -all\"",
      ]
    }
    imap_cname = {
      name = "imap"
      type = "CNAME"
      ttl  = 10800
      values = [
        "access.mail.gandi.net.",
      ]
    }
    smtp_cname = {
      name = "smtp"
      type = "CNAME"
      ttl  = 10800
      values = [
        "relay.mail.gandi.net.",
      ]
    }
    webmail_cname = {
      name = "webmail"
      type = "CNAME"
      ttl  = 10800
      values = [
        "webmail.gandi.net.",
      ]
    }
  }
}

resource "gandi_livedns_record" "example_com" {
  for_each = local.example_com_records

  zone = "example.com"

  name   = each.value.name
  ttl    = each.value.ttl
  type   = each.value.type
  values = each.value.values
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gandi-2-terraform-0.2.dev0.tar.gz (4.4 kB view hashes)

Uploaded Source

Built Distribution

gandi_2_terraform-0.2.dev0-py3-none-any.whl (4.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page