Skip to main content

utility to migrate DNS managed zones

Project description

Name

zonefile-migrate - Migrate DNS managed zones

Synopsis

zonefile-migrate to-cloudformation [OPTIONS] [SRC]... DST
zonefile-migrate to-terraform [OPTIONS] [SRC]... DST

Options

to-cloudformation
  --sceptre-group DIRECTORY    to write sceptre stack group configuration
  --maximum-ttl   INTEGER      maximum TTL of domain name records
  
to-terraform
  --maximum-ttl   INTEGER      maximum TTL of domain name records
  --provider      PROVIDER     to generate for

Description

Converts one or more SRC zonefiles into AWS CloudFormation or Terraform templates in DST.

The zonefiles must contain a $ORIGIN and $TTL statement. If the SRC points to a directory all files which contain one of these statements will be converted. If a $ORIGIN is missing, the name of the file will be used as the domain name.

Optionally generates the Sceptre stack config for each of the templates in the --sceptre-group directory.

Each generated CloudFormation template contains a single Route53 HostedZone and all associated ResourceRecordSet. The SOA and NS records for the origin domain are not copied into the template.

Installation

to install the utility, type:

pip install zonefile-migrate

Example - to-cloudformation

In the source code we have an example, to try it out, type:

$ git clone   https://gitlab.com/binxio/zonefile-migrate.git
$ cd zonefile-migrate/example
$ zonefile-migrate to-cloudformation --sceptre-group config/dns ./zones ./templates/dns
INFO: reading zonefile zones/asample.org
INFO: reading zonefile zones/land-5.com

To deploy all the managed zones to AWS, type:

$ sceptre --var aws_profile=$AWS_PROFILE launch -y dns
[2022-05-14 14:58:23] - dns/zone-land-5-com - Launching Stack
[2022-05-14 14:58:23] - dns/zone-example-org - Launching Stack
[2022-05-14 14:58:23] - dns/zone-land-5-com - Stack is in the PENDING state
[2022-05-14 14:58:23] - dns/zone-land-5-com - Creating Stack
[2022-05-14 14:58:23] - dns/zone-asample-org - Stack is in the PENDING state
[2022-05-14 14:58:23] - dns/zone-asample-org - Creating Stack
[2022-05-14 14:58:24] - dns/zone-asample-org binxio-dns-zone-asample-org AWS::CloudFormation::Stack CREATE_IN_PROGRESS User Initiated
[2022-05-14 14:58:24] - dns/zone-land-5-com binxio-dns-zone-land-5-com AWS::CloudFormation::Stack CREATE_IN_PROGRESS User Initiated
...

Example - to-terraform

$ git clone   https://gitlab.com/binxio/zonefile-migrate.git
$ cd zonefile-migrate/example
$ zonefile-migrate to-terraform --provider google ./zones ./terraform
INFO: reading zonefile zones/asample.org
INFO: reading zonefile zones/land-5.com

To deploy all the managed zones to Google Cloud Platform, type:

$ cd terraform 
$ terraform init
$ export GOOGLE_PROJECT=$(gcloud config get-value core/project)
$ terraform apply -auto-approve
...
Terraform will perform the following actions:

# module.asample_org.google_dns_managed_zone.managed_zone will be created
+ resource "google_dns_managed_zone" "managed_zone" {
    + description   = "Managed by Terraform"
    + dns_name      = "asample.org."
    + force_destroy = false
    + id            = (known after apply)
    + name          = "asample-org"
    + name_servers  = (known after apply)
    + project       = (known after apply)
    + visibility    = "public"
      }
...
Plan: 49 to add, 0 to change, 0 to destroy.
module.land-5_com.google_dns_managed_zone.managed_zone: Creating...
module.asample_org.google_dns_managed_zone.managed_zone: Creating...
...

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

zonefile-migrate-0.4.4.tar.gz (13.6 kB view hashes)

Uploaded Source

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