azure Обновление управления Post-Script для добавления виртуальных машин в бэкэнд Loadbalancer после удаления - PullRequest
0 голосов
/ 17 января 2020

Мне нужно использовать Azure управление обновлениями, и я столкнулся с ситуацией, когда мне нужно использовать Pre-Script / Post-Script для обеспечения высокой доступности

Real Scénario:

Некоторые виртуальные машины находятся за бэкэнд-пулами Loadbalancer. Каждый BackEnd имеет 2 виртуальные машины, которые выполняют одну и ту же роль, для обеспечения высокой доступности я должен:

[PreScript:remove one VM from LB Backend]==>[patch it]==>[PostScript:return it back to the right original LB Backend]

Итак, процесс управления обновлениями выглядит следующим образом:

Prescript==>OS-patch==>Postscript

До сих пор я готовлю рабочий PreScript

Теперь задача состоит в том, чтобы вернуть каждую виртуальную машину нужному LoadBalancer, я могу вернуть одну виртуальную машину, но при зацикливании на всех виртуальных машинах скрипт завершается неудачно, Я думал о том, чтобы извлечь отчет о мониторинге в файл CSV, хранящийся в Azure Storage, но я не смог связать следующую информацию в таблице форматов (LoadBalancerName, BackendName, VM1, VM2, ...),

Поэтому я спрашиваю, был ли у кого-то такой же опыт или какие-либо предложения?

=========================== ========== Bad Script =========================================== ==

#$lbs = Get-AzLoadBalancer 
#foreach($lb in $lbs){ 
#       #ForEach-Object {
       $lbname = ($lb).Name
       $bename = ($lb).BackendAddressPools.Name
       #$nic = $be_ids.Substring($be_ids.ToString().LastIndexOf('/', '+8'))
       } 
       foreach($be in $bename){ 
       $beconf = Get-AzLoadBalancerBackendAddressPoolConfig -Name $be -LoadBalancer $lb
       $be_ids = ($beconf).BackendAddressPools.BackendIpConfigurations.Id
       $nic = $be_ids.substring($be_ids.ToString().LastIndexOf('/', 8)+1)
       #$nic = $be_ids.Substring($be_ids.ToString().LastIndexOf('/', 8)+1)
       #$nic = $be_ids.ToString.Split('/')[+8]

}
Write-Output $be_ids $nic $beconf  $lbname, $bename,  | Sort-Object $lbname | FT$lbs = Get-AzLoadBalancer 
foreach($lb in $lbs){ 
       #ForEach-Object {
       $lbname = ($lb).Name
       $bename = ($lb).BackendAddressPools.Name
       #$nic = $be_ids.Substring($be_ids.ToString().LastIndexOf('/', '+8'))
       } 
       foreach($be in $bename){ 
 #      $beconf = Get-AzLoadBalancerBackendAddressPoolConfig -Name $be -LoadBalancer $lb
#       $be_ids = ($beconf).BackendAddressPools.BackendIpConfigurations.Id
 #     $nic = $be_ids.substring($be_ids.ToString().LastIndexOf('/', 8)+1)
 #     #$nic = $be_ids.Substring($be_ids.ToString().LastIndexOf('/', 8)+1)
 #      #$nic = $be_ids.ToString.Split('/')[+8]
#       
#}
#Write-Output $be_ids $nic $beconf  $lbname, $bename,  | Sort-Object $lbname | FT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...