tripleo-ansible/tripleo_ansible/roles/tripleo-hieradata/tasks/main.yml

75 lines
2.1 KiB
YAML

---
# Copyright 2019 Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
- name: Create /etc/puppet/hieradata
file:
path: /etc/puppet/hieradata
state: directory
mode: 0700
- name: Write hiera config
when:
- (hieradata_files | length) > 0
copy:
mode: 0600
dest: /etc/puppet/hiera.yaml
# TODO(emilien) Switch to Hiera5 format once we stop calling Hiera CLI
# which is deprecated and should be replaced by "puppet lookup" command.
content: |
---
:backends:
- json
:json:
:datadir: /etc/puppet/hieradata
:hierarchy:
{{ hieradata_files }}
- name: hieradata block
run_once: true
block:
- name: Create temporary file
tempfile:
state: file
suffix: temp
register: tempfile_1
changed_when: false
notify:
- Cleanup temp file
- name: Template hieradata file
template:
src: "{{ hieradata_template }}"
dest: "{{ tempfile_1.path }}"
variable_start_string: "{{ hieradata_variable_start_string }}"
variable_end_string: "{{ hieradata_variable_end_string }}"
changed_when: false
when:
- (hieradata_template | string)
notify:
- Cleanup temp file
- name: Read temp file
slurp:
src: "{{ tempfile_1.path }}"
register: tempfile_1_slurp
changed_when: false
notify:
- Cleanup temp file
- include_tasks: "{{ (hieradata_per_host | bool) | ternary('per_host.yml', 'all_hosts.yml') }}"
vars:
hieradata_content: "{{ tempfile_1_slurp['content'] | b64decode | from_yaml }}"