| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
ci/woodpecker/push/linting Pipeline was successful
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> |
||
| .woodpecker | ||
| roles | ||
| vars | ||
| .ansible-lint | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .markdownlint-cli2.jsonc | ||
| .sops.yaml | ||
| .yamllint | ||
| ansible.cfg | ||
| playbook.yaml | ||
| readme.md | ||
| renovate.json | ||
Ansible Playbook: NFS Media
Playbook-only repository that configures the NFS server for media file sharing by feeding the shares defined in
vars/shares.yaml to the nfs_server role.
Dependencies
| Role | Description | Repository |
|---|---|---|
nfs_server |
NFS server configuration | nfs-server |
The role is installed from roles/requirements.yml (branch main).
Variables
Only one variable is set, shares in vars/shares.yaml, which is loaded by the playbook through vars_files.
See the nfs-server repository for all share keys and defaults
(owner and group default to root, mode to 0770).
Exports
All shares use the client options rw,no_root_squash,no_subtree_check.
| Path | Client IP | Client | Owner:Group | Mode |
|---|---|---|---|---|
/srv/nfs/media/downloads |
192.168.10.94 |
torrent.siempie.internal | 10500:10000 |
777 |
/srv/nfs/media |
192.168.10.74 |
tdarr.siempie.internal | role default | 775 |
/srv/nfs/media |
192.168.10.77 |
jellyfin.siempie.internal | role default | 775 |
/srv/nfs/media |
192.168.10.80 |
tdarr-worker.siempie.internal | role default | 775 |
/srv/nfs/media |
192.168.10.87 |
radarr.siempie.internal | role default | 775 |
/srv/nfs/media |
192.168.10.88 |
sonarr.siempie.internal | role default | 775 |
/srv/nfs/media |
192.168.10.90 |
bazarr.siempie.internal | role default | 775 |
The /srv/nfs/media share is listed once per client because the role supports one client per entry.
Example
Adding a client to the media share:
shares:
# newclient.siempie.internal
- name: "media"
path: "/srv/nfs/media"
mode: "775"
client_ip: "192.168.10.99"
client_options: "rw,no_root_squash,no_subtree_check"
Usage
Run playbook.yaml via Semaphore. The playbook first runs ansible-galaxy install -f -r roles/requirements.yml on
the controller and then includes the nfs_server role on all hosts, so point the Semaphore inventory at the NFS
server.