legacy/AzureImageBuilder/demoGalleryImageFromMarketPlace.ps1 (77 lines of code) (raw):
. .\create-Shared-Custom-Image.ps1
. .\check-Image-Build-Status.ps1
. .\create-Infrastructure.ps1
$subscriptionName = "MySubscription"
# location of the Shared Image Gallery
$region = "northeurope"
$ResourceGroupName = "SharedImages"
$galleryName = "CorpImageGalleryEMEA"
$Publisher = "KimmoDemoCorp"
$Offer = "SAP_App_Servers"
#To get a unique SKU name
$postFix = (Get-Random -Maximum 1000).ToString()
$SKU = "SUSE" + $postFix
#Need the double quotes if there are more than one Additional Region
$additionalRegion = "westeurope"",""uksouth"
# name of the image definition to be created, e.g. ProdImages
$imageDefName = "NETWEAVER2"
$templateFileName = "SLESNetWeaverServerImageFromMarketPlace.json"
$OsType = "Linux"
$VersionName = "1.0.0"
if (!(Test-Path $templateFileName -PathType Leaf)) {
Write-Error "The ARM template '" $templateFileName +"' could not be found"
exit
}
# select subscription
$Subscription = Get-AzSubscription -SubscriptionName $SubscriptionName
if (-Not $Subscription) {
Write-Host -ForegroundColor Red -BackgroundColor White "Sorry, it seems you are not connected to Azure or don't have access to the subscription. Please use Connect-AzAccount to connect."
exit
}
$foo = Select-AzSubscription -Subscription $SubscriptionName
#Check for the infrastructure
$azg = Get-AzGallery -ResourceGroupName $ResourceGroupName -Name $GalleryName -ErrorAction SilentlyContinue
if (!$azg) {
New-AIBInfrastructure -Region $region -ResourceGroupName $ResourceGroupName -GalleryName $galleryName
}
$res = Get-AzResource -Name $imageDefName -ResourceType "Microsoft.VirtualMachineImages/imageTemplates" -ErrorAction SilentlyContinue
if ($res) {
$message = "Resource '" + $imageDefName + "' of type 'Microsoft.VirtualMachineImages/imageTemplates' already exists. Update/Upgrade of image templates is currently not supported. Please change the name of the template you are using or remove it."
Write-Host $message
}
$VerbosePreference = "Continue"
$succeeded = $true
Write-Host "Starting the image creation"
if ($VerbosePreference -eq "Continue") {
$succeeded = New-SharedCustomImage -Region $region -ResourceGroupName $ResourceGroupName -GalleryName $galleryName -ImageDefinitionName $imageDefName -OsType $OsType -TemplateFileName $templateFileName -AdditionalRegion $additionalRegion -Publisher $Publisher -Offer $Offer -SKU $SKU -VersionName $VersionName -Verbose
}
else {
$succeeded = New-SharedCustomImage -Region $region -ResourceGroupName $ResourceGroupName -GalleryName $galleryName -ImageDefinitionName $imageDefName -OsType $OsType -TemplateFileName $templateFileName -AdditionalRegion $additionalRegion -Publisher $Publisher -Offer $Offer -SKU $SKU -VersionName $VersionName
}
$status = ""
if ($succeeded) {
$cont = $true
Write-Host "Checking the build process"
while ($cont) {
if ($VerbosePreference -eq "Continue") {
$status = Get-ImageBuildStatus -galleryName $galleryName -imageDefNameToCheck $imageDefName -Verbose
}
else {
$status = Get-ImageBuildStatus -galleryName $galleryName -imageDefNameToCheck $imageDefName
}
Write-Verbose $status
If ("Running" -eq $status) {
Write-Host "Sleeping for 2 minutes"
Start-Sleep -s 120
}
else {
$cont = $false
}
}
}
if ("Succeeded" -eq $status) {
$image = Get-AzGalleryImageVersion -ResourceGroupName $ResourceGroupName -GalleryName $galleryName -GalleryImageDefinitionName $imageDefName -GalleryImageVersionName $VersionName -ErrorAction SilentlyContinue
if ($null -ne $image) {
Write-Host "Template ID to be used for deployment: " $image.Id
}
}