103 lines
3.1 KiB
YAML
103 lines
3.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.
|
|
|
|
|
|
# "tripleo_puppet_cache" will search for and load any operating system variable file
|
|
|
|
# found within the "vars/" path. If no OS files are found the task will skip.
|
|
- name: Gather variables for each operating system
|
|
include_vars: "{{ item }}"
|
|
with_first_found:
|
|
- skip: true
|
|
files:
|
|
- "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower }}.yml"
|
|
- "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
|
|
- "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
|
|
- "{{ ansible_facts['distribution'] | lower }}.yml"
|
|
- "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_version'].split('.')[0] }}.yml"
|
|
- "{{ ansible_facts['os_family'] | lower }}.yml"
|
|
tags:
|
|
- always
|
|
|
|
- name: Create puppet caching structures
|
|
become: true
|
|
check_mode: false
|
|
file:
|
|
path: "{{ tripleo_puppet_cache_base_dir }}"
|
|
state: directory
|
|
setype: svirt_sandbox_file_t
|
|
selevel: s0
|
|
recurse: true
|
|
|
|
- name: Check for facter.conf
|
|
check_mode: false
|
|
stat:
|
|
path: "{{ tripleo_puppet_cache_base_dir }}/facter.conf"
|
|
register: _facter_conf_file
|
|
|
|
# See LP#1852606 for context
|
|
- name: Remove facter.conf if directory
|
|
check_mode: false
|
|
become: true
|
|
file:
|
|
path: "{{ tripleo_puppet_cache_base_dir }}/facter.conf"
|
|
state: absent
|
|
force: true
|
|
when:
|
|
- _facter_conf_file.stat.isdir is defined
|
|
- _facter_conf_file.stat.isdir
|
|
|
|
- name: Write facter cache config
|
|
become: true
|
|
check_mode: false
|
|
copy:
|
|
dest: "{{ tripleo_puppet_cache_base_dir }}/facter.conf"
|
|
content: "{{ tripleo_puppet_cache_config }}"
|
|
setype: svirt_sandbox_file_t
|
|
selevel: s0
|
|
|
|
- name: Cleanup facter cache if exists
|
|
become: true
|
|
check_mode: false
|
|
file:
|
|
path: /opt/puppetlabs/facter
|
|
state: absent
|
|
|
|
- name: Pre-cache facts
|
|
become: true
|
|
check_mode: false
|
|
shell: facter --config "{{ tripleo_puppet_cache_base_dir }}/facter.conf"
|
|
retries: 5
|
|
delay: 5
|
|
no_log: "{{ tripleo_puppet_hide_sensitive_logs | bool }}"
|
|
failed_when: false
|
|
register: _facter_cache_run
|
|
|
|
- name: Failed deployment if facter fails
|
|
check_mode: false
|
|
fail:
|
|
msg: "{{ _facter_cache_run.stderr }}"
|
|
when: _facter_cache_run.rc != 0
|
|
|
|
- name: Sync cached facts
|
|
become: true
|
|
check_mode: false
|
|
synchronize:
|
|
src: "/opt/puppetlabs/"
|
|
dest: "{{ tripleo_puppet_cache_base_dir }}/"
|
|
delegate_to: "{{ inventory_hostname }}"
|
|
when: _facter_cache_run.rc == 0
|