我正在使用 Ansible 的jenkins_job
任务来设置一些 Jenkins 作业。我正在使用用户名+密码进行身份验证,该用户名和密码在 Jenkins 机器上被验证为 Linux 用户。
- name: Install my job
jenkins_job:
name: "my-job"
user: "{{ jenkins_admin_user }}"
password: "{{ jenkins_admin_pass}}"
config: "{{ lookup('template', 'templates/jobs/my-job.xml') }}"
当我运行 Ansible 时,一些作业已安装,但在运行过程中,在安装了一些作业(每次编号不同)后,出现此错误:
无法验证作业是否存在,请求错误。可能是身份验证失败 [401]:用户 my-jenkins-user 的密码/令牌无效
显然我的凭证有效 - 作业显示在 Jenkins 中。那么为什么我会收到此错误?
答案1
这是 Jenkins API 的问题,而不是 Ansible 的问题。解决方案是使用 API密钥而不是密码。
登录 Jenkins 并点击右上角的用户名,然后点击“配置”以查看您的 API 令牌。要使用密钥,只需在使用 Jenkins API 进行身份验证时输入密钥而不是密码即可。