Aller au contenu principal

Enregistrer les IP dans PowerDNS avec Terraform

· 2 minutes de lecture
Stéphane ROBERT
Consultant DevOps

Maintenant que toutes les opérations s'enchaînent lors de la création d'une machine libvirt, je peux enfin tester le provider terraform powerdns. Pour rappel [powerDNS] fait partie des applications que je déploie dans mon home lab devops.

Création du Token d'API dans PowerDNS

Il suffit de se rendre dans la console de powerDNS admin et de cliquer sur le menu API Keys. Cliquer sur [ADD Key], prenez le role administrator et appuyer sur [Create Key]. Copiez le token et mettez le au chaud!

Ajout du provider powerdns

Je vais compléter le code terraform de la machine de test. Dans la section required_providers du fichier main.tf ajoutez ces lignes :

terraform {
  required_providers {
    libvirt = {
      source = "dmacvicar/libvirt"
    }
    powerdns = {
      source = "pan-net/powerdns"
    }
  }
}

Ajoutez ensuite une section provider comme ceci :

provider "powerdns" {
  api_key    = "${var.pdns_api_key}"
  server_url = "https://pdns.robert.local"
}

Modifiez l'url avec la vôtre. Ensuite dans le fichier variables.tf nous allons ajouter le token.

variable "pdns_api_key" {
  description : "API KEY for Powerdns"
  default = "XxxXXyYWWWWWW"
}

Mettez votre Token.

Ajout de la ressource powerdns_record

Et pour finir à la fin du fichier main.tf ajouter la ressource powerDNS pour ajouter un enregistrement à notre serveur DNS. On utilise la variable adresses de la ressource libvirt.

resource "powerdns_record" "test" {
  zone    = "robert.local."
  name    = "test.robert.local."
  type    = "A"
  ttl     = 300
  records = [libvirt_domain.domain-ubuntu.network_interface.0.addresses.0]
}

Un petit tour dans l'interface de powerDNS. Nous avons bien notre enregistrement.

Plus loin

Maintenant je vais pouvoir arrêter d'utiliser le serveur DNS de ma box internet et de fixer les adresses IP.

Il me reste à créer le code terraform pour créer le domaine robert.local. et d'ajouter le serveur DNS à toutes les machines que je crée dans mon home lab Devops.

Le code complet de la création de la machine de test. [La documentation du provider powerdns]