--- - name: include red hat based system related tasks include_tasks: pre_requisite_non_container_red_hat.yml when: ansible_os_family == 'RedHat' - name: include debian based system related tasks include_tasks: pre_requisite_non_container_debian.yml when: ansible_os_family == 'Debian' - name: install nfs rgw/cephfs gateway - suse zypper: name: "{{ item.name }}" disable_gpg_check: yes with_items: - { name: 'nfs-ganesha-rgw', install: "{{ nfs_obj_gw }}" } - { name: 'radosgw', install: "{{ nfs_obj_gw }}" } - { name: 'nfs-ganesha-ceph', install: "{{ nfs_file_gw }}" } when: - (ceph_origin == 'repository' or ceph_origin == 'distro') - ceph_repository != 'rhcs' - ansible_os_family == 'Suse' - item.install | bool register: result until: result is succeeded # NOTE (leseb): we use root:ceph for permissions since ganesha # does not have the right selinux context to read ceph directories. - name: create rados gateway and ganesha directories file: path: "{{ item.name }}" state: directory owner: "ceph" group: "ceph" mode: "0755" with_items: - { name: "/var/lib/ceph/bootstrap-rgw", create: "{{ nfs_obj_gw }}" } - { name: "/var/lib/ceph/radosgw", create: "{{ nfs_obj_gw }}" } - { name: "/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}", create: "{{ nfs_obj_gw }}" } - { name: "{{ rbd_client_admin_socket_path }}", create: "{{ nfs_obj_gw }}" } - { name: "/var/log/ceph", create: true } - { name: "/var/run/ceph", create: true } when: item.create | bool - name: cephx related tasks when: - cephx | bool - groups.get(mon_group_name, []) | length > 0 block: - name: copy bootstrap cephx keys 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: "{{ nfs_obj_gw }}" } - { name: "/etc/ceph/{{ cluster }}.client.admin.keyring", copy_key: "{{ copy_admin_key }}" } when: item.copy_key | bool - name: nfs object gateway related tasks when: nfs_obj_gw | bool block: - 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 - name: set rados gateway key permissions file: path: /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}/keyring owner: "ceph" group: "ceph" mode: "0600" - name: change ownership on /var/log/ganesha file: path: /var/log/ganesha owner: "root" group: "root" mode: "0755" - name: stop nfs server service systemd: name: "{%- if ansible_os_family == 'RedHat' 'nfs-server' %}{%- endif %}{%- if ansible_os_family == 'Suse' 'nfsserver' %}{%- endif %}{%- if ansible_os_family == 'Debian' 'nfs-kernel-server' %}{%- endif %}" state: stopped enabled: no ignore_errors: true