<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<font face="Helvetica, Arial, sans-serif">Hoi,<br>
<br>
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.<br>
<br>
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.<br>
<br>
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]<br>
<br>
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. <br>
<br>
Nou, dat zijn providers dus, maar hoe stel je dingen met Terraform
nou in?<br>
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]<br>
<br>
resource "dns_a_record_set" "www" {<br>
zone = "example.com."<br>
name = "www"<br>
addresses = [<br>
"192.168.0.1",<br>
"192.168.0.2",<br>
"192.168.0.3",<br>
]<br>
ttl = 300<br>
}<br>
<br>
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. <br>
<br>
Als je meer vragen hebt over Terraform, gewoon terugmailen. Veel
succes! Dit is een interessant project!<br>
<br>
Groeten,<br>
DutchEllie<br>
<br>
[1]
<a class="moz-txt-link-freetext" href="https://registry.terraform.io/providers/hashicorp/dns/latest/docs#configuration-reference">https://registry.terraform.io/providers/hashicorp/dns/latest/docs#configuration-reference</a><br>
[2]
<a class="moz-txt-link-freetext" href="https://registry.terraform.io/providers/hashicorp/dns/latest/docs/resources/dns_a_record_set">https://registry.terraform.io/providers/hashicorp/dns/latest/docs/resources/dns_a_record_set</a><br>
</font><br>
<div class="moz-cite-prefix">On 9/17/22 22:37, Geert Stappers via
Linux wrote:<br>
</div>
<blockquote type="cite"
cite="mid:20220917203701.gg7uaubtrhrgm5qo@gpm.stappers.nl">
<pre class="moz-quote-pre" wrap="">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] <a class="moz-txt-link-freetext" href="https://gitlab.dontpanic.nl/pub/terraform-talk">https://gitlab.dontpanic.nl/pub/terraform-talk</a>
[2] <a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/Terraform_(software)">https://en.wikipedia.org/wiki/Terraform_(software)</a>
[3] <a class="moz-txt-link-freetext" href="https://www.terraform.io">https://www.terraform.io</a>
[4] <a class="moz-txt-link-freetext" href="https://registry.terraform.io/">https://registry.terraform.io/</a>
</pre>
</blockquote>
<br>
</body>
</html>