我遇到一个奇怪的情况,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”本身输出。任何人都可以帮忙解决这里的问题吗?
答案 0 :(得分:0)
每个sh命令都是在单独的目录中执行的。 最好写一个sh并执行将要运行的操作