/
/
/
Ansible role that deployss my nas configuration. It mostly handles nfs configurations and exports that are tailored to the hardware and service configuration.
1---
2# NAS Role Default Configuration
3
4# NFS Server Configuration
5nas_nfs_enabled: true
6nas_nfs_exports: []
7 # Example export configuration for your network:
8 # - path: "/mnt/rstorage/shared"
9 # clients: "192.168.34.0/24"
10 # options: "rw,sync,no_subtree_check,no_root_squash"
11 # - path: "/mnt/rstorage/media"
12 # clients: "192.168.34.0/24"
13 # options: "ro,sync,no_subtree_check"
14 # - path: "/mnt/rstorage/backups"
15 # clients: "192.168.34.64(rw,sync) 192.168.34.94(rw,sync)" # Specific hosts
16 # options: "no_subtree_check"
17
18# Runner Services NFS Exports (automatically added when runner services are enabled)
19nas_runner_exports:
20 - path: "/mnt/rstorage/cctv-data"
21 name: "frigate-data"
22 description: "Frigate CCTV video storage"
23 clients: "{{ runner_host_ip | default(vault_storage.lan_subnet) }}"
24 options: "rw,async,no_subtree_check,no_root_squash,secure"
25 - path: "/mnt/rstorage/media/pictures"
26 name: "immich-photos"
27 description: "Immich photo library storage"
28 clients: "{{ runner_host_ip | default(vault_storage.lan_subnet) }}"
29 options: "rw,async,no_subtree_check,no_root_squash,secure"
30 - path: "/mnt/rstorage/code-repo"
31 name: "forgejo-repos"
32 description: "Forgejo Git repositories"
33 clients: "{{ runner_host_ip | default(vault_storage.lan_subnet) }}"
34 options: "rw,async,no_subtree_check,no_root_squash,secure"
35 - path: "/mnt/rstorage/registry-data"
36 name: "harbor-registry"
37 description: "Harbor container registry data"
38 clients: "{{ runner_host_ip | default(vault_storage.lan_subnet) }}"
39 options: "rw,async,no_subtree_check,no_root_squash,secure"
40 - path: "/mnt/rstorage/cvat-datasets"
41 name: "cvat-datasets"
42 description: "Cvat datasets"
43 clients: "{{ runner_host_ip | default(vault_storage.lan_subnet) }}"
44 options: "rw,async,no_subtree_check,no_root_squash,secure"
45 - path: "/mnt/rstorage/media/dnd"
46 name: "dnd-media"
47 description: "D&D session agent: ambience, effects, recordings, campaign"
48 clients: "{{ runner_host_ip | default(vault_storage.lan_subnet) }}"
49 options: "rw,async,no_subtree_check,no_root_squash,secure"
50
51# RAID Configuration - Manual Management
52# Note: RAID arrays assumed to be manually configured and mounted
53nas_raid_enabled: false # Disable automatic RAID management
54nas_raid_monitoring: true # Keep monitoring enabled
55nas_mdadm_config_file: "/etc/mdadm/mdadm.conf"
56
57# Storage Configuration
58nas_storage_base: "/mnt/rstorage" # Base mount point for manual RAID5
59
60# Network Configuration
61# Note: Bonding is managed externally via netplan (4x 2.5G interfaces -> bond0 -> br0)
62nas_network_bonding_enabled: false # Managed by netplan, not this role
63nas_network_interface: "br0" # Your bridge interface
64nas_network_ip: "192.168.34.200"
65nas_network_subnet: "192.168.34.0/24"
66
67# Storage Subdirectories (created under nas_storage_base)
68nas_storage_directories: []
69 # Example subdirectories:
70 # - "/mnt/rstorage/shared"
71 # - "/mnt/rstorage/media"
72 # - "/mnt/rstorage/backups"
73
74# Performance Tuning
75nas_performance_tuning_enabled: true
76nas_tcp_window_scaling: true
77nas_tcp_congestion_control: "bbr"
78nas_sysctl_settings:
79 # Network performance
80 net.core.rmem_default: 262144
81 net.core.rmem_max: 16777216
82 net.core.wmem_default: 262144
83 net.core.wmem_max: 16777216
84 net.ipv4.tcp_rmem: "4096 87380 16777216"
85 net.ipv4.tcp_wmem: "4096 65536 16777216"
86 net.core.netdev_max_backlog: 5000
87 # Filesystem performance
88 vm.dirty_background_ratio: 5
89 vm.dirty_ratio: 10
90 vm.vfs_cache_pressure: 50
91
92# Service Configuration
93nas_services:
94 - nfs-kernel-server
95 - rpcbind
96
97# Package Installation
98nas_install_packages:
99 - nfs-kernel-server
100 - nfs-common
101 - mdadm
102 - smartmontools
103 - hdparm
104 - iotop
105 - htop
106
107# Monitoring and Alerting
108nas_monitoring_enabled: true
109nas_smartmontools_enabled: true
110nas_email_notifications: "" # Email address for RAID alerts
111
112# Security Settings
113nas_nfs_secure_ports: true
114
115# Runner Services Integration
116nas_enable_runner_exports: false # Enable when deploying runner services
117
118# Backup Integration
119nas_backup_integration: false
120nas_backup_paths: []
121 # Example backup paths:
122 # - "/mnt/rstorage/critical"
123 # - "/etc/exports"
124 # - "/etc/mdadm/mdadm.conf"
125
126# Logging
127nas_log_level: "info"
128nas_log_file: "/var/log/nas-role.log"
129