--- - name: Ensuring config directory exists vars: services_need_directory: - "cinder-volume" - "cinder-backup" file: path: "{{ node_config_directory }}/{{ item.key }}" state: "directory" when: - item.value.enabled | bool - inventory_hostname in groups[item.value.group] - item.key in services_need_directory with_dict: "{{ cinder_services }}" - name: Copying over ceph.conf(s) vars: services_need_config: - "cinder-volume" - "cinder-backup" merge_configs: sources: - "{{ role_path }}/../ceph/templates/ceph.conf.j2" - "{{ node_custom_config }}/ceph.conf" - "{{ node_custom_config }}/ceph/{{ inventory_hostname }}/ceph.conf" dest: "{{ node_config_directory }}/{{ item.key }}/ceph.conf" when: - item.value.enabled | bool - inventory_hostname in groups[item.value.group] - item.key in services_need_config with_dict: "{{ cinder_services }}" - include: ../../ceph_pools.yml vars: pool_name: "{{ cinder_pool_name }}" pool_type: "{{ cinder_pool_type }}" cache_mode: "{{ cinder_cache_mode }}" pool_pg_num: "{{ cinder_pool_pg_num }}" pool_pgp_num: "{{ cinder_pool_pgp_num }}" - include: ../../ceph_pools.yml vars: pool_name: "{{ cinder_backup_pool_name }}" pool_type: "{{ cinder_backup_pool_type }}" cache_mode: "{{ cinder_backup_cache_mode }}" pool_pg_num: "{{ cinder_backup_pool_pg_num }}" pool_pgp_num: "{{ cinder_backup_pool_pgp_num }}" # TODO(SamYaple): Improve changed_when tests - name: Pulling cephx keyring for cinder command: docker exec ceph_mon ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ ceph_cinder_pool_name }}, allow rwx pool={{ ceph_cinder_pool_name }}-cache, allow rwx pool={{ ceph_nova_pool_name }}, allow rwx pool={{ ceph_nova_pool_name }}-cache, allow rx pool={{ ceph_glance_pool_name }}, allow rx pool={{ ceph_glance_pool_name }}-cache' register: cephx_key_cinder delegate_to: "{{ groups['ceph-mon'][0] }}" changed_when: False run_once: True # TODO(SamYaple): Improve changed_when tests - name: Pulling cephx keyring for cinder-backup command: docker exec ceph_mon ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ ceph_cinder_backup_pool_name }}, allow rwx pool={{ ceph_cinder_backup_pool_name }}-cache' register: cephx_key_cinder_backup delegate_to: "{{ groups['ceph-mon'][0] }}" changed_when: False run_once: True - name: Pushing cephx keyring copy: content: "{{ item.content }}\n\r" dest: "{{ node_config_directory }}/{{ item.service_name }}/ceph.client.{{ item.key_name }}.keyring" mode: "0600" with_items: - { service_name: "cinder-volume", key_name: "cinder", content: "{{ cephx_key_cinder.stdout }}" } - { service_name: "cinder-backup", key_name: "cinder", content: "{{ cephx_key_cinder.stdout }}" } - { service_name: "cinder-backup", key_name: "cinder-backup", content: "{{ cephx_key_cinder_backup.stdout }}" } when: - inventory_hostname in groups[item.service_name] - cinder_services[item.service_name].enabled | bool