
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]
À lire ensuite
- Utilisation des meta-arguments Terraform
Découvrez comment optimiser votre code Terraform avec les meta-arguments pour éviter la duplication et gérer les dépendances efficacement.
- Ajouter de noeuds d'exécution externes à Ansible AWX
Découvrez comment ajouter des nœuds d'exécution externes à Ansible AWX pour optimiser vos déploiements et gérer vos playbooks efficacement.
- Monitoring des machines Linux avec Prometheus
Surveillez vos serveurs Linux avec Prometheus et Grafana grâce à node-exporter, Helm et Traefik pour un monitoring efficace et centralisé.
- Gérer les projets rundeck avec Terraform
Automatisez la création de projets Rundeck avec Terraform : token, jobs, SSH key, apply. Un guide concret pour vos workflows DevOps.