ansible-infra/ansible_collections/debops/debops/roles/nfs_server/tasks/main.yml
Stefan Bethke 2aed20393f
Some checks failed
/ Ansible Lint (push) Failing after 5m45s
/ Ansible Lint (pull_request) Failing after 4m59s
Vendor Galaxy Roles and Collections
2026-02-06 22:07:16 +01:00

67 lines
2 KiB
YAML

---
# Copyright (C) 2017 Maciej Delmanowski <drybjed@gmail.com>
# Copyright (C) 2017 DebOps <https://debops.org/>
# SPDX-License-Identifier: GPL-3.0-only
- name: Import DebOps global handlers
ansible.builtin.import_role:
name: 'global_handlers'
- name: Install required packages
ansible.builtin.package:
name: '{{ q("flattened", (nfs_server__base_packages
+ nfs_server__packages)) }}'
state: 'present'
register: nfs_server__register_packages
until: nfs_server__register_packages is succeeded
- name: Configure NFS server
ansible.builtin.template:
src: '{{ item }}.j2'
dest: '/{{ item }}'
owner: 'root'
group: 'root'
mode: '0644'
with_items:
- 'etc/default/nfs-common'
- 'etc/default/nfs-kernel-server'
- 'etc/modprobe.d/nfs-server.conf'
notify:
- 'Restart nfs-kernel-server service'
- name: Create /etc/exports.d/ directory
ansible.builtin.file:
path: '/etc/exports.d'
state: 'directory'
owner: 'root'
group: 'root'
mode: '0755'
- name: Ensure exported directories exist
ansible.builtin.file:
path: '{{ item.path }}'
state: 'directory'
owner: '{{ item.owner | d("root") }}'
group: '{{ item.group | d("root") }}'
mode: '{{ item.mode | d("0755") }}'
loop: '{{ q("flattened", nfs_server__combined_exports) }}'
when: item.path | d() and item.state | d('present') != 'absent' and item.acl | d()
- name: Bind mount requested directories
ansible.posix.mount:
name: '{{ item.path }}'
src: '{{ item.bind.src | d(item.bind) }}'
opts: '{{ (["bind"] + item.bind.options | d([])) | join(",") }}'
fstype: 'none'
state: 'mounted'
loop: '{{ q("flattened", nfs_server__combined_exports) }}'
when: item.path | d() and item.state | d('present') != 'absent' and item.acl | d() and item.bind | d()
- name: Configure NFS exports
ansible.builtin.template:
src: 'etc/exports.d/ansible.exports.j2'
dest: '/etc/exports.d/ansible.exports'
owner: 'root'
group: 'root'
mode: '0644'
notify: [ 'Reload NFS exports' ]