web-dev-qa-db-fra.com

exécuter des commandes sur l'hôte distant dans un fichier Jenkins

j'essaye de ssh dans un hôte distant puis d'exécuter certaines commandes sur le shell de l'hôte distant. Voici mon code de pipeline.

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'
                    }
                 }
             }
         }
     }
}

Mais lors de l'exécution de ce travail, il exécute sh 'ssh -t -t [email protected] -o StrictHostKeyChecking=no' avec succès mais il s'arrête là et n'exécute aucune autre commande. Je veux exécuter les commandes qui sont écrites après la commande ssh dans le shell de l'hôte distant. toute aide est appréciée.

5
Shoaib Iqbal

Je résout ce problème

script 
{
    sh """ssh -tt login@Host << EOF 
    your command
    exit
    EOF"""
}
2
Alexey