--- - name: get osd path shell: "df | grep {{ item }} | awk '{print $6}'" with_items: "{{ devices }}" changed_when: false failed_when: false always_run: true register: osd_path when: not osd_directory - name: get osd id command: cat {{ item.stdout }}/whoami with_items: "{{ osd_path.results }}" changed_when: false failed_when: false always_run: true register: osd_id_non_dir_scenario when: not osd_directory - name: get osd id for directory scenario command: cat {{ item.stdout }}/whoami with_items: "{{ osd_directories }}" changed_when: false failed_when: false always_run: true register: osd_id_dir_scenario when: osd_directory # NOTE (leseb): we must do this because of # https://github.com/ansible/ansible/issues/4297 - name: combine osd_path results set_fact: combined_osd_id: "{{ osd_id_non_dir_scenario if not osd_directory else osd_id_dir_scenario }}" - name: create a ceph fragment and assemble directory file: path: "{{ item }}" state: directory owner: "{{ dir_owner }}" group: "{{ dir_group }}" mode: "{{ dir_mode }}" with_items: - /etc/ceph/ceph.d/ - /etc/ceph/ceph.d/osd_fragments - name: create the osd fragment template: src: osd.conf.j2 dest: /etc/ceph/ceph.d/osd_fragments/osd.{{ item.stdout }}.conf owner: "{{ dir_owner }}" group: "{{ dir_group }}" mode: "{{ activate_file_mode }}" with_items: "{{ combined_osd_id.results }}" - name: copy {{ cluster }}.conf for assembling command: cp /etc/ceph/{{ cluster }}.conf /etc/ceph/ceph.d/ changed_when: false - name: assemble osd sections assemble: src: /etc/ceph/ceph.d/osd_fragments/ dest: /etc/ceph/ceph.d/osd.conf owner: "{{ dir_owner }}" group: "{{ dir_group }}" mode: "{{ activate_file_mode }}" - name: assemble {{ cluster }}.conf and osd fragments assemble: src: /etc/ceph/ceph.d/ dest: /etc/ceph/{{ cluster }}.conf owner: "{{ dir_owner }}" group: "{{ dir_group }}" mode: "{{ activate_file_mode }}"