Spec-Zone.ru › Ansible

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

Примечание

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

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

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

Для использования в playbook, укажите: 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

aliases: file

path

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

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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/rabbitmq/rabbitmq_publish_module.html

Spec-Zone.ru

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