Public/invoke-AzOSDAzureConfig.ps1
function Invoke-AzOSDAzureConfig { [CmdletBinding()] param ( [Parameter(ParameterSetName = 'Bicep')] [ValidateSet('eastasia', 'southeastasia', "centralus",'eastus','eastus2','westus','northcentralus','southcentralus','northeurope','westeurope','japanwest','japaneast','brazilsouth','australiaeast','australiasoutheast','southindia','centralindia','westindia','canadacentral','canadaeast','uksouth','ukwest','westcentralus','germanywestcentral','norwaywest','norwayeast','brazilsoutheast','westus3','swedencentral')] $Location, [Parameter(ParameterSetName = 'Bicep')] [string]$ResourceGroupName, [Parameter(ParameterSetName = 'Bicep')] [string]$AzOSDUserNameStart, [Parameter(ParameterSetName = 'Terraform')] [Bool]$UseTerraform = $true ) begin { $initialFolder = Get-Location $OSDCLOUDWorkspace = Set-Location C:\OSDCloud Install-azOSDIacTools if( $PSCmdlet.ParameterSetName -eq 'Bicep'){ $global:Connect=Connect-AzAccount -UseDeviceAuthentication -ErrorAction Stop } elseif ( $PSCmdlet.ParameterSetName -eq 'Terraform') { $global:Connect = az login --use-device-code } } process { Write-Host "============================================================" -ForegroundColor Gray Write-Host "Starting Infrastructure As code for OSDCloud" -ForegroundColor Green Write-Host "============================================================" -ForegroundColor Gray write-host "" if( $PSCmdlet.ParameterSetName -eq 'Bicep'){ Write-Host "Provider: " -ForegroundColor Gray -NoNewline Write-Host "Bicep" -ForegroundColor Green $global:AzOSDressourceGroup=New-AzResourceGroup -Name $ResourceGroupName -Location $Location $global:AzOSDressourceGroupDeployment=New-AzResourceGroupDeployment -Name azOSDCloud -ResourceGroupName $ResourceGroupName -TemplateFile .\bicep\azosdbicep.bicep -location $Location Write-Host "Status: " -ForegroundColor Gray -NoNewline Write-Host "Finished" -ForegroundColor Green } elseif ( $PSCmdlet.ParameterSetName -eq 'Terraform') { Write-Host "Provider: " -ForegroundColor Gray -NoNewline Write-Host "Terraform" -ForegroundColor Green Set-Location .\terraform terraform init terraform apply -auto-approve Write-Host "Status: " -ForegroundColor Gray -NoNewline Write-Host "Finished" -ForegroundColor Green } } end { Write-Host "============================================================" -ForegroundColor Gray Write-Host "End Infrastructure As code for OSDCloud" -ForegroundColor Green Write-Host "Logout from Azure" -ForegroundColor Green Write-Host "============================================================" -ForegroundColor Gray write-host "" if( $PSCmdlet.ParameterSetName -eq 'Bicep'){ Logout-AzAccount | out-null } elseif ( $PSCmdlet.ParameterSetName -eq 'Terraform') { az logout } set-location $initialFolder } } |