我正在嘗試獲取 Vsphere 模板串列并將它們用作 Jenkins 中的引數。我嘗試使用函式并運行 PowerShell 命令。
def findtemplates() {
def $vmTemplate = "powershell -command 'Connect-VIServer -server server -User user -Password pass -Force; Get-Template | select name'"
return $vmTemplate
}
在引數部分:
parameters {
choice(name: 'Template', choices: findtemplates(), description: 'test')
}
但不起作用。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
使用引數呼叫powershell步驟(或pwshPS 7 )returnStdout: true以獲取 PowerShell 命令的輸出:
def findtemplates() {
return powershell( returnStdout: true, script: '''
Connect-VIServer -server server -User user -Password pass -Force
Get-Template | select name'
''')
}
請注意使用'''將多行腳本傳遞給powershell步驟。
我猜您只是為了簡潔起見硬編碼了用戶名和密碼。更完整的示例如下所示:
def findtemplates() {
withCredentials([ usernamePassword( credentialsId: 'ReplaceWithYourCredentialsId',
usernameVariable: 'VIServerUser',
passwordVariable: 'VIServerPassword') ]) {
return powershell( returnStdout: true, script: '''
Connect-VIServer -server server -User $env:VIServerUser -Password $env:VIServerPassword -Force
Get-Template | select name'
''')
}
}
請注意出于安全原因使用環境變數而不是 Groovy 字串插值(請參閱字串插值)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/379611.html
