TripleO Ansible project repository. Contains playbooks for use with TripleO OpenStack deployments.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
tripleo-ansible/tripleo_ansible/roles/backup_and_restore/tasks/ceph_backup.yml

91 lines
3.1 KiB

---
# 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
# The shell command is used because the archive ansible module can not use
# extra flags needed.
- name: Tar and Compress the /var/lib/ceph directory
shell: |-
tar -zcv --xattrs-include=*.* \
--xattrs \
--xattrs-include=security.capability \
--xattrs-include=security.selinux \
--acls \
-f {{ tripleo_backup_and_restore_ceph_backup_file }} \
{{ tripleo_backup_and_restore_ceph_path }}
become: true
tags:
- bar_create_recover_image
- name: Create temporary file
tempfile:
state: directory
suffix: bar
register: tripleo_backup_and_restore_temporary_dir
tags:
- bar_create_recover_image
- name: Mount nfs shared directory
mount:
path: "{{ tripleo_backup_and_restore_temporary_dir.path }}"
src: "{{ tripleo_backup_and_restore_nfs_server }}:{{ tripleo_backup_and_restore_nfs_storage_folder }}"
fstype: nfs
opts: rw,noatime
state: mounted
tags:
- bar_create_recover_image
- name: Copy the backup to the shared directory
copy:
src: "{{ tripleo_backup_and_restore_ceph_backup_file }}"
dest: "{{ tripleo_backup_and_restore_temporary_dir.path }}/{{ ansible_hostname }}"
remote_src: true
tags:
- bar_create_recover_image
- name: Umount nfs shared directory
mount:
path: "{{ tripleo_backup_and_restore_temporary_dir.path }}"
state: unmounted
tags:
- bar_create_recover_image
- name: Delete the mount point from /etc/fstab
mount:
path: "{{ tripleo_backup_and_restore_temporary_dir.path }}"
src: "{{ tripleo_backup_and_restore_nfs_server }}:{{ tripleo_backup_and_restore_nfs_storage_folder }}"
fstype: nfs
opts: rw,noatime
state: absent
tags:
- bar_create_recover_image