如何在 Jenkins 管道代码中使用 vSphere Cloud Plugin?
How can I use vSphere Cloud Plugin inside Jenkins pipeline code?
我在工作中有一个设置,在执行特定的 jenkins 作业之前手动重启 vSphere 主机,作为办公室的菜鸟,我通过添加额外的构建步骤来自动化这个过程,以在 https://wiki.jenkins-ci.org/display/JENKINS/vSphere+Cloud+Plugin! (vSphere 云插件)。
我现在想将其集成为管道代码,请指教。
我已经检查过这个插件是 Pipeline 兼容的。
我目前通过远程触发配置有 vSphere 云插件的作业来触发管道中的 vSphere 主机重启。
pipeline {
agent any
stages {
stage('Restarting vSphere') {
steps {
script {
sh "curl -v 'http://someserver.com/job/Vivin/job/executor_configurator/buildWithParameters?Host=build-114&token=bonkers'"
}
}
}
stage('Setting Executors') {
steps {
script {
def jenkins = Jenkins.getInstance()
jenkins.getNodes().each {
if (it.displayName == 'brewery-133') {
echo 'brewery-133'
it.setNumExecutors(8)
}
}
}
}
}
}
}
我想直接在流水线代码中集成vSphere云插件,请帮我集成。
pipeline {
agent any
stages {
stage('Restarting vSphere') {
steps {
vSphere cloud plugin code that is requested
}
}
}
stage('Setting Executors') {
steps {
script {
def jenkins = Jenkins.getInstance()
jenkins.getNodes().each {
if (it.displayName == 'brewery-133') {
echo 'brewery-133'
it.setNumExecutors(8)
}
}
}
}
}
}
}
好吧,借助 Jenkins 管道作业菜单中的 'pipeline-syntax' 功能,我自己找到了解决方案。
'Pipeline-syntax' 功能页面包含通过 Jenkins 服务器已安装插件的 API 提供的所有可能参数的语法,我们可以使用它根据需要生成或开发语法.
http://<jenkins server url>/job/<pipeline job name>/pipeline-syntax/
我的 Jenkinsfile(管道)现在看起来像这样
pipeline {
agent any
stages {
stage('Restarting vSphere') {
steps {
vSphere buildStep: [$class: 'PowerOff', evenIfSuspended: false, ignoreIfNotExists: false, shutdownGracefully: true, vm: 'brewery-133'], serverName: 'vspherecentral'
vSphere buildStep: [$class: 'PowerOn', timeoutInSeconds: 180, vm: 'brewery-133'], serverName: 'vspherecentral'
}
}
stage('Setting Executors') {
steps {
script {
def jenkins = Jenkins.getInstance()
jenkins.getNodes().each {
if (it.displayName == 'brewery-133') {
echo 'brewery-133'
it.setNumExecutors(1)
}
}
}
}
}
}
}
我在工作中有一个设置,在执行特定的 jenkins 作业之前手动重启 vSphere 主机,作为办公室的菜鸟,我通过添加额外的构建步骤来自动化这个过程,以在 https://wiki.jenkins-ci.org/display/JENKINS/vSphere+Cloud+Plugin! (vSphere 云插件)。 我现在想将其集成为管道代码,请指教。 我已经检查过这个插件是 Pipeline 兼容的。
我目前通过远程触发配置有 vSphere 云插件的作业来触发管道中的 vSphere 主机重启。
pipeline {
agent any
stages {
stage('Restarting vSphere') {
steps {
script {
sh "curl -v 'http://someserver.com/job/Vivin/job/executor_configurator/buildWithParameters?Host=build-114&token=bonkers'"
}
}
}
stage('Setting Executors') {
steps {
script {
def jenkins = Jenkins.getInstance()
jenkins.getNodes().each {
if (it.displayName == 'brewery-133') {
echo 'brewery-133'
it.setNumExecutors(8)
}
}
}
}
}
}
}
我想直接在流水线代码中集成vSphere云插件,请帮我集成。
pipeline {
agent any
stages {
stage('Restarting vSphere') {
steps {
vSphere cloud plugin code that is requested
}
}
}
stage('Setting Executors') {
steps {
script {
def jenkins = Jenkins.getInstance()
jenkins.getNodes().each {
if (it.displayName == 'brewery-133') {
echo 'brewery-133'
it.setNumExecutors(8)
}
}
}
}
}
}
}
好吧,借助 Jenkins 管道作业菜单中的 'pipeline-syntax' 功能,我自己找到了解决方案。
'Pipeline-syntax' 功能页面包含通过 Jenkins 服务器已安装插件的 API 提供的所有可能参数的语法,我们可以使用它根据需要生成或开发语法.
http://<jenkins server url>/job/<pipeline job name>/pipeline-syntax/
我的 Jenkinsfile(管道)现在看起来像这样
pipeline {
agent any
stages {
stage('Restarting vSphere') {
steps {
vSphere buildStep: [$class: 'PowerOff', evenIfSuspended: false, ignoreIfNotExists: false, shutdownGracefully: true, vm: 'brewery-133'], serverName: 'vspherecentral'
vSphere buildStep: [$class: 'PowerOn', timeoutInSeconds: 180, vm: 'brewery-133'], serverName: 'vspherecentral'
}
}
stage('Setting Executors') {
steps {
script {
def jenkins = Jenkins.getInstance()
jenkins.getNodes().each {
if (it.displayName == 'brewery-133') {
echo 'brewery-133'
it.setNumExecutors(1)
}
}
}
}
}
}
}