[linux] Terraform your DNS
DutchEllie (cock.li)
dutchellie op cock.li
Vr Sep 23 14:14:45 CEST 2022
Hoi,
De Terraform registry die je linkt bevat o.a. providers en modules.
Providers zijn geprogrammeerde interfaces om met bijvoorbeeld cloud
providers te praten, maar het is mogelijk om veel meer te doen dan enkel
met de API van cloud providers te praten. Ik heb het artikel gevonden
over "Terraform your DNS" en die lijkt simpelweg een VM aan te maken bij
Azure en daarop bind9 te installeren. Daarvoor wordt de Azure provider
gebruikt, die te vinden is op de Terraform registry.
Daarna (na het handmatig opzetten van bind9) wordt er gebruik gemaakt
van de Terraform DNS provider om de configuratie te configureren en te
pushen naar de server.
Beide providers worden geconfigureerd in hun "provider" block, die je 1
keer moet aanroepen om aan Terraform te vertellen dat je die provider
wilt gebruiken en om de provider in te stellen. Bij Azure zal je dus
bijvoorbeeld een soort API key (of hoe Azure ook dat doet, geen idee)
moeten gebruiken. Voor de DNS provider stel je de bind9 (of elke andere
RFC 2136 compliant DNS server) server en de authenticatieregels die je
daarvoor nodig hebt in.[1]
Omdat je nu de DNS provider hebt ingesteld met de DNS server en
wachtwoord om updates te pushen kan je met Terraform nu die updates
daadwerkelijk pushen.
Nou, dat zijn providers dus, maar hoe stel je dingen met Terraform nou in?
Om die "resources" in te stellen gebruik je "resource" en "data" blocks.
Een voorbeeld daarvan is bijvoorbeeld de "dns_a_record_set" van de DNS
provider. [2]
resource "dns_a_record_set" "www" {
zone = "example.com."
name = "www"
addresses = [
"192.168.0.1",
"192.168.0.2",
"192.168.0.3",
]
ttl = 300
}
Dit is een voorbeeld. Er wordt een resource van het type
"dns_a_record_set" gemaakt met de naam "www". Dat opent een block en
daarin stel je de benodigde velden in. In dit geval is dat de zone,
naam, adressen en ttl. De reference voor welke arguments mogelijk zijn
zijn te vinden op de documentatie pagina van de resource in de provider.
In dit geval referentie [2]. Aan de linkerkant van die pagina staan nog
een aantal andere resources. De data sources die daar ook staan kan je
voor nu negeren, die worden gebruikt voor output naar de terminal of
voor geprogrammeerde input voor andere resources als dat nodig is.
Als je meer vragen hebt over Terraform, gewoon terugmailen. Veel succes!
Dit is een interessant project!
Groeten,
DutchEllie
[1]
https://registry.terraform.io/providers/hashicorp/dns/latest/docs#configuration-reference
[2]
https://registry.terraform.io/providers/hashicorp/dns/latest/docs/resources/dns_a_record_set
On 9/17/22 22:37, Geert Stappers via Linux wrote:
> Hoi,
>
>
> Vandaag was ik op de bijeenkomst van de NLLGG
> bij de lezing[1] met de demo van terraform[2][3].
>
> En daar het idee van "Terraform mijn DNS" opgedaan.
>
> Ik heb reeds bind9, kan ook wel aan terraform komen,
> maar ik vindt nog niet de stukken / het stuk wat er tussen moet.
>
> Mijn websearch bracht me bij de terraform registry[4]
> maar daar loopt mijn spoor dood.
>
>
> Hoe heet het ontbrekende onderdeel?
>
>
> Groeten
> Geert Stappers
>
> [1]https://gitlab.dontpanic.nl/pub/terraform-talk
> [2]https://en.wikipedia.org/wiki/Terraform_(software)
> [3]https://www.terraform.io
> [4]https://registry.terraform.io/
------------- volgend deel ------------
Een HTML-bijlage is gescrubt...
URL: <https://lists.nllgg.nl/pipermail/linux/attachments/20220923/438b6049/attachment.htm>
Meer informatie over de Linux
maillijst