Ansible jenkins_plugin 模块返回“HTTP 错误 403:请求中未包含有效的 crumb”

2024-01-12

我使用 Ansible (v 2.8) 作为 Packer 模板背后的配置程序来为 Jenkins 主节点构建 AMI。对于以前的版本,剧本已成功通过。然而,从 Jenkins 版本 2.176.3 开始,jenkins_plugin模块一直在抛出:

HTTP 错误 403:请求中未包含有效的碎屑

我已经检索了面包屑并将其注册在变量中。我尝试过将其传递给jenkins_pluginhttp_agent领域,但这不起作用。我尝试使用attributes,但这也没有帮助。除非我错过了一些非常基本的东西,否则我已经束手无策了。

- name:               Get Jenkins Crumb
  uri:
    force_basic_auth: yes
    url_username:     ****
    url_password:     ****
    url:              http://localhost:8080/crumbIssuer/api/json
    return_content:   yes
  register:           jenkins_crumb
  until:              jenkins_crumb.content.find('Please wait while Jenkins is getting ready') == -1
  retries:            10
  delay:              5

- name:               Install plugin
  jenkins_plugin:
    name:             "{{ item }}"
    version:          latest
    force_basic_auth: yes
    url_username:     ****
    url_password:     ****
    http_agent:       "Jenkins-Crumb:{{ jenkins_crumb.json.crumb }}"
  with_items:         "{{ jenkins_plugins }}"

我期望安装插件并愉快地构建 AMI。我得到的是“HTTP 错误 403:请求中未包含有效的面包屑”,并且 Packer 构建失败。


看起来像是对面包屑发行者的更改2.176 LTS 版本 https://jenkins.io/doc/upgrade-guide/2.176/#SECURITY-626强制将初始令牌生成调用的 Web 会话 ID 与使用所述碎屑的后续调用中的碎屑一起包含在内。

CSRF 令牌(碎片)现在仅对创建它们的 Web 会话有效,以限制攻击者获取它们的影响。使用 /crumbIssuer/api URL 获取 crumb 的脚本现在将无法执行受 CSRF 保护的操作,除非脚本在后续请求中保留 Web 会话 ID。

除了暂时禁用 CSRF 的建议之外,同一个文档还建议您只能禁用新功能,而不是整个 CSRF,这应该允许您的打包器/ansible 像以前那样完成,如所写。

要禁用此改进,您可以将系统属性 hudson.security.csrf.DefaultCrumbIssuer.EXCLUDE_SESSION_ID 设置为 true。

EDIT :

添加以下行/etc/default/jenkins清除了我自己的剧本中的 CSRF 问题(Ansible 2.8.4、Ubuntu 18.04、OpenJDK 11.0.4)

JAVA_ARGS="$JAVA_ARGS -Dhudson.security.csrf.DefaultCrumbIssuer.EXCLUDE_SESSION_ID=true"

在工具维护者赶上 API 更改之前,这可能是一个足够好的拐杖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ansible jenkins_plugin 模块返回“HTTP 错误 403:请求中未包含有效的 crumb” 的相关文章

  • Jenkins 管道中的导出命令

    如何在 Jenkins 管道中添加 导出 unix 命令 我里面有一个詹金斯 舞台 和 步骤 导出命令的语法是什么 我需要使用导出命令设置环境变量 PATH 您可以更新 PATH像这样 pipeline agent label docker
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该
  • 在多分支管道中授予复制 artIfact 权限

    我有以下设置 通过配置的 Jenkins 多分支管道作业Jenkinsfile 成功签出和构建后 工件将被存档 并触发下游作业来部署生成的工件 为了让第二个工作能够通过 class CopyArtifact 步骤 它需要复制权限 所以问题是
  • Ansible 和硬件检查

    我必须使用 ansible 检查 Linux 机器上的不同硬件和配置元素 我完全不确定如何做到这一点 RAM 磁盘空间 DNS CPU 我知道我几乎可以找到我想要的所有事实都在 ansible 中 但我不明白如何使用它 例如 我必须检查 R
  • Maven 依赖项更新报告需要数小时才能完成

    我有任务运行 Jenkins 工作女巫会报告新版本的库 我认为这些可以满足我的需要 org codehaus mojo versions maven plugin 2 5 plugin updates report org codehaus
  • 如何在 Jenkins 管道中使用 Google 服务帐户进行身份验证

    我想用gcloud在 Jenkins 管道中 因此我必须首先使用 Google 服务帐户进行身份验证 我正在使用https wiki jenkins io display JENKINS Google OAuth Plugin https
  • 具有 Azure Active Directory 身份验证的 Jenkins:REST API 访问不适用于不记名令牌

    我需要使用 python 代码访问 Jenkins REST API 需要一些有关正确方法的指导 我在 apache tomcat 中托管了 jenkins v2 176 1 并启用了 SSL 我已根据以下内容配置了 Azure AD 身份
  • 如何删除 TFS 工作区映射?

    我在一个团队项目中的 tfs 中有一个项目 然后我们将该项目移动到另一个团队项目中的不同位置 我已将 Jenkins 配置为连接到团队项目并构建我的解决方案 但是当我更改设置以连接到新的 tfs 团队项目时 出现以下错误 workspace
  • 如何使用 Ansible when 条件在文件中搜索字符串

    我有一个变量中用 n 分隔的搜索字符串列表listofips 我想在文件中搜索该字符串hello csv在我的下面playbook dir 我可能遇到一些语法问题 我不确定 但下面是我尝试过的 set fact listofips 10 0
  • Jenkins 执行 PowerShell 脚本

    我正在尝试从 Jenkins 运行 PowerShell 脚本 但它似乎完全忽略了执行策略 可以通过直接执行 powershell exe 或使用PowerShell插件 https wiki jenkins ci org display
  • 使用 Jenkins 运行 ios-sim

    我正在尝试使用以下命令从命令行启动我的应用程序ios sim https github com downloads pegli ios sim ios sim xcode4 3 tar gz但这就是我得到的 Started by user
  • macOS 更新后 Jenkins 用户消失

    我在 Mac 上运行 Jenkins 作为 CI 服务器 使用用户 jenkins 的典型设置 它在 macOS 10 12 上运行良好 今天我将 macOS 升级到 10 13 High Sierra 升级过程完成后 Jenkins 无法
  • 如何从 Jenkins 管道中的函数返回“allOf”的值

    我们有一个 Jenkins 管道设置 使用 Jenkinsfile 来定义不同构建需要做什么 在我们的很多阶段 当我们要发布版本时 我们需要完成一些工作 但如果不打算发布版本 则可以跳过这些工作 目前我们有这样的代码 when allOf
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • 无法安装企业应用程序 - 此配置文件无法安装在此设备上

    我正在设置 Jenkins 来构建应用程序的企业版本 以便在我们的内部应用程序商店中分发 如果我将应用程序存档在 Xcode 中 然后在手机上下载内置的 ipa 则应用程序安装不会出现任何问题 但是当我使用 Jenkins 生成的具有相同私
  • Apache 反向代理的基本身份验证问题

    我想为在 Ubuntu 服务器 12 04 1 上运行的 Apache 反向代理站点添加基本身份验证 网络应用程序是Jenkins http jenkins ci org运行在 Java EE 容器上 我在中添加了以下配置httpd con
  • 使用 Jenkins API 促进构建

    给定一个具有不同升级作业的 Jenkins 构建作业 即 将构建升级到不同的环境 如何使用 Jenkins API 触发特定构建的特定升级作业 综合不同来源的答案得出 Username Username APItoken 12345 Cre
  • 如何在 Jenkins 声明式管道中设置 PATH

    在 Jenkins 脚本化管道中 您可以像这样设置 PATH 环境变量 node git url https github com jglick simple maven project with tests git withEnv PAT
  • 无法指向 Jenkins 主机上 ~/.ssh 中的 ssh 密钥

    我已经安装了 SSH 代理插件来使用 SSH 身份验证拉取 Git 存储库 我想使用位于系统文件中的 SSH 密钥 来自 Jenkins master ssh选项 这是从官方插件页面截取的屏幕截图 不幸的是我没有看到这个选项 我只能选择 直
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf

随机推荐

  • 如何使用 PowerShell 将 Api 权限添加到 Azure 应用程序注册

    我正在找出 Azure PowerShell 中的命令来添加User ReadApe 在 Azure 中注册我的应用程序的权限 我可以找到一些使用的例子 Azure 但更喜欢使用 Az命令 例如https learn microsoft c
  • 如何检查我的应用程序中的 SDK 是否正在收集任何广告 ID

    Google 向我发送了一条警告 通知我我的一个应用程序正在收集信息安卓设备 ID and 广告ID信息 有没有什么工具可以用来测试这个活动涉及哪个SDK P s 我正在使用以下 SDK Admob 中介 Firebase Onesigna
  • 如何暂时禁用EGit?

    当做类似的事情时git repack从命令行 包被锁定并且无法删除 从而使存储库大小加倍 罪魁祸首很可能是 EGit 保持文件打开 这在 Windows 中是不好的 退出 Eclipse 是我所知道的唯一解决方法 我发现了本文 https
  • AWS Glue 截断 Redshift 表

    我创建了一个 Glue 作业 将数据从 S3 csv 文件 复制到 Redshift 它可以工作并填充所需的表 但是 我需要在此过程中清除表 因为在该过程完成后我留下了重复的记录 我正在寻找一种方法将这种清除添加到胶水过程中 任何意见 将不
  • 从 Android 应用程序分享视频

    我们是一个视频托管门户 用户可以根据观看次数上传视频并从中获利 我们最近推出了一款 Android 应用程序 并尝试将 分享 按钮集成到每个视频中 这是我们放置的代码 Intent intent new Intent try URL url
  • 接口和标头

    今天我遇到了 C 接口的概念 我有一个希望很简单的问题来看看我是否理解它们 它们与 C 头文件非常相似吗 我的意思是 根据我得到的信息 您定义了类的主干 但没有实际定义它的功能 这有点类似于标头 对吗 我阅读了整个 MSDN 定义 但它并没
  • Java循环效率

    我正在比较 Java 中嵌套的 for while 和 do while 循环的效率 并且遇到了一些奇怪的结果 需要帮助理解 public class Loops public static void main String args in
  • Python 中可处理大指数的贝塞尔函数

    我有一些代码使用一阶和二阶 iv 和 kv 的修改贝塞尔函数 令人烦恼的是 它们似乎有限制 即 iv 0 713 和 kv 0 697 分别加 1 分别得到无穷大和 0 这对我来说是一个问题 因为我需要使用高于此的值 通常高达 2000 或
  • 如何阻止文本被选择?

    在我的网络应用程序中 用户有时可以多次单击同一按钮 跳过消息和内容 从而导致被选中 那么如何使用 Javascript jQuery 来防止这种情况发生 你不需要为此编写脚本 这里是 css webkit touch callout non
  • 在 C# 中使用本地 DTD 文件验证 XML 文件时出现问题

    我正在尝试验证 XML 文件 我正在使用这个代码 XmlReaderSettings settings new XmlReaderSettings settings ProhibitDtd false settings Validation
  • Nodejs 和 php 生成的不同 HMAC

    base64 encode the binary result of the HMAC computation merchantSig base64 encode hash hmac sha256 signData pack H hmacK
  • 在 R 中生成数字

    在R中 如何生成N个平均值为X 中位数为Y 至少接近 的数字 或者更一般地说 是否有一个算法可以实现这一点 有无限多个解决方案 近似算法 生成低于中位数的 n 2 个数字 生成高于中位数的 n 2 个数字 添加您想要的中位数并检查 添加一个
  • 如何改变javafx中窗格的颜色?

    我想改变 a 的颜色Pane我得到的String来自用户 我该如何设置这个String作为我的窗格中的背景颜色 Code colorField setOnKeyTyped new EventHandler
  • 使用过多 JavaScript 有什么坏处?

    我想知道在网页中使用过多 JavaScript 代码有哪些缺点 例如 我将为我的下拉菜单 选项卡和折叠面板使用 jQuery 框架 以及用于我的日历的其他 JavaScript 尽管有可用的使用 jQuery 的日历 和用于其他内容的其他
  • KnockoutJs,第三方模板库,JsRender

    Knockout 与最新的 JsRender 版本兼容吗 template binding Daniel Knockout 的模板目前与 jsRender 不兼容 我尝试过 jsRender 模板引擎here http jsfiddle n
  • 将数据库放入android项目中

    我在 stackoverflow 上读到了大约 5 个线程 但仍然不知道该怎么做 我已经有 sqlite 数据库 但我不知道将它放在我的 android studio 项目中的哪里 我想要随应用程序一起下载数据库 它并不假装是最好的方法 但
  • Node.js 全局变量

    我在这里问 Node js 需要继承吗 https stackoverflow com questions 5348685 node js require inheritance 有人告诉我 我可以通过省略变量来将变量设置为全局范围 这对我
  • 如何在黑莓中使BrowserField的背景透明

    我在用BrowserField的组成部分RIM BB 它现在显示白色背景 我想要制作一个透明背景 这样它就可以与经理的背景颜色相匹配 我曾尝试使用下面的代码 但这不起作用 BrowserField contentField new Brow
  • 为什么字符串类型的默认值是null而不是空字符串?

    测试我所有的琴弦是很烦人的null在我可以安全地应用像这样的方法之前ToUpper StartWith etc 如果默认值为string如果是空字符串 我就不必测试 而且我觉得它与其他值类型更加一致 例如int or double例如 此外
  • Ansible jenkins_plugin 模块返回“HTTP 错误 403:请求中未包含有效的 crumb”

    我使用 Ansible v 2 8 作为 Packer 模板背后的配置程序来为 Jenkins 主节点构建 AMI 对于以前的版本 剧本已成功通过 然而 从 Jenkins 版本 2 176 3 开始 jenkins plugin模块一直在