--- - name: create rados gateway directories file: path: "{{ item }}" state: directory owner: "ceph" group: "ceph" mode: "0755" with_items: - /var/lib/ceph/bootstrap-rgw - /var/lib/ceph/radosgw - /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }} - "{{ rbd_client_admin_socket_path }}" when: - nfs_obj_gw - name: copy rados gateway bootstrap key copy: src: "{{ fetch_directory }}/{{ fsid }}{{ item.name }}" dest: "{{ item.name }}" owner: "ceph" group: "ceph" mode: "0600" with_items: - { name: "/var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring", copy_key: true } - { name: "/etc/ceph/{{ cluster }}.client.admin.keyring", copy_key: "{{ copy_admin_key }}" } when: - nfs_obj_gw - cephx - item.copy_key|bool - name: create rados gateway keyring command: ceph --cluster {{ cluster }} --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring auth get-or-create client.rgw.{{ ansible_hostname }} osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}/keyring args: creates: /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}/keyring changed_when: false when: - nfs_obj_gw - cephx - name: set rados gateway key permissions file: path: /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}/keyring owner: "ceph" group: "ceph" mode: "0600" when: cephx - name: create rgw nfs user command: radosgw-admin --cluster {{ cluster }} user create --uid={{ ceph_nfs_rgw_user }} --display-name="RGW NFS User" register: rgwuser delegate_to: "{{ groups[mon_group_name][0] }}" when: nfs_obj_gw - name: set access key set_fact: ceph_nfs_rgw_access_key: "{{ (rgwuser.stdout | from_json)['keys'][0]['access_key'] }}" delegate_to: "{{ groups[mon_group_name][0] }}" when: - nfs_obj_gw - ceph_nfs_rgw_access_key is not defined - name: set secret key set_fact: ceph_nfs_rgw_secret_key: "{{(rgwuser.stdout | from_json)['keys'][0]['secret_key']}}" delegate_to: "{{ groups[mon_group_name][0] }}" when: - nfs_obj_gw - ceph_nfs_rgw_secret_key is not defined - name: create nfs gateway directories file: path: "{{ item }}" state: directory owner: "ceph" group: "ceph" mode: "0755" with_items: - /var/lib/nfs/ganesha - /var/run/ganesha - name: generate ganesha configuration file action: config_template args: src: "{{ lookup('env', 'ANSIBLE_ROLES_PATH') | default (playbook_dir + '/roles', true) }}/ceph-nfs/templates/ganesha.conf.j2" dest: /etc/ganesha/ganesha.conf owner: "root" group: "root" mode: "0644" config_type: ini notify: - restart ceph nfss - name: start nfs gateway service service: name: nfs-ganesha state: started enabled: yes