playbook to mount cephfs filesystem

Hi,

I have a strange behaviour .. probably I make some mistake.
I try to had share directories to my fstab directly with ansible through a playbook …
I have a working configuration on my cluster nodes

  • /etc/ceph/ceph.client.server_cluster.keyring
  • /etc/ceph/ceph.client.server_sics.keyring
  • my fstab on working nodes
  • server_cluster@.fs_home=/home /home ceph _netdev,noatime,recover_session=clean 0 0
    

server_sics@.fs_i2bc=/pool_i2bc/default/EQUIPES /stockage/EQUIPES ceph _netdev,noatime,recover_session=clean 0 0
server_sics@.fs_i2bc=/pool_i2bc/default/USERS /stockage/USERS ceph _netdev,noatime,recover_session=clean 0 0
server_sics@.fs_i2bc=/pool_i2bc/default/plateformes /stockage/plateformes ceph _netdev,noatime,recover_session=clean 0 0

Directly included in fstab this configuration is functionnal.
Then I try to make it “ansibled” … :slight_smile:


- name: Install ceph
  ansible.builtin.apt:
    name: ceph-common
    state: latest
  become: true
- name: Download ceph config
  ansible.builtin.copy:
    src: '{{playbook_dir}}/roles/fstab/files/ceph/ceph.conf'
    dest: /etc/ceph/ceph.conf
    owner: root
    group: root
    mode: '0644'
  become: true
- name: Download ceph user key
  ansible.builtin.copy:
    src: '{{playbook_dir}}/roles/fstab/files/ceph/ceph.client.server_sics.keyring'
    dest: /etc/ceph/ceph.client.server_sics.keyring
    owner: root
    group: root
    mode: '0644'
  become: true
- name: Download ceph user key
  ansible.builtin.copy:
    src: '{{playbook_dir}}/roles/fstab/files/ceph/ceph.client.server_cluster.keyring'
    dest: /etc/ceph/ceph.client.server_cluster.keyring
    owner: root
    group: root
    mode: '0644'
  become: true

- name: update fstab
  ansible.posix.mount:
    fstype: ceph
    path: /home
    state: mounted
    src: "server_cluster@.fs_home=/home"
    opts: "_netdev,noatime,recover_session=clean"
  become: true
  • name: Create mount directory for EQUIPES
    ansible.builtin.file:
    path: /stockage/EQUIPES
    state: directory
    owner: root
    group: root
    mode: ‘0755’
    - name: Create mount directory for USERS
    ansible.builtin.file:
    path: /stockage/USERS
    state: directory
    owner: root
    group: root
    mode: ‘0755’
- name: Create mount directory for plateformes
  ansible.builtin.file:
path: /stockage/plateformes
    state: directory
    owner: root
    group: root
mode: '0755'
  • name: update fstab
    ansible.posix.mount:
    fstype: ceph
    path: /stockage/EQUIPES
    state: mounted
    src: “server_sics:=/pool_i2bc/default/EQUIPES/”
    opts: “_netdev,noatime,recover_session=clean”
    become: true
- name: update fstab
  ansible.posix.mount:
    fstype: ceph
path: /stockage/USERS
state: mounted
    src: "server_sics@.fs_i2bc=/pool_i2bc/default/USERS"
    opts:  "_netdev,noatime,recover_session=clean"
  become: true

But in this case nothing works until I make an ln -s on server_cluster keyring
ceph.client.admin.keyring → /etc/ceph/ceph.client.server_cluster.keyring and so only home directory is correctly mounted …

And on all my cluster nodes I never wrote such link … and the cephfs mount works perfectly …

I don’t understand the problem :frowning:

Best Regards
( sorry for my poor english :slight_smile: )