Как я могу переключиться с прослушивающих щупалец на опрос щупалец в Octopus Deploy? - PullRequest
0 голосов
/ 11 февраля 2020

Похоже, что установка гибридного облака - это путь, по которому идут многие компании. Обычная конфигурация - Octopus Deploy работает на локальной виртуальной машине. Octopus Deploy развертывается на локальных виртуальных машинах, а также на виртуальных машинах, работающих в Azure. Экземпляр Octopus Deploy будет перенесен на виртуальную машину, работающую в Azure. Это часть нашей общей стратегии по переносу большего количества наших локальных виртуальных машин на Azure.

. Это важный момент: корпоративный брандмауэр настроен так, чтобы разрешать подключения только к Azure. Локальные виртуальные машины без проблем подключаются к Azure. Но Azure виртуальные машины не могут подключаться к локальным виртуальным машинам. Все локальные виртуальные машины используют прослушивающие щупальца . Можно ли переключиться на опрашивающие щупальца . Это может быть автоматизировано?

1 Ответ

1 голос
/ 11 февраля 2020

После создания экземпляра щупальца режим связи (прослушивание или опрос) не может быть изменен. Что вам нужно будет сделать, это создать новый экземпляр. Это один из случаев, когда новая функция Runbooks пригодится.

Обратите внимание: Предполагается, что вы уже переместили свой экземпляр Octopus Deploy на Azure.

У вас будет две книги запусков. Первая книга запусков будет:

  1. Используйте шаг запуска сценария на существующем щупальце для создания нового экземпляра опрашивающего щупальца.

Вторая книга запусков будет:

  1. Используйте шаг запуска сценария для нового щупальца опроса, чтобы отключить регистрацию для старых щупалец для прослушивания.
  2. Пауза для ручного вмешательства при тестировании некоторых развертываний для новых экземпляров щупальца.
  3. Используйте шаг запуска сценария на новом щупальце опроса, чтобы удалить старые экземпляры прослушивающих щупальцев.

Сначала давайте используем консоль сценария для создания опрашивающих щупалец. Пара замечаний: - Когда вы регистрируете новые щупальца в Octopus Deploy, вам нужно будет указать имя. Я предлагаю вам использовать что-то легко запомнить. Если ваши текущие прослушивающие щупальца зарегистрированы как [MachineName], то используйте [MachineName] -Polling.
- В дополнение к предоставлению ролей развертывания, также добавьте «PollingTentacle» в качестве роли, которая упростит для будущих запусков с Консоль сценария.

$OldMachineName = $OctopusParameters["Octopus.Machine.Name"]
$Environment = $OctopusParameters["Octopus.Environment.Name"]
$Roles = $OctopusParameters["Octopus.Machine.Roles"]
$APIKey = #Your API Key
$Server = #Your Server
$NewMachineName = "$OldMachineName-Polling"

Set-Location "C:\Program Files\Octopus Deploy\Tentacle"

$baseArgs = @("register-with","--instance=Polling","--Name=$NewMachineName","--server=$Server","--apiKey=$octopusApiKey","--comms-style=TentacleActive","--server-comms-port=10943","--environment=$Environment")

$roleList = $roles -split ","
foreach ($role in $roleList) {
    $baseArgs += "--role=$role"
}

$baseArgs += "--console"

& .\Tentacle.exe create-instance --instance "Polling" --config "C:\Octopus\Tentacle.config" --console
& .\Tentacle.exe new-certificate --instance "Polling" --if-blank --console
& .\Tentacle.exe configure --instance "Polling" --reset-trust --console
& .\Tentacle.exe configure --instance "Polling" --home "C:\Octopus\Polling" --app "C:\Octopus\Applications\Polling" --noListen "True" --console
& .\Tentacle.exe $baseArgs 
& .\Tentacle.exe service --instance "Polling" --install --start --console

Далее, используя API, отключите старые машины. Именно здесь облегчается работа с ролью "PollingTentacles" и регистрацией машины, установленной на [MachineName] -Polling. Этот сценарий отключит более старую цель.

###CONFIG###
$OctopusURL = #Octopus Server root URL
$APIKey = #Octopus API Key
$NewMachineName = $OctopusParameters["Octopus.Machine.Name"]

$machineName = $NewMachineName -replace "-Polling", ""

###PROCESS###
$header = @{ "X-Octopus-ApiKey" = $APIKey }

#Getting all machines
$allmachines = Invoke-RestMethod $OctopusURL/api/machines/all -Headers $header

#Filtering machine by name
$machine = $allmachines | ?{$_.name -eq $machineName}

#Setting the "IsDisabled" property
$machine.IsDisabled = $true #Set to $false to disable the machine

#Converting $machine into a JSON blob to PUT is back to the server
$body = $machine | ConvertTo-Json -Depth 4

#Pushing the modified machine to the userver
Invoke-RestMethod ($OctopusURL + $machine.Links.Self) -Method Put -Body $body -Headers $header

Теперь, когда щупальца опроса работают, а старые щупальца отключены, запустите некоторые тестовые развертывания. Все должно продолжать работать как есть.

Наконец, вам нужно использовать консоль сценария для отмены регистрации и удаления старого щупальца.

cd "C:\Program Files\Octopus Deploy\Tentacle"

Tentacle.exe deregister-from --instance "Tentacle" --server "http://YOUR_OCTOPUS" --apiKey "API-YOUR_API_KEY" --multiple
Tentacle.exe delete-instance --instance "Tentacle"

Для получения дополнительной информации о командной строке, пожалуйста, обратитесь к нашей документации .

Если это ставит вас за пределы вашей лицензии, пожалуйста, свяжитесь с support@octopus.com, объясните, что вы пытаетесь сделать, и мы предоставим вам временная лицензия.

...