Azure.ps1
function Initialize-Azure { # Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted # Install NuGet -MinimumVersion 2.8.5.201 if ((Get-PackageProvider -Name NuGet).version -lt 2.8.5.201 ) { Write-Host("Installing NuGet Package Provider ...") Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 } Install-AzureModule Az.Accounts Install-AzureModule Az.Resources Install-AzureModule Az.Network } function Install-AzureModule { param( [string] $Name ) $module = Get-InstalledModule $Name -errorAction SilentlyContinue if (-Not($module)) { Write-Host "Intalling module ${Name} ..." Install-Module -Name $Name -Scope CurrentUser -AllowClobber -Repository PSGallery } #if (-Not (Get-Command Get-AzPublicIpAddress -errorAction SilentlyContinue)) { } function New-AzureTemplate { "<xml></xml>" } function Connect-AzureAccount { if ( -not (Get-AzContext -errorAction SilentlyContinue)) { Write-Host("Connecting Azure account ...") Connect-AzAccount } if (!(Get-AzAccessToken -ErrorAction SilentlyContinue)) { Write-Host("Azure credentials have expired, connecting Azure account ...") Connect-AzAccount } } function New-Azure { param( [Parameter(mandatory = $True)] [string] $Name, [string] $Location = "westeurope" ) Initialize-Azure Connect-AzureAccount if (-not(Get-AzResourceGroup -Name $Name -ErrorAction SilentlyContinue)) { Write-Host("Creating resource group ${Name}") New-AzResourceGroup -Name $Name -Location $Location } New-AzResourceGroupDeployment -ResourceGroupName $Name -TemplateFile (Join-Path $PSScriptRoot Azure.json) Write-Host "azure" } function Remove-Azure { param( [Parameter(mandatory = $True)] [string] $Name ) Remove-AzResourceGroup -Name $Name } |