Home > Software engineering >  EOF: command not found in Jenkins Pipeline
EOF: command not found in Jenkins Pipeline

Time:02-07

I'm trying to launch Datadog agent in Jenkins pipeline, but I'm getting below errors:

line 7: warning: here-document at line 2 delimited by end-of-file (wanted `EOF'). EOF: Command not found Error.

    stage('Install Datadog agent'){
        when {
            environment(name: "DATADOG_REQ", value: "enable")
            }
        steps {
            script {
            echo "Installing Datadog Agent"
            
            sh '''#!/bin/bash 
                ssh -o ConnectTimeout=30 -t  ABC@1234 /bin/bash  << EOF || error_exit "creating based folder failed for $service_name"
                sudo chmod u x ./${JOB_NAME}/enableDatadogAgent.sh
                sudo chown jenkins:jenkins ./${JOB_NAME}/enableDatadogAgent.sh
                echo ${DATADOG_REQ} ${JOB_NAME}
                ./${JOB_NAME}/enableDatadogAgent.sh ${DATADOG_REQ} 
                EOF'''
                }



            }
        }

Any help would be very helpful.

CodePudding user response:

I changed the << EOF with <<- _EOF_ , and now it's working.

            script {
            echo "Installing Datadog Agent"
            
            sh '''#!/bin/bash 
            scp -pr  "./Enable-DockerAgent/enableDatadogAgent.sh" [email protected]:./${JOB_NAME}/ || error_exit "Copying falied"'''
            sh '''#!/bin/bash 
                ssh -o ConnectTimeout=30 -t  [email protected] /bin/bash  <<- _EOF_ || error_exit "Failed to execute while doing SSH"    
                    sudo chmod u x ./${JOB_NAME}/enableDatadogAgent.sh
                    sudo chown jenkins:jenkins ./${JOB_NAME}/enableDatadogAgent.sh
                    echo ${DATADOG_REQ} ${JOB_NAME}
                    ./${JOB_NAME}/enableDatadogAgent.sh ${DATADOG_REQ} 
                    _EOF_'''

                }
  •  Tags:  
  • Related