--- - name: set_fact _rgw_hostname set_fact: _rgw_hostname: "{{ hostvars[inventory_hostname]['rgw_hostname'] | default(hostvars[inventory_hostname]['ansible_facts']['hostname']) }}" - name: set rgw parameter (log file) ceph_config: action: set who: "client.rgw.{{ _rgw_hostname + '.' + item.instance_name }}" option: "log file" value: "/var/log/ceph/{{ cluster }}-rgw-{{ hostvars[inventory_hostname]['ansible_facts']['hostname'] + '.' + item.instance_name }}.log" environment: CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}" CEPH_CONTAINER_BINARY: "{{ container_binary }}" loop: "{{ hostvars[inventory_hostname]['rgw_instances'] }}" - name: set rgw parameter (rgw_frontends) ceph_config: action: set who: "client.rgw.{{ _rgw_hostname + '.' + item.instance_name }}" option: "rgw_frontends" value: "beast port={{ item.radosgw_frontend_port | string }}" environment: CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}" CEPH_CONTAINER_BINARY: "{{ container_binary }}" loop: "{{ hostvars[inventory_hostname]['rgw_instances'] }}" notify: restart ceph rgws # rgw_frontends # {{ 'ssl_' if radosgw_frontend_ssl_certificate else '' }}endpoint={{ _rgw_binding_socket }}{{ ' ssl_certificate='+radosgw_frontend_ssl_certificate if radosgw_frontend_ssl_certificate else '' }} - name: create rados gateway directories file: path: "/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_facts['hostname'] }}.{{ item.instance_name }}" state: directory owner: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" group: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" mode: "{{ ceph_directories_mode }}" delegate_to: "{{ groups.get(mon_group_name, [])[0] }}" loop: "{{ rgw_instances }}" when: groups.get(mon_group_name, []) | length > 0 - name: create rgw keyrings ceph_key: name: "client.rgw.{{ ansible_facts['hostname'] }}.{{ item.instance_name }}" cluster: "{{ cluster }}" user: "client.bootstrap-rgw" user_key: /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring dest: "/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_facts['hostname'] }}.{{ item.instance_name }}/keyring" caps: osd: 'allow rwx' mon: 'allow rw' import_key: "{{ True if groups.get(mon_group_name, []) | length > 0 else False }}" owner: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" group: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" mode: "0600" no_log: "{{ no_log_on_ceph_key_tasks }}" delegate_to: "{{ groups[mon_group_name][0] if groups.get(mon_group_name, []) | length > 0 else 'localhost'}}" environment: CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}" CEPH_CONTAINER_BINARY: "{{ container_binary }}" with_items: "{{ rgw_instances }}" when: cephx | bool - name: get keys from monitors ceph_key: name: "client.rgw.{{ ansible_facts['hostname'] }}.{{ item.instance_name }}" cluster: "{{ cluster }}" output_format: plain state: info environment: CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}" CEPH_CONTAINER_BINARY: "{{ container_binary }}" register: _rgw_keys loop: "{{ rgw_instances }}" delegate_to: "{{ groups.get(mon_group_name)[0] }}" when: - cephx | bool - groups.get(mon_group_name, []) | length > 0 no_log: "{{ no_log_on_ceph_key_tasks }}" - name: copy ceph key(s) if needed copy: dest: "/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_facts['hostname'] }}.{{ item.item.instance_name }}/keyring" content: "{{ item.stdout + '\n' }}" owner: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" group: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" mode: "{{ ceph_keyring_permissions }}" with_items: "{{ _rgw_keys.results }}" when: - cephx | bool - item is not skipped - groups.get(mon_group_name, []) | length > 0 no_log: "{{ no_log_on_ceph_key_tasks }}"