审批点

暂停作业,直到有人批准

  1. 工作原理
  2. 批准自己的作业
  3. 属性
  4. 示例
    1. 1) Remove host
    2. 2) Ask for approval in Teams

工作原理

审批点会让作业在表单中它所在的位置暂停,直到审批人作出回应:

When you want to pause a job and ask for approval first. You can insert an approval point using the approval-object attributes


批准自己的作业

从 7.3.0 起,运行作业的用户不能批准该作业,即使拥有该审批的某个角色也不行,因此需要第二个人;管理员始终可以批准,包括自己的作业。 运行者仍然可以拒绝(撤回)自己的作业。如果也允许运行者批准,请设置 allowSelf: true ,例如在测试表单中:

approval:
  title: Approve the change
  message: Please approve this change
  roles:
    - approvers
  allowSelf: true

属性

审批点的属性:

属性 说明
title
string

Approval message title
Free text with placeholders

The approval point consists out of a title and message. This is the title attribute, used as the subject of the approval mail.
Without it, the mail gets the default approval subject. A workflow’s approval nodes take the node’s name as title.
Note: This supports placeholders (the placeholders point to extravars)

message
string / 必填

Approval message
Free text with placeholders

The approval point consists out of a title and message. This is the message attribute.
Note: This supports placeholders (the placeholders point to extravars)

roles
array / 必填

The approver roles
a valid role

Every role in this list will have the power to approve or reject this job.

notifications
array

The approval recipients
a valid email address

Every email-address in this list will receive the approval message by email with the approval link.

channels
array

The approval channels
the name of a notification channel

The notification channels of Connections > Notifications that receive the approval message, with a link to the job, where it is approved or rejected: Slack, Microsoft Teams, Telegram, a webhook.
A mail channel in this list sends the approval mail to the notifications addresses through that server instead of the active one.
A name that is not there is said in the log and skipped. (Added in 7.0.0)

allowSelf
boolean

The requester may approve their own job
true or false

By default the user who launched a job cannot approve it, even with one of the approver roles: another approver must, so every approved job was seen by two people. The requester can still reject (withdraw) their own job. Set allowSelf: true to let the requester approve their own job too. An admin can always approve any job, their own included, whatever this says. (Added in 7.3.0)


示例

审批点示例(YAML):

1) Remove host

定义(YAML):

approval:
  title: Remove host $(vm.name) ?
  message: |
    You are about to remove vm $(vm.name).<br>
    Esx server: $(cluster.esxhost.name)<br>
    Status: $(vm.status)<br>
    Change request: $(cr.id)
  roles:
  - approvers
  - vmwareadmin
  notifications:
  - vmware@domain.local
  - approvers@domain.local      

2) Ask for approval in Teams

定义(YAML):

approval:
  title: Remove host $(vm.name) ?
  message: You are about to remove vm $(vm.name).
  roles:
  - approvers
  channels:
  - approvers-teams