Modulo de Router53 de Terraform para AWS (código completo)
En esta ocasión os dejo el código completo que realicé de un módulo para AWS realizado en terraform y centrado en Route53.
Que es Route53 en AWS
Está diseñado para ofrecer a los desarrolladores y las empresas un método fiable y rentable de enrutar a los usuarios finales a las aplicaciones en internet mediante la conversión de nombres legibles, como example.com, en direcciones IP numéricas, como 192.0.2.1, las cuales utilizan los equipos para conectarse entre ellos.
Que contiene el bloque de este módulo.
El módulo esta compuesto por una serie de archivos y una carpeta que deberéis de copiar dónde corresponda en vuestro entorno de deploy,
en cuanto a la carpeta tendrá que estar contenida dentro de la ubicación de los ficheros.
Los ficheros que contienen el módulo son:
Readme.txt – indica como utilizar el modulo que es realmente muy sencillo.
initialization.tfvars – indica la region donde se trabaja y reinicia el profile de aws
module_Route53.tf – contiene la definicion de variables
terraformn.rc.txt – habilita o deshabilita chekpoint
terraform.tfvars – indica la clave con los códicos secretos a cambiar de los mismos para conectar a aws
En la carpeta con el nombre ModRoute53 conendrá el fichero main.tf
main.tf – contiene la definición de variables a utilizar con información correspondiente a las refencias de DNS.
A continuación os añado el contenido de cada uno de los distintos ficheros:
initialization.tfvars
aws_profile=”default”
region=”us-east-2″
module_Route53
# Pending to change names variable definition, actually is not more clear – Created by Xavisan
#
module “Modroute53” {
source = “./ModRoute53”
DestinationURL = “pepe.pepe.es”
CNAMEtoapply = “sitexternal”
DomainR53 = “test.com”
DomainRSet53 =”CNAME”
}
terraform.rc.txt
plugin_cache_dir = “$HOME/.terraform.d/plugin-cache”
disable_checkpoint = true
terraform.tfvars
# Amazon AWS values
aws_access_key = “Access_Key”
aws_secret_key = “Secret_Key”
aws_region = “us-east-2”
Contenido del fichero main.tf que tiene que ir dentro de la carpeta ModRoute53
ModRoute53 folder
# Module for Route 53
# Create a Domain entrys
# Module by xavisan
# DestinationURL - Amazon AWS Origin FQDN internal site or other external site
# CNAMEtoapply - Amazon AWS CNAME to apply in the Route53
# DomainR53 - Amazon AWS Default Domain created in the Route53, default value=test.com
# Value DomainRSet53 [references]:
# ---------------------------------
# A - Ip v4 address
# CNAME - Cannonical Name
# MX - Mail Exchange
# AAAA - Ip v6 address
# TXT - Text
# PTR - Pointer
# SRV - Service Locator
# SPF - Server Policy Framework
# NAPTR - Name Authority Pointer
# CAA - Certification Authority Autorization
# NS - Name Server
# SOA - Start of Authority
# ------------------------------------------------------------------
resource "aws_route53_record" "URL_Modification" {
zone_id = "${var.DomainR53}"
name = "${var.CNAMEtoapply}"
type = "${var.DomainRSet53}"
ttl = "300"
records = ["${var.DestinationURL}"]
}
Y con esto terminaríamos, es sencillo de utilizar, pero evidentemente hay que tener un mínimo de conocimientos de como funciona terraform
Espero que os pueda ser de utilidad.