]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
ceph-facts: only get fsid when monitor are present
authorDimitri Savineau <dsavinea@redhat.com>
Thu, 10 Sep 2020 14:12:13 +0000 (10:12 -0400)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Thu, 10 Sep 2020 17:19:44 +0000 (13:19 -0400)
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 <dsavinea@redhat.com>
infrastructure-playbooks/rolling_update.yml
roles/ceph-facts/tasks/facts.yml
tox-external_clients.ini

index 84f7a05d6efd3bd668aaa2211141538a77e378e0..5bf8f9f89e20e58c8918d7f715830253c05e4f8c 100644 (file)
       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
index 98f0aa48fd791d5ca0d16f777f84ed8c55f93e49..b76b6333e0156afc22217b929416011c648753fd 100644 (file)
   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:
index 62162e44107b5d23b39c34afdc532b55c05a7a8c..0ee62db3532bb1846599726d00c6cd9432f06a07 100644 (file)
@@ -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