- name: Ensure the data folder exists become: true file: path: "{{ devstack_data_base_dir }}/data" state: directory owner: stack group: stack mode: 0755 when: 'inventory_hostname in groups["subnode"]|default([])' - name: Ensure the CA folder exists become: true file: path: "{{ devstack_data_base_dir }}/data/CA" state: directory owner: stack group: stack mode: 0755 when: 'inventory_hostname in groups["subnode"]|default([])' - name: Pull the CA certificate and folder become: true synchronize: src: "{{ item }}" dest: "{{ zuul.executor.work_root }}/{{ item | basename }}" mode: pull with_items: - "{{ devstack_data_base_dir }}/data/ca-bundle.pem" - "{{ devstack_data_base_dir }}/data/CA" when: inventory_hostname == 'controller' - name: Push the CA certificate become: true become_user: stack synchronize: src: "{{ zuul.executor.work_root }}/ca-bundle.pem" dest: "{{ devstack_data_base_dir }}/data/ca-bundle.pem" mode: push when: 'inventory_hostname in groups["subnode"]|default([])' - name: Push the CA folder become: true become_user: stack synchronize: src: "{{ zuul.executor.work_root }}/CA/" dest: "{{ devstack_data_base_dir }}/data/" mode: push when: 'inventory_hostname in groups["subnode"]|default([])' - name: Ensure the data folder and subfolders have the correct permissions become: true file: path: "{{ devstack_data_base_dir }}/data" state: directory owner: stack group: stack mode: 0755 recurse: yes when: 'inventory_hostname in groups["subnode"]|default([])'