aboutsummaryrefslogtreecommitdiff
path: root/personal_infra/playbooks/apply_puppet.yml
diff options
context:
space:
mode:
Diffstat (limited to 'personal_infra/playbooks/apply_puppet.yml')
-rw-r--r--personal_infra/playbooks/apply_puppet.yml98
1 files changed, 0 insertions, 98 deletions
diff --git a/personal_infra/playbooks/apply_puppet.yml b/personal_infra/playbooks/apply_puppet.yml
deleted file mode 100644
index 0aa5d484..00000000
--- a/personal_infra/playbooks/apply_puppet.yml
+++ /dev/null
@@ -1,98 +0,0 @@
----
-- name: apply puppet config
- hosts: all
- collections:
- - ansible.builtin
- - community.general
-
- tasks:
- - name: create local temporary directory
- tempfile:
- state: directory
- path: "{{ inventory_dir }}/tmp"
- register: local_temp
- delegate_to: 127.0.0.1
- - name: create data directory in local temp
- file:
- path: "{{ local_temp.path }}/data"
- state: directory
- delegate_to: 127.0.0.1
- - name: create hiera.yaml
- copy:
- dest: "{{ local_temp.path }}/hiera.yaml"
- content: |
- version: 5
- hierarchy:
- - 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: install epel
- package:
- name: epel-release
- when: ansible_distribution_file_variety == 'RedHat'
- - name: install puppet
- package:
- name: puppet
- - 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 facts
- copy:
- 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 --vardir {{ local_temp.path }}/ --facts_terminus yaml {{ inventory_hostname }}
- delegate_to: 127.0.0.1
- register: catalog
- - name: create remote temporary directory
- tempfile:
- state: directory
- register: remote_temp
- - name: write catalog
- copy:
- dest: "{{ remote_temp.path }}/catalog.json"
- content: "{{ catalog.stdout | regex_replace('\\A.*?\\n', multiline=True) }}"
- - name: preview catalog
- command: puppet apply --catalog {{ remote_temp.path }}/catalog.json --noop --test
- register: catalog_apply
- - name: display catalog preview
- debug:
- msg: "{{ catalog_apply.stdout_lines }}"
- - name: pause to confirm
- pause:
- tags: pause
- - name: apply catalog
- command: puppet apply --catalog {{ remote_temp.path }}/catalog.json
- register: catalog_apply
- - name: display catalog application
- debug:
- msg: "{{ catalog_apply.stdout_lines }}"
- - name: clean up remote temporary directory
- file:
- state: absent
- path: "{{ remote_temp.path }}"
- - name: clean up local temporary directory
- file:
- state: absent
- path: "{{ local_temp.path}}"
- delegate_to: 127.0.0.1