Chr*_*ris 7 jenkins jenkins-plugins jenkins-pipeline
我想从 Windows 上托管的 Jenkins SSH 到 linux 服务器并在 linux 机器上执行命令,我尝试通过 ssh 插件安装发布并测试了全局配置中的连接,它工作正常,我不知道下一步如何进行在管道中。任何帮助,将不胜感激。
小智 7
如果您正在寻找用于 Publish-Over-SSH 的声明性管道 (Jenkinsfile) 的语法(而不是我能找到的脚本化管道)。这最终对我有用。
pipeline{
agent any
environment {
RELEASENAME="yourProject-ci"
}
stages{
stage("Get the charts..."){
steps {checkout scm}
}
stage('SSH transfer') {
steps([$class: 'BapSshPromotionPublisherPlugin']) {
sshPublisher(
continueOnError: false, failOnError: true,
publishers: [
sshPublisherDesc(
configName: "kubernetes_master",
verbose: true,
transfers: [
sshTransfer(execCommand: "/bin/rm -rf /opt/deploy/helm"),
sshTransfer(sourceFiles: "helm/**",)
]
)
]
)
}
}
stage('Deploy Helm Scripts'){
steps([$class: 'BapSshPromotionPublisherPlugin']) {
sshPublisher(
continueOnError: false, failOnError: true,
publishers: [
sshPublisherDesc(
configName: "kubernetes_master",
verbose: true,
transfers: [
sshTransfer(execCommand: "cd /opt/deploy/helm;helm upgrade ${RELEASENAME} . --install"),
]
)
]
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我首先进行结账,然后将一些 Helm 图表从结账复制到我的 kubernetes master,然后运行图表。
configName: "kubernetes_master"是我在 Publish_over_ssh 插件配置部分(在“管理 Jenkins”>“配置系统”下找到)设置的内容,以便我可以引用它。它包括用户名、sshkey、目标主机名和目标的基本目录(我将其设置为 /opt/deploy)。
仅供参考 execCommand 不使用基目录...它假设您将使用完整路径。
希望有帮助。
编辑:我可能应该提到 sshPublisher 有比我使用的更多的选项。您可以在这里找到它们:https ://jenkins.io/doc/pipeline/steps/publish-over-ssh/
| 归档时间: |
|
| 查看次数: |
13558 次 |
| 最近记录: |