Spec-Zone.ru › Ansible

Модуль community.general.slack — отправка уведомлений в Slack

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить коллекцию, используйте: ansible-galaxy collection install community.general.

Чтобы использовать её в плейбуке, укажите: community.general.slack.

  • Краткое описание
  • Параметры
  • Атрибуты
  • Примеры

Краткое описание

  • Модуль community.general.slack отправляет уведомления на http://slack.com с помощью интеграции Incoming WebHook.

Параметры

Параметр

Комментарии

attachments

list / elements=dictionary

Задаёт список вложений. Этот список соответствует API Slack в формате JSON.

Дополнительные сведения см. на странице https://api.slack.com/docs/attachments.

blocks

list / elements=dictionary

добавлено в community.general 1.0.0

Задаёт список блоков. Этот список соответствует API Slack в формате JSON.

Дополнительные сведения см. на странице https://api.slack.com/block-kit.

channel

string

Канал, в который нужно отправить сообщение. Если параметр не задан, сообщение отправляется в канал, выбранный для token.

color

string

Разрешает использовать для текста цвета по умолчанию: используйте значение normal по умолчанию, чтобы не добавлять цветную полосу в начало сообщения.

Допустимыми значениями color являются normal, good, warning, danger, а также любые допустимые шестнадцатеричные значения цвета из 3 или 6 цифр.

По умолчанию: "normal"

domain

string

При использовании нового формата «Webhook token» и токенов WebAPI: может иметь значение slack.com или slack-gov.com; в остальных случаях игнорируется.

При использовании старого формата «Webhook token»: поддомен Slack для вашей среды без протокола. (Например, example.slack.com.) В Ansible 1.8 и более поздних версиях этот параметр устарел и может игнорироваться. См. документацию по токенам.

icon_emoji

string

Эмодзи отправителя сообщения. Доступные варианты см. в документации Slack.

Если задан icon_emoji, icon_url не используется.

icon_url

string

URL значка отправителя сообщения.

По умолчанию: "https://docs.ansible.com/favicon/favicon.ico"

link_names

integer

Автоматически создаёт ссылки на каналы и имена пользователей в msg.

Варианты:

  • 1 ← (по умолчанию)
  • 0

message_id

string

добавлено в community.general 1.2.0

Необязательный параметр. Идентификатор сообщения для редактирования вместо отправки нового сообщения.

Если указан, channel должен иметь формат C0xxxxxxx. Используйте {{ slack_response.channel }}, чтобы получить channel из предыдущего запуска задачи.

Токену требуется область действия history, чтобы получить сведения о редактируемом сообщении (channels:history,groups:history,mpim:history,im:history).

Соответствует ts в API Slack (https://api.slack.com/messaging/modifying).

msg

string

Отправляемое сообщение. Обратите внимание: модуль не обрабатывает экранирование символов. Перед отправкой угловые скобки и амперсанды в обычном тексте следует преобразовать в HTML-сущности (например, & в &). Дополнительные сведения см. в документации Slack (https://api.slack.com/docs/message-formatting).

parse

string

Настройка анализатора сообщений в Slack.

Варианты:

  • "full"
  • "none"

prepend_hash

string

добавлено в community.general 6.1.0

Настройка автоматического добавления символа # в начало переданного значения channel.

Метод auto добавляет в начало #, если только channel не начинается с одного из значений #, @, C0, GF, G0, CP. Эти префиксы охватывают лишь небольшую часть префиксов, перед которыми не следует добавлять #. Поскольку точное условие, определяющее, каким значениям channel не нужен префикс #, неизвестно, значение auto для этого параметра в будущем будет объявлено устаревшим. Чтобы получить необходимое поведение, рекомендуется явно задать prepend_hash=always или prepend_hash=never.

До community.general 12.0.0 значением по умолчанию было auto. Оно объявлено устаревшим начиная с community.general 10.2.0.

Обратите внимание: auto будет объявлено устаревшим в будущей версии.

Варианты:

  • "always"
  • "never" ← (по умолчанию)
  • "auto"

thread_id

string

Необязательный параметр. Временная метка родительского сообщения, в ветку которого нужно отправить это сообщение. См. https://api.slack.com/docs/message-threading.

token

string / обязательный

Токен интеграции Slack. С его помощью выполняется аутентификация в службе Slack. Обязательно используйте токен нужного типа в зависимости от используемого метода.

Токен Webhook: до Ansible 1.8 токен имел вид 3Ffe373sfhRE6y42Fg3rvf4GlK. Начиная с Ansible 1.8, Ansible адаптирован к новому API Slack, где токены имеют вид G922VJP24/D921DW937/3Ffe373sfhRE6y42Fg3rvf4GlK. Если токен имеет новый формат, Slack игнорирует любые значения domain, кроме slack.com или slack-gov.com. Для токена старого формата параметр domain обязателен. Ansible не может повлиять на то, когда Slack удалит старый API. После этого токены старого формата перестанут работать. Обратите внимание: это не токены API, а токены webhook. В Slack их можно найти в URL webhook, доступном в разделе приложений и интеграций. В этом разделе можно добавить входящие веб-перехватчики. В некоторых случаях доступ может быть заблокирован администратором Slack, и вам потребуется запросить его. Входящие веб-перехватчики можно добавить именно в этом разделе. Ключ находится в конце предоставленного там URL.

Токен WebAPI: для Slack WebAPI требуется персональный токен, токен бота или токен рабочего приложения. Такие токены начинаются с xoxp-, xoxb- или xoxa-, например xoxb-1234-56789abcdefghijklmnop. Токен WebAPI требуется, если вы хотите получить thread_id. Дополнительные сведения см. в документации Slack (https://api.slack.com/docs/token-types).

username

string

Отправитель сообщения.

По умолчанию: "Ansible"

validate_certs

boolean

Если false, сертификаты SSL не проверяются. Этот параметр следует использовать только на сайтах под личным контролем, где применяются самоподписанные сертификаты.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Модуль может выполняться в режиме check_mode и возвращать прогноз статуса изменений без изменения целевого объекта.

diff_mode

Поддержка: нет

В режиме сравнения возвращает сведения об изменениях (или о возможных необходимых изменениях в check_mode).

Примеры

- 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 &lt;brackets&gt; &amp; 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 }}"

Авторы

  • Ramon de la Fuente (@ramondelafuente)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/slack_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API