Jenkins 双 ssh 只执行第一步 ssh,并没有执行所有要求的事情

问题描述 投票:0回答:1

我目前正在构建一个大型詹金斯作业,我需要在同一阶段和步骤中执行多个 ssh,如下面的代码所示。问题是,每次 jekins 完成第一个 ssh 连接时,它都会结束该阶段,并且其他部分不会运行。

有人有解决办法吗?

这是我的阶段代码:

stage('(02) Export file') {
            withCredentials([gitUsernamePassword(credentialsId: gitCredentials, gitToolName: 'Default')]) {
                    sh '''
                        ssh user@env << EOF
                            mkdir /alim1 || true
                            mkdir /alim2 || true
                            mkdir /alim3 || true
                        << EOF

                        scp script1.ksh user@env:/alim1
                        scp script2.ksh user@env:/alim2
                        scp script3.ksh user@env:/alim3
                            
                        ssh user@env << EOF
                            echo "Starting export"
                            ksh /alim1/script1 || error1=1
                            ksh /alim2/script2 || error2=1
                            ksh /alim3/script3 || error3=1 
                        << EOF;
                    '''
            }
}

编辑: 我更改了此处文档的结尾,现在看起来像这样:

stage('(02) Export file') {
            withCredentials([gitUsernamePassword(credentialsId: gitCredentials, gitToolName: 'Default')]) {
                    sh '''
                       ssh user@env << EOF 
                           mkdir /alim1 || true; 
                           mkdir /alim2 || true; 
                           mkdir /alim3 || true; 
                       EOF

                       scp script1.ksh user@env:/alim1
                       scp script2.ksh user@env:/alim2
                       scp script3.ksh user@env:/alim3

                       ssh user@env << EOF
                           echo "Starting export"
                           ksh /alim1/script1 || error1=1;
                           ksh /alim2/script2 || error2=1;
                           ksh /alim3/script3 || error3=1;
                       EOF
                       '''
            }
}

我收到此错误:

-ksh[11]: EOF: not found [No such file or directory of this type]

shell jenkins ssh ksh
1个回答
0
投票

问题的答案很简单。我缺乏有关此处文档的知识,并且我不知道 EOF 必须是该行上唯一的字符,不应该有任何缩进。工作/更正的代码是这个:

stage('(02) Export file') {
            withCredentials([gitUsernamePassword(credentialsId: gitCredentials, gitToolName: 'Default')]) {
                    sh '''
                       ssh user@env << EOF 
                           mkdir /alim1 || true; 
                           mkdir /alim2 || true; 
                           mkdir /alim3 || true; 
EOF

                       scp script1.ksh user@env:/alim1
                       scp script2.ksh user@env:/alim2
                       scp script3.ksh user@env:/alim3

                       ssh user@env << EOF
                           echo "Starting export"
                           ksh /alim1/script1 || error1=1;
                           ksh /alim2/script2 || error2=1;
                           ksh /alim3/script3 || error3=1;
EOF
                       '''
            }
} 
© www.soinside.com 2019 - 2024. All rights reserved.