Jenkins管道作业以匿名方式触发,但不作为用户/管理员触发

时间:2017-07-14 11:43:54

标签: jenkins jenkins-plugins jenkins-pipeline jenkins-cli

Jenkins管道作业不会使用jenkins cli触发管道作业。当我以匿名方式运行jenkins时,这有效,但是当我创建用户/管理员时,它会失败。

我有一个具有参数的作业A并将其传递给Pipeline Job。这是主从设置。这就是我的运作方式:

sudo java -jar /home/user/jenkins-cli.jar -s $JENKINS_URL build pipeline_job -p parameter_Name="$parameter_Name" -p parameter_Name2="$parameter2_Name"

1。)我尝试使用选项“-auth”,“ - username -password”但不起作用。

错误: 没有这样的命令:-auth 没有这样的命令:-ssh

2.。)另一种选择是将公钥粘贴到SSH部分http://jenkin_url/me/configure中,但仍然失败

错误:

java.io.IOException: Invalid PEM structure, '-----BEGIN...' missing

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,

1。)使用SSH CLI。

在我的情况下,我使用的是主从环境,使用SSH密钥进行连接,反之亦然。为了使用Jenkins CLI触发构建,请将SSH密钥设置为public&私有并将它们放在http://jenkinsURL/user/username/configure

此处用户名=用于连接节点的用户名。

按以下方式触发工作:

java -jar /home/username/jenkins-cli.jar -s $JENKINS_URL -i /home/username/.ssh/id_rsa build JOBNAME

注意:这是一种方式,但cloudbees不鼓励这种方法。

2.。)有新的方法,即使用API​​令牌认证。

  • 转到http://jenkinsURL/user/username/configure
  • 复制API令牌
  • 触发构建如下:

    java -jar /home/username/jenkins-cli.jar -s $ JENKINS_URL -auth username:apitoken /home/username/.ssh/id_rsa build JOBNAME

注意:要使用API​​令牌选项,请下载最新的jar文件