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
.
Synopsis
- Publish a message on a RabbitMQ queue using a blocking connection.
Requirements
The below requirements are needed on the host that executes this module.
- pika
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
auto_delete boolean |
| Set the queue to auto delete. |
body string | The body of the message. A body cannot be provided if a src is specified. | |
cafile string | CA file used during connection to the RabbitMQ server over SSL. If this option is specified, also certfile and keyfile must be specified. | |
certfile string | Client certificate to establish SSL connection. If this option is specified, also cafile and keyfile must be specified. | |
content_type string | Default: "text/plain" | The content type of the body. |
durable boolean |
| Set the queue to be durable. |
exchange string | The exchange to publish a message to. | |
exclusive boolean |
| Set the queue to be exclusive. |
headers dictionary | Default: {} | A dictionary of headers to post with the message. |
host string | The RabbitMQ server hostname or IP. | |
keyfile string | Client key to establish SSL connection. If this option is specified, also cafile and certfile must be specified. | |
password string | The RabbitMQ password. | |
port integer | The RabbitMQ server port. | |
proto string |
| The protocol to use. |
queue string | The queue to publish a message to. If no queue is specified, RabbitMQ will return a random queue name. | |
routing_key string | The routing key. | |
src path | A file to upload to the queue. Automatic mime type detection is attempted if content_type is not defined (left as default). A src cannot be provided if a body is specified.The filename is added to the headers of the posted message to RabbitMQ. Key being the filename , value is the filename.aliases: file | |
url string | 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. | |
username string | The RabbitMQ username. | |
vhost string | The virtual host to target. If default vhost is required, use '%2F' . |
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 | Returned | Description |
---|---|---|
result dictionary | success | Contains the status msg, content type content_type and the queue name queue. Sample: 'result': { 'content_type': 'text/plain', 'msg': 'Successfully published to queue test', 'queue': 'test' } |
Authors
- John Imison (@Im0)
© 2012–2018 Michael DeHaan
© 2018–2021 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