4.3.3.3 通知を含めたPlaybookの定義例

ワークフローでジョブの自動実行をする場合は、自動実行する内容を記述するPlaybookで、通知を行うタイミングを指定できます。通知の"type"は"onDemand"を指定し、通知の内容に、Playbookで設定したパラメータを以下により埋め込むことができます。

  • Ops I提供部品「opsi.oi.notify」を使用
    Playbookで定義したパラメータを埋め込めます。メッセージ内容や宛先をPlaybookの定義で動的に変更することができます。

注意事項注意事項

  • Playbookで定義したnotificationの値は、Notificationのマニフェストファイルで定義したnameの値と一致する必要があります。また、Ops I提供部品「opsi.oi.notify」を使用する場合はNotificationのマニフェストファイルに以下のように設定してください。
    • event.resourceは指定しない。
    • event.typeは"onDemand"に指定する。
    • conditionsは指定しない。
    • Playbookで定義した「opsi.oi.notify」のパラメータをNotificationのマニフェストファイルに埋め込む場合、次のように指定する。

      {{ .OINotify.params.key }}

  • Ops I提供部品「opsi.oi.notify」の実行には認証情報タイプ「OpsI Credential Type」から作成した認証情報が必要です。 「OpsI Credential Type」の「opsi_domain」と「opsi_token」を利用するため、事前に作成し、ジョブテンプレートに設定しておく必要があります。設定方法については「認証情報の登録」を参照してください。


Ops I提供部品「opsi.oi.notify」については「(表)actionのリスト(Playbook用Ops I提供部品)」を参照してください。
NotificationとNotifierのマニフェストの詳細については「Notification、Notifier」を参照してください。
ジョブの自動実行の設定手順については、「ジョブ自動実行の設定手順」を、自動化の画面操作の詳細については「自動化」を参照してください。

Playbook、およびNotificationのマニフェストファイルの定義例を以下に示します。

【ユースケース1:メッセージのタイトルおよび内容の一部をPlaybookに定義する(宛先タイプ:groupMember)】

Notificationのマニフェストファイルを作成し、通知内容をPlaybookのマニフェストファイルに定義します。
この例では宛先のタイプはgroupMemberです。

<Playbookの定義例>

- hosts: localhost
  gather_facts: no

  tasks:
    - name: Send notification
      opsi.oi.notify:
        notification: notification_sample
        params:
          title: VM貸出の再申請通知
          body: VM貸出の再申請通知が到着しています。申し送り事項を確認の上、対応お願いします。
          path: /sys_request/workflow/workflow_list
          group: test_group

<Notificationのマニフェストファイルの定義例>

apiVersion: 1.0
kind: notification
type: resource
name: notification_sample
label: notification

event:
  type: onDemand

notifications:
  - message:
      title: '{{ .OINotify.params.title }}'
      body: '{{ .OINotify.params.body }}'
      referTo: '{{ .System.domain }}{{ .OINotify.params.path }}'
      severity: Information
    destinations:
      - type: groupMember
        value: '{{ .OINotify.params.group }}'
        enableSystemNotification: false
        notifiers:
          - opsi_default_email_notifier


【ユースケース2:メッセージのタイトルおよび内容の一部をPlaybookに定義する(宛先タイプ:email)】

Notificationのマニフェストファイルを作成し、通知内容をPlaybookのマニフェストファイルに定義します。
この例では宛先のタイプはemailです。

<Playbookの定義例>

- hosts: localhost
  gather_facts: no

  tasks:
    - name: Send notification
      opsi.oi.notify:
        notification: notification_sample
        params:
          title: 脆弱性の検出
          body: OSS脆弱性が検出されました。内容を確認の上、対応お願いします。
          email: testA@example.com,testB@example.com

<Notificationのマニフェストファイルの定義例>

apiVersion: 1.0
kind: notification
type: resource
name: notification_sample
label: notification

event:
  type: onDemand

notifications:
  - message:
      title: '{{ .OINotify.params.title }}'
      body: '{{ .OINotify.params.body }}'
      severity: Information
    destinations:
      - type: email
        value: '{{ .OINotify.params.email }}’
        notifiers:
          - opsi_default_email_notifier