Documentation: azurelocal.cloud | Solutions: Azure Local Solutions
⚠️ Under Active Development — This repository is a work in progress. Scripts, templates, and automation are not guaranteed to work at this time. Use at your own risk and expect breaking changes.
Automation and Infrastructure-as-Code for deploying a Scale Out File Server (SOFS) on Azure Local to host FSLogix profile containers for Azure Virtual Desktop (AVD) session hosts.
Three Windows Server VMs form a guest Storage Spaces Direct cluster on Azure Local, presenting a Scale-Out File Server role with continuously available SMB shares for FSLogix profile containers. Anti-affinity rules keep each VM on a separate physical node for host-level resiliency.
For the AVD session-host side of the deployment, see the sister repository: AzureLocal/azurelocal-avd.
Full documentation is published via MkDocs:
| Section | Description |
|---|---|
| Architecture | Design decisions, storage layout, capacity planning, AVD considerations, worked scenarios |
| Deployment | Prerequisites, variables, tool-specific guides (Terraform, Bicep, ARM, PowerShell, Ansible), validation |
| Configuration | FSLogix registry settings, NTFS/SMB permissions, antivirus exclusions |
| Operations | Troubleshooting, CI/CD pipelines, runner setup, secrets management |
azurelocal-sofs-fslogix/
├── src/ # Automation code by tool
│ ├── terraform/ # Terraform (azapi + azurerm) — Untested
│ ├── bicep/ # Bicep (subscription-scope) — In Progress
│ ├── arm/ # ARM JSON templates — Untested
│ ├── powershell/ # PowerShell scripts (all phases) — Tested
│ └── ansible/ # Ansible playbooks (WinRM/Kerberos) — Untested
├── config/ # Central variables.yml — single source of truth
├── docs/ # Documentation site (MkDocs Material)
│ ├── architecture/ # Design decisions & capacity planning
│ ├── deployment/ # Prerequisites, tool guides, validation
│ ├── configuration/ # FSLogix, permissions, antivirus
│ ├── operations/ # Troubleshooting, CI/CD, secrets
│ └── reference/ # Deployment guide, variables reference
├── tests/ # Deployment validation scripts
├── scripts/ # Standalone utilities
└── examples/ # Pipeline examples & sample configs
cp config/variables.example.yml config/variables.yml
# Edit config/variables.yml with your environment values| Tool | Location | Status | Guide |
|---|---|---|---|
| Terraform | src/terraform/ |
Untested | Terraform Guide |
| Bicep | src/bicep/ |
In Progress | Bicep Guide |
| ARM | src/arm/ |
Untested | ARM Guide |
| PowerShell | src/powershell/ |
Tested | PowerShell Guide |
| Ansible | src/ansible/ |
Untested | Ansible Guide |
.\src\powershell\Configure-SOFS-Cluster.ps1 -ConfigFile .\config\variables.yml.\tests\Test-SOFSDeployment.ps1 -SOFSAccessPoint "FSLogixSOFS" -ShareNames @("FSLogix")- An existing Azure Local cluster registered with Azure Arc
- Azure subscription with Contributor RBAC
- Windows Server 2025 Datacenter: Azure Edition Core (Gen2) gallery image
- AD domain with permissions to create computer objects
- For full prerequisites, see Prerequisites
See CONTRIBUTING.md for coding standards, branch strategy, and PR guidelines.
| Repository | Description |
|---|---|
| AzureLocal/azurelocal-avd | Azure Virtual Desktop session host deployment on Azure Local |
See LICENSE for details.