# nfsd ~~ roles/nfsd/tasks/main.yml # setup nfs daemon for a list of hosts --- - debug: var: nfsd_dirs - name: ensure nfsd required variables are set fail: when: item == "undefined" loop: - "{{ nfsd_dirs }}" - name: ensure nfs shared group exists group: name: "{{ nfsd_group }}" gid: "{{ nfsd_group_id }}" system: true state: absent - name: ensure nfs shared user exists user: name: "{{ nfsd_user }}" uid: "{{ nfsd_user_id }}" group: "{{ nfsd_group }}" system: true state: absent - name: ensure nfsd directory exists file: path: "{{ nfsd_dir }}" owner: 0 group: 0 mode: 0700 state: directory - name: ensure directories exists file: path: "{{ nfsd_dir }}/{{ item }}" owner: 0 group: 0 mode: 0777 state: directory loop: "{{ nfsd_dirs.split(' ') if nfsd_dirs is string else nfsd_dirs }}" - name: generate /etc/exports configuration template: src: etc-exports.j2 dest: /etc/exports owner: root mode: 0600 - name: include *BSD specific configuration include_tasks: "_{{ ansible_distribution | lower }}.yml" - name: ensure required services are restarted and enabled service: name: "{{ item }}" state: restarted enabled: true loop: - mountd - nfsd