56 lines
1.3 KiB
YAML
56 lines
1.3 KiB
YAML
# nfs.yaml
|
|
|
|
- name: Setup NFS Server
|
|
hosts: nfs_servers
|
|
become: true
|
|
vars_files:
|
|
- vars.yaml
|
|
tasks:
|
|
- name: Install NFS server
|
|
apt:
|
|
name: nfs-kernel-server
|
|
state: present
|
|
|
|
- name: Create export directories
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
loop: "{{ nfs_exports }}"
|
|
|
|
- name: Ensure NFS export entry is present (append only)
|
|
lineinfile:
|
|
path: /etc/exports
|
|
line: >-
|
|
{{ item.path }} {{ item.clients | map(attribute='name') | zip(item.clients | map(attribute='options')) | map('join', '(') | map('regex_replace', '$', ')') | join(' ') }}
|
|
create: yes
|
|
state: present
|
|
loop: "{{ nfs_exports }}"
|
|
|
|
- name: Reload NFS exports
|
|
command: exportfs -ra
|
|
|
|
- name: Setup NFS Client
|
|
hosts: nfs_clients
|
|
become: true
|
|
vars_files:
|
|
- vars.yaml
|
|
tasks:
|
|
- name: Install NFS client
|
|
apt:
|
|
name: nfs-common
|
|
state: present
|
|
|
|
- name: Create mount directories
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
loop: "{{ nfs_mounts }}"
|
|
|
|
- name: Mount NFS shares
|
|
mount:
|
|
path: "{{ item.path }}"
|
|
src: "{{ item.src }}"
|
|
fstype: nfs
|
|
opts: rw
|
|
state: mounted
|
|
loop: "{{ nfs_mounts }}" |