55 lines
1.7 KiB
YAML
55 lines
1.7 KiB
YAML
---
|
|
# file: dns-entry.yml
|
|
|
|
- name: Check if terraform directory exists
|
|
ansible.builtin.stat:
|
|
path: homelab/terraform/dns
|
|
register: terraform_dir
|
|
|
|
- name: Create Terraform directory for DNS entries
|
|
ansible.builtin.file:
|
|
path: homelab/terraform/dns
|
|
state: directory
|
|
mode: '0755'
|
|
when: not terraform_dir.stat.exists
|
|
|
|
- name: "Create/Update Terraform DNS provider"
|
|
ansible.builtin.template:
|
|
src: templates/dns_provider.tf.j2
|
|
dest: homelab/terraform/dns/provider.tf
|
|
mode: '0644'
|
|
|
|
- name: Loop through all hosts
|
|
vars:
|
|
my_hosts: "{{ query('inventory_hostnames', 'all') }}"
|
|
# ansible.builtin.debug:
|
|
# msg: "Host {{ item }} has IP address: {{ hostvars[my_hosts[my_idx]].ip_address | default('No IP address defined') }}"
|
|
ansible.builtin.template:
|
|
src: templates/dns.tf.j2
|
|
dest: homelab/terraform/dns/{{ item }}.tf
|
|
mode: '0644'
|
|
when: hostvars[my_hosts[my_idx]].ip_address is defined
|
|
loop: "{{ my_hosts }}"
|
|
loop_control:
|
|
index_var: my_idx
|
|
|
|
# - name: Loop through all hosts
|
|
# block:
|
|
# - name: Create Terraform files for all eligible hosts
|
|
# when: "{{hostvars["{{ item }}"].ip_address}}" is defined
|
|
# ansible.builtin.template:
|
|
# src: templates/dns.tf.j2
|
|
# dest: homelab/terraform/dns/{{ item }}.tf
|
|
# mode: '0644'
|
|
# loop: "{{ query('inventory_hostnames', 'all') }}"
|
|
|
|
# - name: Update DNS entries via Terraform
|
|
# community.general.terraform:
|
|
# project_path: homelab/terraform/dns/
|
|
# variables:
|
|
# freeipa_server: "{{ dns_server }}"
|
|
# freeipa_admin: "{{ dns_admin }}"
|
|
# freeipa_password: "{{ vault_freeipa_password }}"
|
|
# state: present
|
|
# force_init: true
|