Files
runner-images/images.CI/build-image.ps1
T

63 lines
2.5 KiB
PowerShell
Raw Normal View History

2020-02-14 19:09:09 +03:00
param(
[String] [Parameter (Mandatory=$true)] $Image,
[String] [Parameter (Mandatory=$true)] $ClientId,
[String] [Parameter (Mandatory=$true)] $ClientSecret,
[String] [Parameter (Mandatory=$true)] $GitHubFeedToken,
[String] [Parameter (Mandatory=$true)] $ResourcesNamePrefix,
[String] [Parameter (Mandatory=$true)] $Location,
[String] [Parameter (Mandatory=$true)] $ResourceGroup,
[String] [Parameter (Mandatory=$true)] $StorageAccount,
[String] [Parameter (Mandatory=$true)] $SubscriptionId,
[String] [Parameter (Mandatory=$true)] $TenantId,
[String] [Parameter (Mandatory=$true)] $VirtualNetworkName,
[String] [Parameter (Mandatory=$true)] $VirtualNetworkRG,
[String] [Parameter (Mandatory=$true)] $VirtualNetworkSubnet
)
$TemplatePath = (Get-ChildItem -Path "images" -Include "$Image.json" -Recurse -Depth 2).FullName
2020-02-17 17:31:08 +03:00
if (-not $TemplatePath)
2020-02-17 17:25:55 +03:00
{
Write-Error "'-Image' parameter is not valid. You have to specify correct image type."
exit 1
}
2020-02-14 19:09:09 +03:00
$TempResourceGroupName = "${ResourcesNamePrefix}_${Image}"
$InstallPassword = [System.GUID]::NewGuid().ToString().ToUpper()
2020-02-17 17:25:55 +03:00
packer validate -syntax-only $TemplatePath
2020-02-18 17:09:48 +03:00
$SensitiveData = @(
'OSType',
'StorageAccountLocation',
'OSDiskUri',
'OSDiskUriReadOnlySas',
'TemplateUri',
'TemplateUriReadOnlySas',
': ->'
)
2020-02-18 16:50:11 +03:00
Write-Host "Show Packer Version"
packer --version
2020-02-14 19:09:09 +03:00
Write-Host "Build $Image VM"
packer build -var "capture_name_prefix=$ResourcesNamePrefix" `
-var "client_id=$ClientId" `
-var "client_secret=$ClientSecret" `
-var "install_password=$InstallPassword" `
-var "github_feed_token=$GitHubFeedToken" `
-var "location=$Location" `
-var "resource_group=$ResourceGroup" `
-var "storage_account=$StorageAccount" `
-var "subscription_id=$SubscriptionId" `
-var "temp_resource_group_name=$TempResourceGroupName" `
-var "tenant_id=$TenantId" `
-var "virtual_network_name=$VirtualNetworkName" `
-var "virtual_network_resource_group_name=$VirtualNetworkRG" `
-var "virtual_network_subnet_name=$VirtualNetworkSubnet" `
2020-02-18 16:50:11 +03:00
$TemplatePath `
| Where-Object {
#Filter sensitive data from Packer logs
$currentString = $_
2020-02-18 17:05:00 +03:00
$sensitiveString = $SensitiveData | Where-Object { $currentString -match $_ }
$sensitiveString -eq $null
2020-02-18 16:50:11 +03:00
}