12.6. 自动签名


在具有高度可信 持续集成 (CI)环境(如 OpenShift 或 Jenkins)的环境中,可以自动执行签名过程。

例如,您可以将 GPG 私钥存储在一个选择的 CI 平台上作为一个 secret,并在 CI 环境中将其导入到 GnuPG 中。然后,您可以通过普通的 CI 环境中的签名工作流运行。

使用 GPG 对项目进行签名时,环境变量 ANSIBLE_SIGN_GPG_PASSPHRASE 可以设置为签名密钥的密码短语。这可以在 CI 管道中注入和屏蔽或保护。

根据场景,在签名和验证过程中,ansible-sign 会以不同的退出代码返回。这在 CI 和自动化上下文中也很有用,因为 CI 环境根据故障而不同。例如,它可以发送一些错误的警报,但对其他错误有静默失败。

这些是 ansible-sign 中使用的当前退出代码,可被视为稳定:

退出代码大约含义示例情境

0

成功

  • 签名成功
  • 验证成功

1

常规故障

  • 验证和清单文件在验证过程中包含语法错误
  • 验证过程中不存在签名文件
  • 在签名过程中不存在 MANIFEST.in

2

验证和验证失败

  • 在验证过程中计算的校验和哈希值与签名校验和清单中的内容不同,例如,项目文件已更改,但签名过程不会被重新完成。

3

签名验证失败

  • 签名人的公钥不在用户的 GPG 密钥环中
  • 指定了错误的 GnuPG 主目录或密钥环文件
  • 签名的验证和清单文件被修改

4

签名进程失败

  • 签名人的私钥没有在 GPG 密钥环中找到
  • 指定了错误的 GnuPG 主目录或密钥环文件
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.