From 07b953f4208c54ee8c3ddb5d2f2365bb1a2f179c Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Tue, 29 Nov 2016 18:14:03 +0100 Subject: [PATCH] Refact temporary vars in ceph-common defaults. These variables were defined here to be sure that `roles/ceph-common/tasks/checks/check_mandatory_vars.yml` has all variables defined. --- roles/ceph-common/defaults/main.yml | 19 ----- .../tasks/checks/check_mandatory_vars.yml | 72 ------------------- roles/ceph-osd/tasks/check_mandatory_vars.yml | 72 +++++++++++++++++++ roles/ceph-osd/tasks/main.yml | 2 + 4 files changed, 74 insertions(+), 91 deletions(-) create mode 100644 roles/ceph-osd/tasks/check_mandatory_vars.yml diff --git a/roles/ceph-common/defaults/main.yml b/roles/ceph-common/defaults/main.yml index deaec7f8a..693595b8f 100644 --- a/roles/ceph-common/defaults/main.yml +++ b/roles/ceph-common/defaults/main.yml @@ -348,25 +348,6 @@ mon_containerized_deployment_with_kv: false mon_containerized_deployment: false mon_containerized_default_ceph_conf_with_kv: false - -################## -# Temporary Vars # -################## -# NOTE(SamYaple): These vars are set here to they are defined before use. They -# should be removed after a refactor has properly seperated all the checks into -# the appropriate roles. - -journal_collocation: False -raw_multi_journal: False -osd_directory: False -bluestore: False -dmcrypt_journal_collocation: False -dmcrypt_dedicated_journal: False -raw_journal_devices: [] -devices: [] - -osd_auto_discovery: False - # Confiure the type of NFS gatway access. At least one must be enabled for an # NFS role to be useful # diff --git a/roles/ceph-common/tasks/checks/check_mandatory_vars.yml b/roles/ceph-common/tasks/checks/check_mandatory_vars.yml index f8858b0cc..aa3ecd930 100644 --- a/roles/ceph-common/tasks/checks/check_mandatory_vars.yml +++ b/roles/ceph-common/tasks/checks/check_mandatory_vars.yml @@ -32,14 +32,6 @@ tags: - package-install -- name: make sure journal_size configured - debug: - msg: "WARNING: journal_size is configured to less than 5GB. This is not recommended and can lead to severe issues." - when: - - journal_size|int < 5120 - - osd_objectstore != 'bluestore' - - osd_group_name in group_names - - name: make sure monitor_interface or monitor_address or monitor_address_block is configured fail: msg: "Either monitor_interface, monitor_address, or monitor_address_block must be configured. Interface for the monitor to listen on or IP address of that interface" @@ -62,67 +54,3 @@ when: - public_network == '0.0.0.0/0' - osd_group_name in group_names - -- name: make sure an osd scenario was chosen - fail: - msg: "please choose an osd scenario" - when: - - osd_group_name is defined - - osd_group_name in group_names - - not journal_collocation - - not raw_multi_journal - - not osd_directory - - not bluestore - - not dmcrypt_journal_collocation - - not dmcrypt_dedicated_journal - -- name: verify only one osd scenario was chosen - fail: - msg: "please select only one osd scenario" - when: - - osd_group_name is defined - - osd_group_name in group_names - - (journal_collocation and raw_multi_journal) - or (journal_collocation and osd_directory) - or (journal_collocation and bluestore) - or (raw_multi_journal and osd_directory) - or (raw_multi_journal and bluestore) - or (osd_directory and bluestore) - or (dmcrypt_journal_collocation and journal_collocation) - or (dmcrypt_journal_collocation and raw_multi_journal) - or (dmcrypt_journal_collocation and osd_directory) - or (dmcrypt_journal_collocation and bluestore) - or (dmcrypt_dedicated_journal and journal_collocation) - or (dmcrypt_dedicated_journal and raw_multi_journal) - or (dmcrypt_dedicated_journal and osd_directory) - or (dmcrypt_dedicated_journal and bluestore) - or (dmcrypt_dedicated_journal and dmcrypt_journal_collocation) - -- name: verify devices have been provided - fail: - msg: "please provide devices to your osd scenario" - when: - - osd_group_name is defined - - osd_group_name in group_names - - journal_collocation - - not osd_auto_discovery - - devices|length == 0 - -- name: verify journal devices have been provided - fail: - msg: "please provide devices and raw journal devices to your osd scenario" - when: - - osd_group_name is defined - - osd_group_name in group_names - - raw_multi_journal - - raw_journal_devices|length == 0 - or devices|length == 0 - -- name: verify directories have been provided - fail: - msg: "please provide directories to your osd scenario" - when: - - osd_group_name is defined - - osd_group_name in group_names - - osd_directory - - osd_directories is not defined diff --git a/roles/ceph-osd/tasks/check_mandatory_vars.yml b/roles/ceph-osd/tasks/check_mandatory_vars.yml new file mode 100644 index 000000000..537c820df --- /dev/null +++ b/roles/ceph-osd/tasks/check_mandatory_vars.yml @@ -0,0 +1,72 @@ +--- +- name: make sure journal_size configured + debug: + msg: "WARNING: journal_size is configured to less than 5GB. This is not recommended and can lead to severe issues." + when: + - journal_size|int < 5120 + - osd_objectstore != 'bluestore' + - osd_group_name in group_names + +- name: make sure an osd scenario was chosen + fail: + msg: "please choose an osd scenario" + when: + - osd_group_name is defined + - osd_group_name in group_names + - not journal_collocation + - not raw_multi_journal + - not osd_directory + - not bluestore + - not dmcrypt_journal_collocation + - not dmcrypt_dedicated_journal + +- name: verify only one osd scenario was chosen + fail: + msg: "please select only one osd scenario" + when: + - osd_group_name is defined + - osd_group_name in group_names + - (journal_collocation and raw_multi_journal) + or (journal_collocation and osd_directory) + or (journal_collocation and bluestore) + or (raw_multi_journal and osd_directory) + or (raw_multi_journal and bluestore) + or (osd_directory and bluestore) + or (dmcrypt_journal_collocation and journal_collocation) + or (dmcrypt_journal_collocation and raw_multi_journal) + or (dmcrypt_journal_collocation and osd_directory) + or (dmcrypt_journal_collocation and bluestore) + or (dmcrypt_dedicated_journal and journal_collocation) + or (dmcrypt_dedicated_journal and raw_multi_journal) + or (dmcrypt_dedicated_journal and osd_directory) + or (dmcrypt_dedicated_journal and bluestore) + or (dmcrypt_dedicated_journal and dmcrypt_journal_collocation) + +- name: verify devices have been provided + fail: + msg: "please provide devices to your osd scenario" + when: + - osd_group_name is defined + - osd_group_name in group_names + - journal_collocation + - not osd_auto_discovery + - devices|length == 0 + +- name: verify journal devices have been provided + fail: + msg: "please provide devices and raw journal devices to your osd scenario" + when: + - osd_group_name is defined + - osd_group_name in group_names + - raw_multi_journal + - raw_journal_devices|length == 0 + or devices|length == 0 + +- name: verify directories have been provided + fail: + msg: "please provide directories to your osd scenario" + when: + - osd_group_name is defined + - osd_group_name in group_names + - osd_directory + - osd_directories is not defined diff --git a/roles/ceph-osd/tasks/main.yml b/roles/ceph-osd/tasks/main.yml index 94a9d5810..d4f320961 100644 --- a/roles/ceph-osd/tasks/main.yml +++ b/roles/ceph-osd/tasks/main.yml @@ -1,4 +1,6 @@ --- +- include: check_mandatory_vars.yml + - include: pre_requisite.yml when: not osd_containerized_deployment # Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)