Spec-Zone.ru › Ansible

Модуль community.rabbitmq.rabbitmq_publish – публикация сообщения в очередь RabbitMQ.

Примечание

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

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

Для установки используйте: ansible-galaxy collection install community.rabbitmq. Для работы с этим модулем требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.rabbitmq.rabbitmq_publish.

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

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

  • Публикация сообщения в очередь RabbitMQ с использованием блокирующего соединения.

Требования

Следующие требования должны быть выполнены на хосте, где выполняется этот модуль.

  • pika

Параметры

Параметр

Комментарии

auto_delete

boolean

Включить автоматическое удаление очереди.

Варианты:

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

body

string

Тело сообщения.

Нельзя указать body, если задан src.

cafile

string

Файл CA, используемый при подключении к серверу RabbitMQ по SSL.

Если этот параметр указан, необходимо также указать certfile и keyfile.

certfile

string

Клиентский сертификат для установки SSL-соединения.

Если этот параметр указан, необходимо также указать cafile и keyfile.

content_type

string

Тип содержимого тела сообщения.

По умолчанию: "text/plain"

durable

boolean

Сделать очередь устойчивой.

Варианты:

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

exchange

string

Обменник, в который нужно опубликовать сообщение.

Нельзя указать exchange, если задан queue.

exclusive

boolean

Сделать очередь эксклюзивной.

Варианты:

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

headers

dictionary

Словарь заголовков, передаваемых вместе с сообщением.

По умолчанию: {}

host

string

Имя хоста или IP-адрес сервера RabbitMQ.

keyfile

string

Клиентский ключ для установки SSL-соединения.

Если этот параметр указан, необходимо также указать cafile и certfile.

password

string

Пароль RabbitMQ.

port

integer

Порт сервера RabbitMQ.

proto

string

Используемый протокол.

Варианты:

  • "amqps"
  • "amqp"

queue

string

Очередь, в которую нужно опубликовать сообщение. Если очередь не указана, RabbitMQ вернёт случайное имя очереди.

Нельзя указать queue, если задан exchange.

routing_key

string

Ключ маршрутизации.

src

псевдонимы: file

path

Файл для загрузки в очередь. Если content_type не задан (оставлен по умолчанию), выполняется попытка автоматически определить MIME-тип.

Нельзя указать src, если задан body.

Имя файла добавляется в заголовки сообщения, отправляемого в RabbitMQ. Ключом является filename, значением — имя файла.

url

string

Строка URL для подключения к серверу RabbitMQ.

url и host/port/user/pass/vhost взаимоисключающие: используйте либо один вариант, либо другой, но не оба одновременно.

username

string

Имя пользователя RabbitMQ.

vhost

string

Виртуальный хост, к которому следует обратиться.

Чтобы использовать виртуальный хост по умолчанию, укажите '%2F'.

Примечания

Примечание

  • Для работы этого модуля требуется библиотека pika для Python: https://pika.readthedocs.io/.
  • Pika — это реализация протокола AMQP 0-9-1 на чистом Python, которая стремится оставаться в значительной степени независимой от используемой библиотеки сетевой поддержки.
  • Модуль протестирован с RabbitMQ. Другие серверы на основе протокола AMQP 0.9.1 могут работать, но это не проверено и не гарантируется.
  • Аутентификация по сертификату проверялась с сертификатами, созданными согласно инструкции https://www.rabbitmq.com/ssl.html#automated-certificate-generation, и переменными конфигурации RabbitMQ ssl_options.verify = verify_peer и ssl_options.fail_if_no_peer_cert = true.

Примеры

- name: Publish to an exchange
  community.rabbitmq.rabbitmq_publish:
    exchange: exchange1
    url: "amqp://guest:guest@192.168.0.32:5672/%2F"
    body: "Hello exchange from ansible module rabbitmq_publish"
    content_type: "text/plain"

- name: Publish to an exchange with routing_key
  community.rabbitmq.rabbitmq_publish:
    exchange: exchange1
    routing_key: queue1
    url: "amqp://guest:guest@192.168.0.32:5672/%2F"
    body: "Hello queue via exchange routing_key from ansible module rabbitmq_publish"
    content_type: "text/plain"

- name: Publish a message to a queue with headers
  community.rabbitmq.rabbitmq_publish:
    url: "amqp://guest:guest@192.168.0.32:5672/%2F"
    queue: 'test'
    body: "Hello world from ansible module rabbitmq_publish"
    content_type: "text/plain"
    headers:
      myHeader: myHeaderValue

- name: Publish a file to a queue
  community.rabbitmq.rabbitmq_publish:
    url: "amqp://guest:guest@192.168.0.32:5672/%2F"
    queue: 'images'
    file: 'path/to/logo.gif'

- name: RabbitMQ auto generated queue
  community.rabbitmq.rabbitmq_publish:
    url: "amqp://guest:guest@192.168.0.32:5672/%2F"
    body: "Hello world random queue from ansible module rabbitmq_publish"
    content_type: "text/plain"

- name: Publish with certs
  community.rabbitmq.rabbitmq_publish:
    url: "amqps://guest:guest@192.168.0.32:5671/%2F"
    body: "Hello test queue from ansible module rabbitmq_publish via SSL certs"
    queue: 'test'
    content_type: "text/plain"
    cafile: 'ca_certificate.pem'
    certfile: 'client_certificate.pem'
    keyfile: 'client_key.pem'

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:

Ключ

Описание

result

dictionary

При отправке в обменник результат содержит статус msg, тип содержимого content_type и имя обменника exchange

а также ключ маршрутизации routing_key.

При отправке в очередь результат содержит статус msg, тип содержимого content_type и имя очереди queue.

Возвращается: success

Пример: "'result': { 'content_type': 'text/plain', 'msg': 'Successfully published to queue test', 'queue': 'test' }\n"

Авторы

  • John Imison (@Im0)

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

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 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/rabbitmq/rabbitmq_publish_module.html

Spec-Zone.ru

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