community.general.slack – Отправка уведомлений в Slack
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать его в книге задач, укажите: community.general.slack.
Описание
- Модуль
slackотправляет уведомления на http://slack.com через интеграцию Incoming WebHook.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attachments список / элементы=строка | Определяет список вложений. Этот список соответствует JSON-API Slack. Дополнительную информацию см. на https://api.slack.com/docs/attachments. | |
| blocks список / элементы=словарь добавлен в 1.0.0 community.general | Определяет список блоков. Этот список соответствует JSON-API Slack. Дополнительную информацию см. на https://api.slack.com/block-kit. | |
| channel строка | Канал для отправки сообщения. Если отсутствует, сообщение отправляется в канал, выбранный для параметра token. | |
| color строка | По умолчанию: "normal" | Разрешает использовать стандартные цвета текста — используйте значение по умолчанию "normal", чтобы не отправлять пользовательский цвет в начале сообщения. Допустимые значения цвета могут быть "normal", "good", "warning", "danger", или любым допустимым 3-значным или 6-значным шестнадцатеричным цветовым значением. Указание значения в шестнадцатеричном формате поддерживается начиная с Ansible 2.8. |
| domain строка | Домен Slack (поддомен) для вашей среды без протокола. (например, example.slack.com) В версиях 1.8 и выше этот параметр устарел и может быть проигнорирован. См. документацию по параметру token для получения информации. | |
| icon_emoji строка | Эмоджи отправителя сообщения. См. документацию Slack для вариантов. (если установлен icon_emoji, icon_url не будет использоваться) | |
| icon_url строка | По умолчанию: "https://www.ansible.com/favicon.ico" | URL иконки отправителя сообщения (по умолчанию https://www.ansible.com/favicon.ico) |
| link_names целое число |
1 | Автоматически создаёт ссылки для каналов и имён пользователей в msg. |
| message_id строка добавлен в 1.2.0 community.general | Необязательно. ID сообщения для редактирования вместо публикации нового сообщения. Соответствует ts в API Slack (https://api.slack.com/messaging/modifying). | |
| msg строка | Сообщение для отправки. Обратите внимание, что модуль не обрабатывает экранирование символов. Символы угловых скобок и амперсандов в простом тексте следует преобразовать в HTML-сущности (например, & в &) перед отправкой. Дополнительную информацию см. в документации Slack (https://api.slack.com/docs/message-formatting). | |
| parse строка |
| Настройка парсера сообщений в Slack |
| thread_id строка | Необязательно. Отметка времени родительского сообщения для вложения этого сообщения. https://api.slack.com/docs/message-threading | |
| token строка / обязательно | Токен интеграции Slack. Он авторизует вас в службе Slack. Убедитесь, что используете правильный тип токена, в зависимости от используемого метода. Токен Webhook: До версии 1.8 токен выглядел так: 3Ffe373sfhRE6y42Fg3rvf4GlK. В версиях 1.8 и выше Ansible адаптируется к новому API Slack, где токены выглядят так: G922VJP24/D921DW937/3Ffe373sfhRE6y42Fg3rvf4GlK. Если токены в новом формате, Slack проигнорирует любое значение domain. Если токен в старом формате, domain обязателен. Ansible не контролирует, когда Slack уберёт старый API. Когда это произойдёт, старый формат перестанет работать. ** Пожалуйста, имейте в виду, что токены — это не токены API, а токены webhook. В Slack они находятся в URL webhook, которые получаются в приложениях и интеграциях. Входящие webhook можно добавить в этой области. В некоторых случаях это может быть заблокировано вашим администратором Slack, и вам нужно запросить доступ. Именно там можно добавить входящие webhook. Ключ находится в конце URL, предоставленного вам в этой секции.Токен WebAPI: Slack WebAPI требует персональный, бот или рабочий токен приложения. Эти токены начинаются с xoxp-, xoxb- или xoxa-, например, xoxb-1234-56789abcdefghijklmnop. Токен WebAPI необходим, если вы хотите получить thread_id. Дополнительную информацию см. в документации Slack (https://api.slack.com/docs/token-types). | |
| username строка | По умолчанию: "Ansible" | Отправитель сообщения. |
| validate_certs булево |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с использованием самозаверяющих сертификатов. |
Примеры
- 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://www.ansible.com|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
channel: "{{ slack_response.channel }}"
msg: Deployment complete!
message_id: "{{ slack_response.ts }}"
Авторы
- Ramon de la Fuente (@ramondelafuente)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/slack_module.html