From b3265b80053b7faee215497cbc2e52ed01d5963a Mon Sep 17 00:00:00 2001 From: Juan Pablo Lopez Date: Thu, 4 Feb 2021 13:48:19 +0000 Subject: [PATCH] Update tripleo_undercloud_backup role - 'tripleo_undercloud_backup_init' string variable was added for the flag '--init' for installing and configure 'rear' and 'nfs'. Depending on the value. Though it is advised that this flag will be deprecated. - 'tripleo_undercloud_backup_setup_nfs' boolean variable was added for the flag '--setup-nfs' which will install and configure NFS server. Default to: false. - 'tripleo_undercloud_backup_setup_rear' boolean variable was added for the flag '--setup-rear' which will install and configure ReaR on the undercloud. Default to: false. - 'tripleo_undercloud_backup_extra_vars' string variable was added for '--extra-vars' variable for passing variables as JSON string or JSON / YAML path. Depends on: https://review.opendev.org/c/openstack/python-tripleoclient/+/771589 Change-Id: I5c22ab09f98ceff0b6c3e036a37fb76a2a744e79 --- roles/tripleo_undercloud_backup/README.md | 4 ++ .../defaults/main.yml | 4 ++ .../molecule/default/converge.yml | 71 +++++++++++++++++++ .../tripleo_undercloud_backup/tasks/main.yml | 4 ++ 4 files changed, 83 insertions(+) diff --git a/roles/tripleo_undercloud_backup/README.md b/roles/tripleo_undercloud_backup/README.md index f0c80a7..fca0b1d 100644 --- a/roles/tripleo_undercloud_backup/README.md +++ b/roles/tripleo_undercloud_backup/README.md @@ -17,6 +17,10 @@ Role Variables * `tripleo_undercloud_backup_generate_scripts_only`: (Boolean) Do not run the actual command - to be used in conjunction with `tripleo_undercloud_backup_generate_scripts`. By default uses the value of `tripleo_generate_scripts_only` or False if `tripleo_generate_scripts_only` is not defined. * `tripleo_undercloud_backup_exclude_path`: (List) List of filesystems path to skip backing up. Default: [] * `tripleo_undercloud_backup_home_dir`: (String) Home directory for the undercloud user. Default: "{{ ansible_env.HOME }}" +* `tripleo_undercloud_backup_init`: (String) Flag to initialize environment for backup, using `rear` or `nfs` as args which will check for packages, install and configure ReaR or NFS server. WARNING: This flag will be deprecated and replaced by `--setup-rear` and `--setup-nfs`. +* `tripleo_undercloud_backup_setup_nfs`: (Boolean) Flag to setup the NFS server on the backup node which will install required packages and configuration. +* `tripleo_undercloud_backup_setup_rear`: (Boolean) Flag to setup ReaR on undercloud which will install and configure ReaR. +* `tripleo_undercloud_backup_extra_vars`: (String) Flag to set additional variables as JSON or as an absolute path of a JSON or YAML file type. * `tripleo_undercloud_backup_log_combine`: (Boolean) Flag to combine stdout and stderr in the logfile. Default: true * `tripleo_undercloud_backup_log_output`: (Boolean) Flag to log the output to a file rather than show it in the ansible output. Default: true * `tripleo_undercloud_backup_poll`: (Integer) Number of seconds to wait between checks to see if the backup command has completed. This should be set to a value greater or equal to 1. Default: 10 diff --git a/roles/tripleo_undercloud_backup/defaults/main.yml b/roles/tripleo_undercloud_backup/defaults/main.yml index bda98bc..2850b7d 100644 --- a/roles/tripleo_undercloud_backup/defaults/main.yml +++ b/roles/tripleo_undercloud_backup/defaults/main.yml @@ -4,6 +4,10 @@ openstack_bin: openstack tripleo_undercloud_backup_add_path: [] tripleo_undercloud_backup_debug: false tripleo_undercloud_backup_exclude_path: [] +tripleo_undercloud_backup_init: +tripleo_undercloud_backup_setup_nfs: false +tripleo_undercloud_backup_setup_rear: false +tripleo_undercloud_backup_extra_vars: tripleo_undercloud_backup_generate_scripts: "{{ tripleo_generate_scripts | default(False) }}" tripleo_undercloud_backup_generate_scripts_only: "{{ tripleo_generate_scripts_only | default(False) }}" tripleo_undercloud_backup_home_dir: "{{ ansible_env.HOME }}" diff --git a/roles/tripleo_undercloud_backup/molecule/default/converge.yml b/roles/tripleo_undercloud_backup/molecule/default/converge.yml index f715cb9..0fcfd02 100644 --- a/roles/tripleo_undercloud_backup/molecule/default/converge.yml +++ b/roles/tripleo_undercloud_backup/molecule/default/converge.yml @@ -46,3 +46,74 @@ assert: that: - tripleo_undercloud_backup_result.stdout == "undercloud backup --exclude-path /home --exclude-path /usr" + + + - name: Check parameter "tripleo_undercloud_backup_init_rear" + include_role: + name: "tripleo_undercloud_backup" + vars: + tripleo_undercloud_backup_init: rear + + - name: Assert "tripleo_undercloud_backup_init_rear" + assert: + that: + - tripleo_undercloud_backup_result.stdout == "undercloud backup --init rear" + + - name: Check parameter "tripleo_undercloud_backup_init_nfs" + include_role: + name: "tripleo_undercloud_backup" + vars: + tripleo_undercloud_backup_init: nfs + + - name: Assert "tripleo_undercloud_backup_init_nfs" + assert: + that: + - tripleo_undercloud_backup_result.stdout == "undercloud backup --init nfs" + + - name: Check parameter "tripleo_undercloud_backup_setup_nfs" + include_role: + name: "tripleo_undercloud_backup" + vars: + tripleo_undercloud_backup_setup_nfs: true + + - name: Assert "tripleo_undercloud_backup_setup_nfs" + assert: + that: + - tripleo_undercloud_backup_result.stdout == "undercloud backup --setup-nfs" + + - name: Check parameter "tripleo_undercloud_backup_setup_rear" + include_role: + name: "tripleo_undercloud_backup" + vars: + tripleo_undercloud_backup_setup_rear: true + + - name: Assert "tripleo_undercloud_backup_setup_rear" + assert: + that: + - tripleo_undercloud_backup_result.stdout == "undercloud backup --setup-rear" + + - name: Check parameter "tripleo_undercloud_backup_setup_rear_extra_vars_file" + include_role: + name: "tripleo_undercloud_backup" + vars: + tripleo_undercloud_backup_setup_rear: true + tripleo_undercloud_backup_extra_vars: /path/to/vars.yaml + + - name: Assert "tripleo_undercloud_backup_setup_rear_extra_vars_file" + assert: + that: + - tripleo_undercloud_backup_result.stdout == "undercloud backup --setup-rear --extra-vars /path/to/vars.yaml" + + - name: Check parameter "tripleo_undercloud_backup_setup_rear_extra_vars_string" + include_role: + name: "tripleo_undercloud_backup" + vars: + tripleo_undercloud_backup_setup_rear: true + tripleo_undercloud_backup_extra_vars: "{{ {'tripleo_backup_and_restore_nfs_server': '192.168.24.1'} | to_json }}" + + - name: Assert "tripleo_undercloud_backup_setup_rear_extra_vars_string" + vars: + tripleo_undercloud_backup_extra_vars: "{{ {'tripleo_backup_and_restore_nfs_server': '192.168.24.1'} | to_json }}" + assert: + that: + - tripleo_undercloud_backup_result.stdout == 'undercloud backup --setup-rear --extra-vars {{ tripleo_undercloud_backup_extra_vars }}' diff --git a/roles/tripleo_undercloud_backup/tasks/main.yml b/roles/tripleo_undercloud_backup/tasks/main.yml index 9725eaa..2566160 100644 --- a/roles/tripleo_undercloud_backup/tasks/main.yml +++ b/roles/tripleo_undercloud_backup/tasks/main.yml @@ -5,6 +5,10 @@ {{ openstack_bin }} undercloud backup {{ tripleo_undercloud_backup_add_path | tripleo.operator.shell_arg_list(parameter='--add-path') }} {{ tripleo_undercloud_backup_exclude_path | tripleo.operator.shell_arg_list(parameter='--exclude-path') }} + {{ tripleo_undercloud_backup_init | tripleo.operator.shell_arg_list(parameter='--init') }} + {{ tripleo_undercloud_backup_setup_nfs | ternary('--setup-nfs', '') }} + {{ tripleo_undercloud_backup_setup_rear | ternary('--setup-rear', '') }} + {{ tripleo_undercloud_backup_extra_vars | tripleo.operator.shell_arg_list(parameter='--extra-vars') }} {{ tripleo_undercloud_backup_log_output | ternary((">" ~ tripleo_undercloud_backup_log), '') }} {{ tripleo_undercloud_backup_log_combine | ternary("2>&1", '') }} _backup_env: {}