小心进行:如何在管道中使用批准门

而DevOps自动化的目的是消除大部分的人工干预CI/CD DevOps管道你不能总是把人完全排除在这个过程之外。在允许您的管道进一步进行之前,您仍然需要一个专家,亲自检查以确保一切正常。
这就是为什么JFrog pipeline授权DevOps团队包括批准盖茨在他们的CI / CD管道,以使关键人员能够防止错误级联到生产二进制文件中。
批准门的用例
什么时候需要审批门?这取决于您的组织及其特别关注的问题。以下是可能使用管道中的批准门的一些需求:
- 在SRE团队将应用程序发布到生产环境之前,需要一个安全团队审核和批准应用程序。
- 在将构建部署到生产环境之前,必须得到产品、安全和质量保证团队的批准。
- 在推广或部署之前,生产工程师必须验证应用程序的所有依赖组件都已就绪/兼容。
- 安全和QA团队必须在更新后的工件发布给其他开发团队使用之前对其进行验证。
- 质量保证团队需要开发团队在运行测试之前批准工件。
创建审批门
您可以为管道配置YAML中的任何步骤配置手动审批门。
当一个步骤配置了审批门,它将暂停执行并将其状态设置为等待.所需的用户必须手动批准(或拒绝)步骤的完成(或取消)。
如果该步骤被取消,那么pipeline将将其视为失败,不再执行后续步骤。
简易审批门
批准门可以在配置的任何管道步骤的部分,使用requiresApproval关键。
在最简单的用法中,您可以设置的值requiresApproval来真正的.
步骤:—name: approvalGatesStep type: Bash configuration: requiresApproval: true
在这种模式下,对管道具有执行权限的任何用户都可以批准或拒绝该步骤。如果24小时内未采取任何行动,该步骤将自动取消,不再执行后续步骤。
综合审批门
在一个简单的审批门中,管道UI之外的用户不会被通知需要审批;用户必须观察管道的执行,以查看步骤的挂起状态。
这在大多数现实环境中都不太实际。通过他们每天使用的协作工具,需要通知审批者他们的行动是必需的。
审批也很可能需要由一个特定的人或多个人进行。
由于这些原因,requiresApprovalKey可以配置任何或所有这些附加属性:
审批人员-可批准或拒绝该步骤的用户列表。通知-当步骤进入Pending状态时,通过SMTP和/或Slack发送的通知列表。timeoutSeconds—步骤在被取消前可保持待定状态的最长时间。
—name: npm_publish_step type: npmPublish configuration: requiresApproval: approvers:—mtwain # Artifactory user—jcheever # Artifactory user notifications:—integrationName: mySlack_Int # Slack integration timeoutSeconds: 43200 # 12 hours
运行审批门
所以你的审批门是一步一步建立的。当管道运行时会发生什么?
当我们的管道执行时,在我们的npmPublish步骤将暂停执行,输入等待状态,并发送通知(在本例中,发送到Slack)。

通知中的链接将显示当前运行的Pipeline History视图,该视图反映了步骤的当前Pending状态。

当您查看Pending步骤的日志时,一个批准/拒绝按钮可用。

点击批准/拒绝显示批准或拒绝的选项,以及注册关于该操作的评论的机会。

当你批准,请您确认。

停止,看,点击
管道中的审批门授权DevOps工程师使用开发人员的专业知识软件开发生命周期是他们CI/CD管道不可或缺的一部分。通过自动通知和易于操作的UI,您可以确保任何需要的手动监督都由授权执行它的人完成。
这个特性只是JFrog pipeline帮助您的组织实践和执行CI/CD的最新方式,您已经决定需要这样做。无论是创造你自己的自定义扩展或模板,或开箱即用的集成通过您使用的许多工具,pipeline使您能够构建最适合您的工作模式。
你试过pipeline CI/CD吗?如果不是这样,免费开始!
