]> xn--ix-yja.es Git - alex.git/commitdiff
Simplify variable use, add fact support
authoralex <alex@pdp7.net>
Sun, 15 Jan 2023 17:27:35 +0000 (18:27 +0100)
committeralex <alex@pdp7.net>
Sun, 15 Jan 2023 17:27:35 +0000 (18:27 +0100)
personal_infra/playbooks/apply_puppet.yml
personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
personal_infra/puppet/modules/proxmox/manifests/init.pp
personal_infra/puppet/site/00-common.pp

index 0a9068b56fafeae79fbf28a5b77dbd7b57a760b4..781678f359b8c45f8ec399d5ef017e6c48bfc13d 100644 (file)
         content: |
           version: 5
           hierarchy:
-            - name: ansible
-              path: vars.json
+            - name: hostvars
+              path: hostvars.json
               data_hash: json_data
+            - name: this
+              path: this.json
+              data_hash: json_data
+      delegate_to: 127.0.0.1
+    - name: dump hostvars
+      copy:
+        dest: "{{ local_temp.path }}/data/hostvars.json"
+        content: "{'hostvars': {{ hostvars }} }"
+      delegate_to: 127.0.0.1
+    - name: dump this
+      copy:
+        dest: "{{ local_temp.path }}/data/this.json"
+        content: "{{ hostvars[inventory_hostname] }}"
+      delegate_to: 127.0.0.1
+    - name: get facts
+      command: facter -y
+      register: facter_output
+    - name: create facts directory in local temp
+      file:
+        path: "{{ local_temp.path }}/yaml/facts"
+        state: directory
       delegate_to: 127.0.0.1
-    - name: dump all vars
+    - name: dump facts
       copy:
-        dest: "{{ local_temp.path }}/data/vars.json"
-        content: "{{ hostvars }}"
+        dest: "{{ local_temp.path }}/yaml/facts/{{ inventory_hostname }}.yaml"
+        content: "--- !ruby/object:Puppet::Node::Facts\nvalues:\n  {{ facter_output.stdout | indent(width=2) }}"
       delegate_to: 127.0.0.1
     - name: compile catalogs
-      command: puppet catalog compile --modulepath={{ inventory_dir }}/puppet/modules --hiera_config={{ local_temp.path }}/hiera.yaml --manifest={{ inventory_dir }}/puppet/site --terminus compiler {{ inventory_hostname }}
-      environment:
-        FACTER_ansible_inventory_hostname: "{{ inventory_hostname }}"
+      command: puppet catalog compile --modulepath={{ inventory_dir }}/puppet/modules --hiera_config={{ local_temp.path }}/hiera.yaml --manifest={{ inventory_dir }}/puppet/site --terminus compiler --vardir {{ local_temp.path }}/ --facts_terminus yaml {{ inventory_hostname }}
       delegate_to: 127.0.0.1
       register: catalog
     - name: install puppet
index c7a35520027ec69756f3fbf099dbc56a68ede5ed..358633afa031299a7af3da0dec8d9e0408a23f52 100644 (file)
@@ -1,11 +1,11 @@
 class dns_dhcp {
-  $domain = lookup("'$ansible_inventory_hostname'.network.dns_dhcp.domain")
+  $domain = lookup("network.dns_dhcp.domain")
 
   package {'dnsmasq':}
   ->
   file {'/etc/dnsmasq.d/internal':
     content => epp('dns_dhcp/internal', {
-      'dns_dhcp' => lookup("'$ansible_inventory_hostname'.network.dns_dhcp"),
+      'dns_dhcp' => lookup("network.dns_dhcp"),
     }),
   }
   ~>
index 21360368d7e66513f3b3d352ba856c4a525dcdb3..0fa82d18c79e8d562455151994635643e7e100f2 100644 (file)
@@ -1,7 +1,7 @@
 class proxmox {
   file {'/etc/network/interfaces':
     content => epp('proxmox/interfaces', {
-      "network" => lookup("'$ansible_inventory_hostname'.network"),
+      "network" => lookup("network"),
     }),
   }
   ~>
index c5023081e137069dc217415383169cc5264ad68c..b542eb9e1569e7252845d907cf4f5e5e3f35ee8d 100644 (file)
@@ -1,28 +1,28 @@
 include automatic_updates
 
-$tinc_hosts = lookup("'$ansible_inventory_hostname'.groups.tinc")
-$tinc_other_hosts = $tinc_hosts.filter |$host_name| { $host_name != $ansible_inventory_hostname }
+$tinc_hosts = lookup("groups.tinc")
+$tinc_other_hosts = $tinc_hosts.filter |$host_name| { $host_name != $facts["networking"]["fqdn"] }
 
 $tinc_locations = Hash($tinc_hosts.map |$host_name| { [
-  lookup("'$host_name'.network.tinc.location"),
+  lookup("hostvars.'$host_name'.network.tinc.location"),
   {
-    subnet => lookup("'$host_name'.network.self_internal_network"),
-    address => lookup("'$host_name'.network.public_hostname"),
+    subnet => lookup("hostvars.'$host_name'.network.self_internal_network"),
+    address => lookup("hostvars.'$host_name'.network.public_hostname"),
   }
 ] })
 
-$tinc_connect_to = $tinc_other_hosts.map |$host_name| { lookup("'$host_name'.network.tinc.location") }
+$tinc_connect_to = $tinc_other_hosts.map |$host_name| { lookup("hostvars.'$host_name'.network.tinc.location") }
 
-$tinc_other_networks = $tinc_other_hosts.map |$host_name| { lookup("'$host_name'.network.self_internal_network") }
+$tinc_other_networks = $tinc_other_hosts.map |$host_name| { lookup("hostvars.'$host_name'.network.self_internal_network") }
 
-if 'tinc' in lookup("'$ansible_inventory_hostname'.group_names") {
+if 'tinc' in lookup("group_names") {
   class {'tinc':
-    tinc_name           => lookup("'$ansible_inventory_hostname'.tinc_global.name"),
-    tinc_location       => lookup("'$ansible_inventory_hostname'.network.tinc.location"),
+    tinc_name           => lookup("tinc_global.name"),
+    tinc_location       => lookup("network.tinc.location"),
     tinc_connect_to     => $tinc_connect_to,
     tinc_locations      => $tinc_locations,
-    tinc_ip             => lookup("'$ansible_inventory_hostname'.network.self_internal_ip"),
-    tinc_netmask        => lookup("'$ansible_inventory_hostname'.network.self_internal_netmask"),
+    tinc_ip             => lookup("network.self_internal_ip"),
+    tinc_netmask        => lookup("network.self_internal_netmask"),
     tinc_other_networks => $tinc_other_networks,
   }
 }