如何在Jenkins声明式管道中运行“ sudo su”命令?

时间:2020-02-25 15:52:29

标签: shell jenkins jenkins-pipeline jenkins-groovy jenkins-declarative-pipeline

我遇到一个奇怪的情况,shell命令“ sudo su”无法按预期的方式在Jenkins声明式管道中工作。下面是我的代码:

 stages {

     stage('Ansible-dynamichost-generation') {



           steps {
                   ansiColor('xterm') {


                                        sh 'chmod -R 777 /home/jenkins-slave/'
                                        sh 'sudo su ansible'


                                        sh '''#!/bin/bash -l 
                                        #Execute commands
                                         echo "$WORKSPACE"
                                         whoami
                                         '''

                                         }
                                 }
                            }

  }

该管道正在由詹金斯-奴隶用户运行。但是,我在管道中有一个shell命令,该命令应该切换到名为“ ansible”的用户。但是,当执行“ whoami”命令时,它将返回“ jenkins-slave”本身输出。任何人都可以帮忙解决这里的问题吗?

1 个答案:

答案 0 :(得分:0)

每个sh命令都是在单独的目录中执行的。 最好写一个sh并执行将要运行的操作