community.general.slack 模块 – 发送 Slack 通知
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。
要在 playbook 中使用它,请指定:community.general.slack
。
概要
community.general.slack 模块通过 Incoming WebHook 集成向 http://slack.com 发送通知。
参数
参数 |
注释 |
---|---|
定义附件列表。此列表与 Slack JSON API 相同。 更多信息,请参见 https://api.slack.com/docs/attachments。 |
|
定义块列表。此列表与 Slack JSON API 相同。 更多信息,请参见 https://api.slack.com/block-kit。 |
|
发送消息的频道。如果缺失,消息将发送到为 |
|
允许文本使用默认颜色 - 使用默认值“normal”不发送消息开头的自定义颜色条。 color 的允许值可以是“normal”、“good”、“warning”、“danger”中的一个,或者任何有效的 3 位或 6 位十六进制颜色值。 默认值: |
|
您环境的 Slack (子)域名,不含协议。(例如 |
|
消息发送者的表情符号。有关选项,请参见 Slack 文档。 如果设置了 |
|
消息发送者图标的 URL。 默认值: |
|
可选。要编辑的消息 ID,而不是发布新消息。 如果提供 令牌需要历史范围才能获取要编辑的消息信息( 对应于 Slack API 中的 |
|
要发送的消息。请注意,该模块不处理转义字符。在发送之前,应将纯文本尖括号和&符号转换为 HTML 实体(例如,&转换为 &)。有关更多信息,请参见 Slack 的文档 (https://api.slack.com/docs/message-formatting)。 |
|
Slack 消息解析器的设置 选项
|
|
用于在传入的
选项
|
|
可选。此消息的父消息的时间戳,用于将此消息加入线程。 https://api.slack.com/docs/message-threading |
|
Slack 集成令牌。这将验证您对 Slack 服务的访问权限。请确保根据您使用的方法使用正确的令牌类型。 Webhook 令牌:在 Ansible 1.8 之前,令牌看起来像 WebAPI 令牌:Slack WebAPI 需要个人、机器人或工作应用程序令牌。这些令牌以 |
|
这是消息的发送者。 默认值: |
|
如果为 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:不支持 |
处于 diff 模式时,将返回有关已更改内容(或可能需要在 |
示例
- name: Send notification message via Slack
community.general.slack:
token: thetoken/generatedby/slack
msg: '{{ inventory_hostname }} completed'
delegate_to: localhost
- name: Send notification message via Slack all options
community.general.slack:
token: thetoken/generatedby/slack
msg: '{{ inventory_hostname }} completed'
channel: '#ansible'
thread_id: '1539917263.000100'
username: 'Ansible on {{ inventory_hostname }}'
icon_url: http://www.example.com/some-image-file.png
link_names: 0
parse: 'none'
delegate_to: localhost
- name: Insert a color bar in front of the message for visibility purposes and use the default webhook icon and name configured in Slack
community.general.slack:
token: thetoken/generatedby/slack
msg: '{{ inventory_hostname }} is alive!'
color: good
username: ''
icon_url: ''
- name: Insert a color bar in front of the message with valid hex color value
community.general.slack:
token: thetoken/generatedby/slack
msg: 'This message uses color in hex value'
color: '#00aacc'
username: ''
icon_url: ''
- name: Use the attachments API
community.general.slack:
token: thetoken/generatedby/slack
attachments:
- text: Display my system load on host A and B
color: '#ff00dd'
title: System load
fields:
- title: System A
value: "load average: 0,74, 0,66, 0,63"
short: true
- title: System B
value: 'load average: 5,16, 4,64, 2,43'
short: true
- name: Use the blocks API
community.general.slack:
token: thetoken/generatedby/slack
blocks:
- type: section
text:
type: mrkdwn
text: |-
*System load*
Display my system load on host A and B
- type: context
elements:
- type: mrkdwn
text: |-
*System A*
load average: 0,74, 0,66, 0,63
- type: mrkdwn
text: |-
*System B*
load average: 5,16, 4,64, 2,43
- name: Send a message with a link using Slack markup
community.general.slack:
token: thetoken/generatedby/slack
msg: We sent this message using <https://ansible.org.cn|Ansible>!
- name: Send a message with angle brackets and ampersands
community.general.slack:
token: thetoken/generatedby/slack
msg: This message has <brackets> & ampersands in plain text.
- name: Initial Threaded Slack message
community.general.slack:
channel: '#ansible'
token: xoxb-1234-56789abcdefghijklmnop
msg: 'Starting a thread with my initial post.'
register: slack_response
- name: Add more info to thread
community.general.slack:
channel: '#ansible'
token: xoxb-1234-56789abcdefghijklmnop
thread_id: "{{ slack_response['ts'] }}"
color: good
msg: 'And this is my threaded response!'
- name: Send a message to be edited later on
community.general.slack:
token: thetoken/generatedby/slack
channel: '#ansible'
msg: Deploying something...
register: slack_response
- name: Edit message
community.general.slack:
token: thetoken/generatedby/slack
# The 'channel' option does not accept the channel name. It must use the 'channel_id',
# which can be retrieved for example from 'slack_response' from the previous task.
channel: "{{ slack_response.channel }}"
msg: Deployment complete!
message_id: "{{ slack_response.ts }}"