-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
A: AzureDevOpsDscNative is a PowerShell Desired State Configuration (DSC) module that provides 50+ native DSC resources for managing Azure DevOps. It's a separate release from the original AzureDevOpsDsc, designed specifically for DSC v3 with native support for the dsc.exe command-line tool.
A:
-
AzureDevOpsDscNative: DSC v3 native resources, works with
dsc.exe, separate module name - AzureDevOpsDsc: PowerShell 5.1+ compatible, classic DSC, original module
Choose AzureDevOpsDscNative if you need DSC v3 native support; otherwise use AzureDevOpsDsc.
A:
- PowerShell 7.0+ (not 5.1)
- Windows, macOS, or Linux (PowerShell Core)
- Azure DevOps account with appropriate permissions
- Network access to dev.azure.com or your Azure DevOps Server
A:
Install-Module -Name AzureDevOpsDscNative -Repository PSGalleryVerify installation:
Get-DscResource -Module AzureDevOpsDscNativeA: The module is primarily designed for Azure DevOps Services (cloud), but may work with Azure DevOps Server (on-premises) with configuration adjustments.
A:
- Local/Desktop: Personal Access Token (PAT) or Azure CLI Token
- Azure VMs/Services: Managed Identity (recommended)
- CI/CD Pipelines: Service Principal or Workload Identity
- Cross-tenant: Service Principal
- High security: Certificate-based authentication
See Authentication Guide for details.
A: No, please don't! Hardcoding credentials is a security risk. Instead:
- Use Azure Key Vault
- Use Windows Credential Manager
- Use PowerShell SecretStore module
- Use environment variables
- Use managed identities
A:
- PAT tokens: Every 90 days (recommended expiration)
- Service Principal secrets: Every 6-12 months
- Certificates: Based on certificate validity (usually 1-2 years)
- Managed Identity: No rotation needed (Azure handles it)
A: The configuration will fail to apply. Solution:
- Create a new token/credential
- Update your configuration
- Reapply the configuration
- Test to verify it works
A: 50+ resources covering:
- Projects and teams
- Repositories and permissions
- Pipelines and environments
- Service connections and variables
- Artifact feeds
- Agent pools and infrastructure
- Settings and configurations
- Permissions and security
See Resources for complete list.
A: Most resources should work with Azure DevOps Server (on-premises), but:
- Adjust organization URL to your server URL
- Some cloud-only features may not work
- Test thoroughly before production use
A:
- Check Resources - it might exist under different name
- Check if similar resource can accomplish your goal
- File an issue on GitHub requesting the resource
- Consider using direct API calls via Script resource as workaround
A: Most resource properties can be updated. However:
- Some properties are immutable (can't be changed):
- Project SourceControlType (Git vs Tfvc)
- Project ProcessTemplate
- Some repository settings
- To change immutable properties, delete and recreate the resource
A: Best practices:
# Organize by environment
.\Config\
├── Dev\
├── Staging\
└── Production\
# Or by resource type
.\Config\
├── Projects\
├── Teams\
├── Pipelines\
└── Settings\
# Use configuration data
.\Config\
├── Configuration.ps1
├── Data\
│ ├── Dev.psd1
│ ├── Staging.psd1
│ └── Prod.psd1
└── Resources\
├── Projects.ps1
└── Teams.ps1A: DSC handles this automatically:
# Reapply to fix drift
Start-DscConfiguration -Path ./Config -Wait
# Monitor for drift
Get-DscConfigurationStatusA: Yes, use configuration data files:
Configuration Deploy {
param([hashtable]$ConfigurationData)
# Configuration uses $Node properties
}
$devData = Import-PowerShellDataFile ./Dev.psd1
$prodData = Import-PowerShellDataFile ./Prod.psd1
Deploy -ConfigurationData $devData
Deploy -ConfigurationData $prodDataA:
- Check Azure DevOps service status
- Reduce number of resources in single configuration
- Use parallel execution where possible
- Check for rate limiting (429 errors)
- Verify network connectivity
A: Practical limit depends on:
- Azure DevOps API rate limits
- Network bandwidth
- Your system resources
- Complexity of resources
Recommended: 50-100 resources per configuration, spread across multiple runs for large deployments.
A: It can, but:
- Increase timeout values
- Implement retry logic
- Use smaller configurations
- Monitor for partial failures
- Consider on-premises LCM servers
A: Common causes:
- Authentication failed - check credentials
- Resource doesn't exist - check project/group exists first
- Insufficient permissions - check user role
- Invalid property value - check syntax and valid values
- Network issue - check connectivity to Azure DevOps
See Troubleshooting Guide for detailed solutions.
A:
# Enable verbose output
Start-DscConfiguration -Path ./Config -Wait -Verbose
# Check DSC event log
Get-WinEvent -LogName 'DSC/Operational' |
Where-Object Level -le 3 |
Select-Object TimeCreated, Message
# Use Invoke-DscResource for single resource
Invoke-DscResource -Name 'AzDoProject' -Method Get `
-Property @{ProjectName='Test'} -VerboseA: Resource doesn't exist. Common causes:
- Wrong project/organization name
- Typo in resource name
- Resource deleted
- Insufficient permissions to view resource
A: Insufficient permissions. Solutions:
- Check user is in correct group
- Verify role/permissions assignment
- Check PAT scopes
- Verify service principal permissions
A: Yes, it works alongside other DSC resources and modules.
A: Yes, Azure Automation supports PowerShell DSC with compatible PowerShell version.
A: Yes! This is recommended:
git init
git add *.ps1 *.psd1 *.md
git commit -m "Initial configuration"A: Yes, use in Azure Pipelines:
- task: PowerShell@2
inputs:
targetType: inline
script: |
Install-Module AzureDevOpsDscNative
./Config.ps1
Start-DscConfiguration -Path ./Config -WaitA: MIT License - free to use, modify, and distribute with attribution.
A: Yes, MIT license allows commercial use.
A: No, AzureDevOpsDsc is free. Azure DevOps has free tier and paid plans depending on usage.
A:
- Report bugs on GitHub issues
- Submit pull requests with improvements
- Help with documentation
- Test in your environment and provide feedback
A: Yes! See Contributing Guidelines for details.
A: Create issue on GitHub with:
- Resource name
- Configuration code
- Error message
- Steps to reproduce
- PowerShell version
- Module version
A:
- Check this wiki for documentation
- Review Examples
- See Troubleshooting Guide
- Check Best Practices
- File issue on GitHub
A: Module itself is free with community support. For paid support, contact the DSC Community or your organization's support team.
A: The module is maintained by the DSC Community. Contributors and maintainers volunteer their time.
- Home - Overview
- Resources - Complete resource reference
- Examples - Practical scenarios
- Authentication - Auth methods
- BestPractices - Guidelines
- Troubleshooting - Problem solving
- GitHub Issues - Report issues