From 0930ba6e5727a525d356ff8658930cebe783e5e7 Mon Sep 17 00:00:00 2001 From: Juan Badia Payno Date: Thu, 5 Mar 2020 11:15:25 +0100 Subject: [PATCH] BaR - Export ceph authentication This patch export the ceph authentication just in case the mons need to be rebuild from scratch Also fixed the molecule-backup_and_restore test Change-Id: I1f54674d6491d3b4c1565928894db1be8b498873 (cherry picked from commit 4f12aeb3c1337e98200121d374c17e36f9096079) --- doc/source/roles/role-backup_and_restore.rst | 13 +++++- .../backup_and_restore/defaults/main.yml | 3 ++ .../molecule/default/prepare.yml | 4 +- .../tasks/ceph_authentication.yml | 41 +++++++++++++++++++ 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml diff --git a/doc/source/roles/role-backup_and_restore.rst b/doc/source/roles/role-backup_and_restore.rst index 8425cf1a8..b4dc61273 100644 --- a/doc/source/roles/role-backup_and_restore.rst +++ b/doc/source/roles/role-backup_and_restore.rst @@ -77,6 +77,17 @@ Now we create the playbook to create the actual backup. cat <<'EOF' > ~/bar_rear_create_restore_images.yaml # Playbook # We run ReaR in the control plane nodes. + - become: true + hosts: ceph_mon + name: Backup ceph authentication + tasks: + - name: Backup ceph authentication role + include_role: + name: backup_and_restore + tasks_from: ceph_authentication + tags: + - bar_create_recover_image + - become: true hosts: Controller name: Create the recovery images for the control plane @@ -113,7 +124,7 @@ Then, we install ReaR in the desired nodes. --tags bar_setup_rear \ ~/bar_rear_setup.yaml -Lastly, we execute the actual backup step. +Lastly, we execute the actual backup step. With or without ceph. :: diff --git a/tripleo_ansible/roles/backup_and_restore/defaults/main.yml b/tripleo_ansible/roles/backup_and_restore/defaults/main.yml index e5f12e047..da05a54a9 100644 --- a/tripleo_ansible/roles/backup_and_restore/defaults/main.yml +++ b/tripleo_ansible/roles/backup_and_restore/defaults/main.yml @@ -60,3 +60,6 @@ tripleo_backup_and_restore_rescue_config: {} tripleo_backup_and_restore_output_url: "nfs://{{ tripleo_backup_and_restore_nfs_server }}/ctl_plane_backups" tripleo_backup_and_restore_backup_url: "nfs://{{ tripleo_backup_and_restore_nfs_server }}/ctl_plane_backups" + +# Ceph authentication backup file +tripleo_backup_and_restore_ceph_auth_file: "ceph_auth_export.bak" diff --git a/tripleo_ansible/roles/backup_and_restore/molecule/default/prepare.yml b/tripleo_ansible/roles/backup_and_restore/molecule/default/prepare.yml index 850524b4f..229821973 100644 --- a/tripleo_ansible/roles/backup_and_restore/molecule/default/prepare.yml +++ b/tripleo_ansible/roles/backup_and_restore/molecule/default/prepare.yml @@ -38,12 +38,14 @@ roles: - role: test_deps + test_deps_setup_tripleo: true + test_deps_tripleo_packages: + - hiera test_deps_extra_packages: - rear - syslinux - genisoimage - kbd - - puppet - hiera post_tasks: diff --git a/tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml b/tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml new file mode 100644 index 000000000..e27540505 --- /dev/null +++ b/tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml @@ -0,0 +1,41 @@ +--- +# 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. + + +# "backup_and_restore" 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_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml" + - "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml" + - "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml" + - "{{ ansible_distribution | lower }}.yml" + - "{{ ansible_os_family | lower }}-{{ ansible_distribution_version.split('.')[0] }}.yml" + - "{{ ansible_os_family | lower }}.yml" + tags: + - always + +- name: Export ceph authentication + shell: | + set -o pipefail + {{ tripleo_container_cli }} exec ceph-mon-{{ ansible_hostname }} bash -c "ceph auth export" > {{ tripleo_backup_and_restore_ceph_auth_file }} + become: true + tags: + - bar_create_recover_image