community.rabbitmq.rabbitmq_publish – Publish a message to a RabbitMQ queue.
Note
This plugin is part of the community.rabbitmq collection (version 1.0.1).
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  bodycannot be provided if asrcis 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  srccannot be provided if abodyis 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.10/collections/community/rabbitmq/rabbitmq_publish_module.html