我正在尝试Jenkins的新声明式方法,以完成通过ssh
部署应用程序的简单任务,我有一个shell脚本deploy.sh
,该脚本可以完成基本的工作git pull
或git clone
并使用docker-compose
进行部署,我可以在笔记本电脑上以cat deploy.ssh | ssh user@remote
的身份运行它。
我找不到Jenkinsfile
上的方法。我已经尝试了几天。
stage('deploy') {
steps {
sh 'cat deploy.sh | ssh user@remote'
}
}
我走错了路吗?还有另一种部署代码的方法吗?
答案 0 :(得分:0)
使用名为 SSH管道步骤的Jenkins插件 https://plugins.jenkins.io/ssh-steps/
安装此插件后,您可以按以下方式定义您的Jenkins文件:
pipeline {
agent any
stages {
stage('Deploy') {
steps {
echo 'Deploying..'
script{
node {
def remote = [:]
remote.name = "node-1"
remote.host = "10.10.10.10"
remote.user = 'username'
remote.password = 'password'
remote.allowAnyHosts = true
stage('Remote SSH') {
writeFile file: 'abc.sh', text: 'ls'
sshCommand remote: remote, command: 'for i in {1..5}; do echo -n \"Loop \$i \"; date ; sleep 1; done'
sshPut remote: remote, from: 'abc.sh', into: '.'
}
}
}
}
}}}
} }