Модуль 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 | Включить автоматическое удаление очереди. Варианты:
|
body string | Тело сообщения. Нельзя указать |
cafile string | Файл CA, используемый при подключении к серверу RabbitMQ по SSL. Если этот параметр указан, необходимо также указать certfile и keyfile. |
certfile string | Клиентский сертификат для установки SSL-соединения. Если этот параметр указан, необходимо также указать cafile и keyfile. |
content_type string | Тип содержимого тела сообщения. По умолчанию: |
durable boolean | Сделать очередь устойчивой. Варианты:
|
exchange string | Обменник, в который нужно опубликовать сообщение. Нельзя указать |
exclusive boolean | Сделать очередь эксклюзивной. Варианты:
|
headers dictionary | Словарь заголовков, передаваемых вместе с сообщением. По умолчанию: |
host string | Имя хоста или IP-адрес сервера RabbitMQ. |
keyfile string | Клиентский ключ для установки SSL-соединения. Если этот параметр указан, необходимо также указать cafile и certfile. |
password string | Пароль RabbitMQ. |
port integer | Порт сервера RabbitMQ. |
proto string | Используемый протокол. Варианты:
|
queue string | Очередь, в которую нужно опубликовать сообщение. Если очередь не указана, RabbitMQ вернёт случайное имя очереди. Нельзя указать |
routing_key string | Ключ маршрутизации. |
src псевдонимы: file path | Файл для загрузки в очередь. Если content_type не задан (оставлен по умолчанию), выполняется попытка автоматически определить MIME-тип. Нельзя указать Имя файла добавляется в заголовки сообщения, отправляемого в RabbitMQ. Ключом является |
url string | Строка URL для подключения к серверу RabbitMQ. url и host/port/user/pass/vhost взаимоисключающие: используйте либо один вариант, либо другой, но не оба одновременно. |
username string | Имя пользователя RabbitMQ. |
vhost string | Виртуальный хост, к которому следует обратиться. Чтобы использовать виртуальный хост по умолчанию, укажите |
Примечания
Примечание
- Для работы этого модуля требуется библиотека 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 Пример: |
Ссылки на коллекцию
© 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