リモートホストにsshして、リモートホストのシェルで特定のコマンドを実行しようとしています。以下は私のパイプラインコードです。
pipeline {
agent any
environment {
// comment added
APPLICATION = 'app'
ENVIRONMENT = 'dev'
MAINTAINER_NAME = 'jenkins'
MAINTAINER_EMAIL = '[email protected]'
}
stages {
stage('clone repository') {
steps {
// cloning repo
checkout scm
}
}
stage('Build Image') {
steps {
script {
sshagent(credentials : ['jenkins-pem']) {
sh "echo pwd"
sh 'ssh -t -t [email protected] -o StrictHostKeyChecking=no'
sh "echo pwd"
sh 'Sudo -i -u root'
sh 'cd /opt/docker/web'
sh 'echo pwd'
}
}
}
}
}
}
しかし、このジョブを実行すると、sh 'ssh -t -t [email protected] -o StrictHostKeyChecking=no'
は正常に終了しましたが、そこで停止し、それ以上のコマンドは実行されません。リモートホストのシェル内でssh
コマンドの後に記述されているコマンドを実行したい。どんな助けでもありがたいです。
この問題を解決します
script
{
sh """ssh -tt login@Host << EOF
your command
exit
EOF"""
}