如何在Jenkins Job Builder中使用`inject-passwords`?

Ale*_*lex 6 yaml jenkins jenkins-job-builder

我正在使用一个yaml文件来配置jenkins作业,并且遇到了该功能inject-passwords(请参阅此处)。但是,本文档既没有描述如何在jenkins环境中使用变量,也没有描述“加密”密码的含义(“ 如何加密”)。指向EnvInjectPlugin的链接也没有所需的信息。

在哪里可以找到有用的信息/文档?为什么本文档如此不完整?

内容:

我想以安全的方式将密码注入詹金斯工作。在此jenkins作业中,我想使用此密码作为登录在线服务的密码,以便测试该服务的多个方面。我需要测试脚本来获取该密码(环境变量?)才能登录服务。

未解决的参考文档中未回答的问题:

  • Name of passwordhere)是环境变量名称的信息在哪里?
  • 如何加密密码的信息在哪里:(password (str) Encrypted password请参阅此处

Ale*_*lex 2

密码注入的文档不可用。因此我在这里提供一个完整的例子。

首先,您需要获取加密的密码。

  1. 转到可以安全修改的 Jenkins 作业的配置部分。例如您当前正在尝试设置的那个。
  2. 在“构建环境”部分中,单击“将密码作为环境变量注入构建”。
  3. 使用虚拟变量名称写入纯密码并保存配置。此步骤将在幕后加密密码。
  4. 转到作业的“作业配置历史记录”选项卡,查看最新的 RAW XML 配置文件。您将在 XML 中找到您的加密密码,可以复制该密码以供下一步使用。

第二步,需要将密码放入yaml文件中,如下所示:

wrappers:
     - inject-passwords:
        global: true
        mask-password-params: true
        job-passwords:
            - name: TEST_USER_PASSWORD
              password: '{AQAAABAAAAAQvsFFVkOmzr5WzEhX8OWuK7mizr5xzEhX8lGo2AGMVw8=}'
            - name: TEST_USER_PASSWORD2
              password: '{AQAAABAAAAAQvsFFVkOmzr5xzEhX8lGo2AcPGMVw8b8SflGo2AcPGMVw8=}'
Run Code Online (Sandbox Code Playgroud)

注意:密码用引号和大括号括起来。

第三步:在jenkins中,您可以使用环境变量TEST_USER_PASSWORDTEST_USER_PASSWORD2. 这些变量将包含解密的密码,但是当你打印它们时,jenkins会注意到日志中有一个密码,jenkins会混淆该密码。

例子:

实际产量

My password is jddfdjh44y98dyghsdgdgfdg
Run Code Online (Sandbox Code Playgroud)

詹金斯日志输出

My password is [********]
Run Code Online (Sandbox Code Playgroud)

您可以逐步打印变量的内容以获取密码(以检查其是否有效)。