community.rabbitmq.rabbitmq_publish – Publish a message to a RabbitMQ queue.
Note
This plugin is part of the community.rabbitmq collection (version 1.1.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.rabbitmq
.
To use it in a playbook, specify: community.rabbitmq.rabbitmq_publish
.
Parameters
Parameter |
Comments |
---|---|
Set the queue to auto delete. Choices:
|
|
The body of the message. A |
|
CA file used during connection to the RabbitMQ server over SSL. If this option is specified, also certfile and keyfile must be specified. |
|
Client certificate to establish SSL connection. If this option is specified, also cafile and keyfile must be specified. |
|
The content type of the body. Default: “text/plain” |
|
Set the queue to be durable. Choices:
|
|
The exchange to publish a message to. |
|
Set the queue to be exclusive. Choices:
|
|
A dictionary of headers to post with the message. Default: {} |
|
The RabbitMQ server hostname or IP. |
|
Client key to establish SSL connection. If this option is specified, also cafile and certfile must be specified. |
|
The RabbitMQ password. |
|
The RabbitMQ server port. |
|
The protocol to use. Choices:
|
|
The queue to publish a message to. If no queue is specified, RabbitMQ will return a random queue name. |
|
The routing key. |
|
A file to upload to the queue. Automatic mime type detection is attempted if content_type is not defined (left as default). A The filename is added to the headers of the posted message to RabbitMQ. Key being the |
|
An URL connection string to connect to the RabbitMQ server. url and host/port/user/pass/vhost are mutually exclusive, use either or but not both. |
|
The RabbitMQ username. |
|
The virtual host to target. If default vhost is required, use |
Notes
Note
This module requires the pika python library https://pika.readthedocs.io/.
Pika is a pure-Python implementation of the AMQP 0-9-1 protocol that tries to stay fairly independent of the underlying network support library.
This module is tested against RabbitMQ. Other AMQP 0.9.1 protocol based servers may work but not tested/guaranteed.
The certificate authentication was tested with certificates created via https://www.rabbitmq.com/ssl.html#automated-certificate-generation and RabbitMQ configuration variables
ssl_options.verify = verify_peer
&ssl_options.fail_if_no_peer_cert = true
.
Examples
- name: Publish a message to a queue with headers
community.rabbitmq.rabbitmq_publish:
url: "amqp://guest:[email protected]: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:[email protected]:5672/%2F"
queue: 'images'
file: 'path/to/logo.gif'
- name: RabbitMQ auto generated queue
community.rabbitmq.rabbitmq_publish:
url: "amqp://guest:[email protected]: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:[email protected]: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'
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Contains the status msg, content type content_type and the queue name queue. Returned: success Sample: “\u0027result\u0027: { \u0027content_type\u0027: \u0027text/plain\u0027, \u0027msg\u0027: \u0027Successfully published to queue test\u0027, \u0027queue\u0027: \u0027test\u0027 }\n” |
Authors
John Imison (@Im0)