<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>