簡體   English   中英

在部署 arm 模板之前檢查 Azure VM 名稱是否存在

[英]Check if Azure VM name exists before deploying arm template

我正在嘗試使用 Azure powershell 來獲取 VM 名稱(例如: demovm01 ,其中 VM 名稱是demovm並且后綴是01

如果01已經存在,我想獲取輸出並自動附加一個新的后綴02

獲取虛擬機名稱的示例腳本:

$getvm = Get-AzVM -Name "$vmname" -ResourceGroupName "eodemofunction" -ErrorVariable notPresent -ErrorAction SilentlyContinue
if ($notPresent) {
    Write-Output "VM not found. Creating now"
}
else {
    Write-Output "VM exists."
    return $true    
}

我希望能夠將這個新的 vm 名稱注入到 arm deploy 以進行部署

這應該做。 將增加直到找不到 VM 並使用簡單的-replace注入到您的 json 文件。 還將返回 Azure 中已存在的所有 thr VM 值

$i=1
$vmname_base = "vmserver"
$VMexists = @()

do {
    #invert int value to double digit string
    $int = $i.tostring('00')
    $getvm = Get-AzVM -Name "$vmname_base$int" -ResourceGroupName "eodemofunction" -ErrorVariable notPresent -ErrorAction SilentlyContinue
    if ($notPresent) {
        Write-Output "VM not found. Creating now"
        Write-Output "VM created name is $vmname_base$int"
        #Set condition to end do while loop
        VMcreated = "true"
        #commands to inject to json here. I always find replace method the easiest
        $JSON = Get-Content azuredeploy.parameters.json
        $JSON = $JSON -replace ("Servername","$vmname_base$int")
        $JSON | Out-File azuredeploy.parameters.json -Force
    }
    else {
        Write-Output "VMexists."
        # Add existing VM to array
        $VMexists += "$vmname_base$int"
        # Increment version, ie. 01 to 02 to 03 etc
        $i++
    }       
} while ($VMcreated -ne "true")

return $VMexists

您的命令可能如下所示, $newvmname就是您想要的。

$vmname = "demovm01"
$getvm = Get-AzVM -Name "$vmname" -ResourceGroupName "<group name>" -ErrorVariable notPresent -ErrorAction SilentlyContinue

if ($notPresent) {
    Write-Output "VM not found. Creating now"
}
else {
    Write-Output "VM exists."  

    if($getvm.Name -like '*01'){
        $newvmname = $vmname.TrimEnd('01')+"02"
    } 
    Write-Output $newvmname
  return $true
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM