From: Dimitri Savineau Date: Thu, 10 Sep 2020 14:12:13 +0000 (-0400) Subject: ceph-facts: only get fsid when monitor are present X-Git-Tag: v6.0.0alpha2~45 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f63022dfec701dadc28359b1a4978f8a7ab00e03;p=ceph-ansible.git ceph-facts: only get fsid when monitor are present When running the rolling_update playbook with an inventory without monitor nodes defined (like external scenario) then we can't retrieve the cluster fsid from the running monitor. In this scenario we have to pass this information manually (group_vars or host_vars). Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1877426 Signed-off-by: Dimitri Savineau --- diff --git a/infrastructure-playbooks/rolling_update.yml b/infrastructure-playbooks/rolling_update.yml index 84f7a05d6..5bf8f9f89 100644 --- a/infrastructure-playbooks/rolling_update.yml +++ b/infrastructure-playbooks/rolling_update.yml @@ -861,25 +861,33 @@ command: "{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph --cluster {{ cluster }} osd require-osd-release pacific" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: containerized_deployment | bool + when: + - containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - name: non container | disallow pre-pacific OSDs and enable all new pacific-only functionality command: "ceph --cluster {{ cluster }} osd require-osd-release pacific" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: not containerized_deployment | bool + when: + - not containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - name: container | enable msgr2 protocol command: "{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph --cluster {{ cluster }} mon enable-msgr2" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: containerized_deployment | bool + when: + - containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - name: non container | enable msgr2 protocol command: "ceph --cluster {{ cluster }} mon enable-msgr2" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: not containerized_deployment | bool + when: + - not containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - import_role: name: ceph-handler diff --git a/roles/ceph-facts/tasks/facts.yml b/roles/ceph-facts/tasks/facts.yml index 98f0aa48f..b76b6333e 100644 --- a/roles/ceph-facts/tasks/facts.yml +++ b/roles/ceph-facts/tasks/facts.yml @@ -137,12 +137,16 @@ register: rolling_update_fsid delegate_to: "{{ mon_host | default(groups[mon_group_name][0]) }}" until: rolling_update_fsid is succeeded - when: rolling_update | bool + when: + - rolling_update | bool + - groups.get(mon_group_name, []) | length > 0 - name: set_fact fsid set_fact: fsid: "{{ (rolling_update_fsid.stdout | from_json).fsid }}" - when: rolling_update | bool + when: + - rolling_update | bool + - groups.get(mon_group_name, []) | length > 0 - name: set_fact fsid from current_fsid set_fact: diff --git a/tox-external_clients.ini b/tox-external_clients.ini index 62162e441..0ee62db35 100644 --- a/tox-external_clients.ini +++ b/tox-external_clients.ini @@ -66,4 +66,19 @@ commands= py.test --reruns 5 --reruns-delay 1 -n 8 --durations=0 --sudo -v --connection=ansible --ansible-inventory={changedir}/inventory/external_clients-hosts --ssh-config={changedir}/vagrant_ssh_config {toxinidir}/tests/functional/tests/test_install.py::TestCephConf + ansible-playbook -vv -i {changedir}/inventory/external_clients-hosts {toxinidir}/infrastructure-playbooks/rolling_update.yml --extra-vars "\ + ireallymeanit=yes \ + fetch_directory={env:FETCH_DIRECTORY:{changedir}/fetch} \ + fsid=40358a87-ab6e-4bdc-83db-1d909147861c \ + external_cluster_mon_ips=192.168.31.10,192.168.31.11,192.168.31.12 \ + generate_fsid=false \ + ceph_dev_branch=master \ + ceph_dev_sha1=latest \ + ceph_docker_registry_auth=True \ + ceph_docker_registry_username={env:DOCKER_HUB_USERNAME} \ + ceph_docker_registry_password={env:DOCKER_HUB_PASSWORD} \ + " + + py.test --reruns 5 --reruns-delay 1 -n 8 --durations=0 --sudo -v --connection=ansible --ansible-inventory={changedir}/inventory/external_clients-hosts --ssh-config={changedir}/vagrant_ssh_config {toxinidir}/tests/functional/tests/test_install.py::TestCephConf + vagrant destroy --force