diff --git a/tripleo_ansible/playbooks/cli-create-deployment-plan.yaml b/tripleo_ansible/playbooks/cli-create-deployment-plan.yaml index ee7e107d7..7e0ec559b 100644 --- a/tripleo_ansible/playbooks/cli-create-deployment-plan.yaml +++ b/tripleo_ansible/playbooks/cli-create-deployment-plan.yaml @@ -14,6 +14,11 @@ # License for the specific language governing permissions and limitations # under the License. +- import_playbook: cli-undercloud-local-artifacts.yaml + vars: + stack: "{{ container | default('overcloud') }}" + + - name: Create Deployment Plan connection: "{{ (tripleo_target_host is defined) | ternary('ssh', 'local') }}" hosts: "{{ tripleo_target_host | default('localhost') }}" @@ -97,6 +102,19 @@ state: present filename: "{{ plan_environment | tht_abspath }}" + - name: Check Plan file + stat: + path: "/var/lib/tripleo/stacks/{{ container }}/plan-environment.yaml" + register: plan_file + + - name: Write local plan copy + copy: + src: "{{ plan_environment | tht_abspath }}" + dest: "/var/lib/tripleo/stacks/{{ container }}/plan-environment.yaml" + remote_src: true + when: + - not (plan_file.stat.exists | bool) + - name: Generate passwords and update plan tripleo_passwords_rotate: container: "{{ container }}" diff --git a/tripleo_ansible/playbooks/cli-undercloud-local-artifacts.yaml b/tripleo_ansible/playbooks/cli-undercloud-local-artifacts.yaml new file mode 100644 index 000000000..0face2af2 --- /dev/null +++ b/tripleo_ansible/playbooks/cli-undercloud-local-artifacts.yaml @@ -0,0 +1,41 @@ +--- +# Copyright 2020 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: Ensure Local Artifact Cache + connection: "{{ (tripleo_target_host is defined) | ternary('ssh', 'local') }}" + hosts: "{{ tripleo_target_host | default('localhost') }}" + remote_user: "{{ tripleo_target_user | default(lookup('env', 'USER')) }}" + gather_facts: "{{ (tripleo_target_host is defined) | ternary(true, false) }}" + any_errors_fatal: true + vars: + stack: overcloud + artifact_dir: /var/lib/tripleo + pre_tasks: + - name: Set local connection user facts + set_fact: + ansible_user: "{{ lookup('env', 'SUDO_USER') | default(ansible_user, true) }}" + run_once: true + when: + - (tripleo_target_host is defined) | ternary('ssh', 'local') == 'local' + tasks: + - name: Create Artifact Directory + become: true + file: + path: "{{ artifact_dir }}/stacks/{{ stack }}" + state: directory + owner: "{{ ansible_user }}" + setype: var_lib_t + selevel: s0