ここでは、AWXの7.0.0でマージされたワークフローの承認機能を使ってみようと思います。
承認機能について
承認機能の使い方は以下のを見てください 🙂
AWX approval workflow demo from sky_joker on Vimeo.
メールで通知する
上記の動画ではワークフローで承認が出来るようになったことが確認できました。
例えば、ワークフローの承認をしてもらう場合、承認をする人にメール通知をしたいという人もいるかと思います。
そこで、メールでの通知方法について考えてみました。
メールを通知するPlaybookを作成
現在では、承認機能は使えても承認したい人当てにメールを送る機能は無いように見えました。
そのため、メールを通知するようのPlaybookを作ってみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
--- - name: send mail playbook hosts: localhost gather_facts: no tasks: - name: send mail. mail: host: "{{ mail_server }}" port: "{{ mail_server_port | default(25) }}" from: "{{ from_email }}" to: "{{ to_email }}" subject: WF承認メール body: | {{ tower_workflow_job_name }}の承認をお願いします。 {{ url }} |
これを以下のように組み込みます。
message
は単純なdebugで指定した文字を表示するだけのものです。
1 2 3 4 5 6 7 |
--- - name: message playbook hosts: all gather_facts: no tasks: - debug: msg="{{ msg }}" |
ワークフローのSURVEY
ワークフローのSURVEYは以下のように作成しました。
デモ
以下のデモを実施してみようと思います。
- user01がワークフローを実行
- user02に承認メールを送信
- user02がメールを受信
- user02がワークフローの内容(追加変数の内容など)を確認して承認
ロールは以下のようになっています。
user02は承認のみの設定にしています。
ユーザー | ワークフロー | ロール |
---|---|---|
user01 | test wf | 実行 |
user01 | message | 読み込み |
user02 | test wf | Approve |
user02 | message | 読み込み |
以下がデモ動画です。
AWX workflow demo to send approval email from sky_joker on Vimeo.
こんな感じでメールを飛ばして承認してもらうことが出来そうです 🙂
最後に
今回は、追加変数の内容に問題ないか確認した後にワークフロー自体の実行を承認してもらう感じにしましたが、途中まで処理を実行しその後の処理を承認してもらうという方法もできるかと思います。
エンタープライズだと承認機能が結構求められる場面が多いかと思うので、早くAnsible Towerにも取り込まれるといいですね!
それでは、みんなでハッピーオートメーション!
追記
ワークフロージョブのURLのリンクをメールに記載したい場合は以下のようにすれば可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
--- - name: send mail playbook hosts: localhost gather_facts: no tasks: - name: send mail. mail: host: "{{ mail_server }}" port: "{{ mail_server_port | default(25) }}" from: "{{ from_email }}" to: "{{ to_email }}" subject: WF承認メール body: | {{ tower_workflow_job_name }}の承認をお願いします。 {{ url }}#/workflows/{{ tower_workflow_job_id }} |