Jenkins 管道作业被触发为匿名而不是 user/Admin

Jenkins pipeline job gets triggered as anonymous but not as an user/Admin

Jenkins 管道作业不会使用 jenkins cli 触发管道作业。当我 运行 jenkins 作为匿名时这有效,但是当我创建 user/admin 它失败了。

我有一个作业 A,它有参数并将其传递给管道作业。这是一个主从设置。我就是这样 运行:

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.) 另一种选择是将 public 密钥粘贴到 SSH 部分 http://jenkin_url/me/configure 中,但仍然失败

错误:

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

我有什么遗漏吗?

我找到了解决方案,

1.) 使用 SSH CLI。

在我的例子中,我使用的是主从环境,连接是使用 SSH 密钥建立的,反之亦然。为了使用 Jenkins CLI 触发构建,将 SSH 密钥都放在 public 和 private 中,并将它们放在 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文件