Я развертываю пакет, содержащий файл deploy.ps1. Как вы уже знаете, Octopus running this script on deploying по умолчанию, я хочу, чтобы это не происходило, и вместо этого запускайте собственный скрипт.Предотвращение запуска Octopus сценария развертывания
ответ
Если у вас есть требование, как это, то лучше, чтобы переместить PowerShell, который запускает службу на отдельную стадию сборки, а затем помечать щупальца, которые вы хотите, что скрипт для запуска на.
В вашем шаге развертывания для службы, установите режим запуска в «Manual»
Тогда есть шаг, который запускает службу, и объем, что сценарий к окружающей среде/серверов, которые вы хотите автоматического запуска
Код для ступенчатого шаблона Я использую здесь
{
"Id": "ActionTemplates-1",
"Name": "Enable and start service",
"Description": null,
"ActionType": "Octopus.Script",
"Version": 8,
"Properties": {
"Octopus.Action.Package.NuGetFeedId": "feeds-builtin",
"Octopus.Action.Script.Syntax": "PowerShell",
"Octopus.Action.Script.ScriptSource": "Inline",
"Octopus.Action.RunOnServer": "false",
"Octopus.Action.Script.ScriptBody": "$serviceName = $OctopusParameters[\"ServiceName\"]\n\nwrite-host \"the service is: \" $serviceName\n\n& \"sc.exe\" config $serviceName start= delayed-auto\n& \"sc.exe\" start $serviceName\n\n"
},
"Parameters": [
{
"Name": "ServiceName",
"Label": "Service Name",
"HelpText": null,
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
}
],
"$Meta": {
"ExportedAt": "2016-10-10T10:21:21.980Z",
"OctopusVersion": "3.3.2",
"Type": "ActionTemplate"
}
}
Вы можете изменить шаблон шага, как он будет установить услугу «Автоматический - Delayed», а затем запустить службу.
Можете ли вы переместить сценарий в подпапку?
These scripts must be located in the root of your package
http://docs.octopusdeploy.com/display/OD/Custom+scripts
В качестве альтернативы - не включают в свой deploy.ps1
скрипт в пакете развертывания, если он никогда не должен быть развернут.
Зачем вам это нужно и можете ли вы переименовать файл сценария? – Kye
В моей ситуации Deploy.ps1 запускает все службы в моем пакете по цели развертывания. Это поведение по умолчанию одинаково для большинства целевых серверов, кроме одного, где нужно только запустить одну из служб. Вместо этого я хочу использовать собственный скрипт. – acai
Не было бы более чистым подходом к удалению скрипта 'deploy.ps1' из этого конкретного проекта и, скорее, запустить сценарий powershell развертывания на самом этапе Octopus? –