community.rabbitmq.rabbitmq_publish (1.3.0) — module

Publish a message to a RabbitMQ queue.

Authors: John Imison (@Im0)

Install collection

Install with ansible-galaxy collection install community.rabbitmq:==1.3.0


Add to requirements.yml

  collections:
    - name: community.rabbitmq
      version: 1.3.0

Description

Publish a message on a RabbitMQ queue using a blocking connection.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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'

Inputs

    
src:
    aliases:
    - file
    description:
    - A file to upload to the queue.  Automatic mime type detection is attempted if content_type
      is not defined (left as default).
    - A C(src) cannot be provided if a C(body) is specified.
    - The filename is added to the headers of the posted message to RabbitMQ. Key being
      the C(filename), value is the filename.
    type: path

url:
    description:
    - An URL connection string to connect to the RabbitMQ server.
    - I(url) and I(host)/I(port)/I(user)/I(pass)/I(vhost) are mutually exclusive, use
      either or but not both.
    type: str

body:
    description:
    - The body of the message.
    - A C(body) cannot be provided if a C(src) is specified.
    type: str

host:
    description:
    - The RabbitMQ server hostname or IP.
    type: str

port:
    description:
    - The RabbitMQ server port.
    type: int

proto:
    choices:
    - amqps
    - amqp
    description:
    - The protocol to use.
    type: str

queue:
    description:
    - The queue to publish a message to.  If no queue is specified, RabbitMQ will return
      a random queue name.
    - A C(queue) cannot be provided if an C(exchange) is specified.
    type: str

vhost:
    description:
    - The virtual host to target.
    - If default vhost is required, use C('%2F').
    type: str

cafile:
    description:
    - CA file used during connection to the RabbitMQ server over SSL.
    - If this option is specified, also I(certfile) and I(keyfile) must be specified.
    type: str

durable:
    default: false
    description:
    - Set the queue to be durable.
    type: bool

headers:
    default: {}
    description:
    - A dictionary of headers to post with the message.
    type: dict

keyfile:
    description:
    - Client key to establish SSL connection.
    - If this option is specified, also I(cafile) and I(certfile) must be specified.
    type: str

certfile:
    description:
    - Client certificate to establish SSL connection.
    - If this option is specified, also I(cafile) and I(keyfile) must be specified.
    type: str

exchange:
    description:
    - The exchange to publish a message to.
    - An C(exchange) cannot be provided if a C(queue) is specified.
    type: str

password:
    description:
    - The RabbitMQ password.
    type: str

username:
    description:
    - The RabbitMQ username.
    type: str

exclusive:
    default: false
    description:
    - Set the queue to be exclusive.
    type: bool

auto_delete:
    default: false
    description:
    - Set the queue to auto delete.
    type: bool

routing_key:
    description:
    - The routing key.
    type: str

content_type:
    default: text/plain
    description:
    - The content type of the body.
    type: str

Outputs

result:
  description:
  - If posted to an exchange, the result contains the status I(msg), content type
    I(content_type) the exchange name I(exchange)
  - and the routing key I(routing_key).
  - If posted to a queue, the result contains the status I(msg), content type I(content_type)
    and the queue name I(queue).
  returned: success
  sample: '''result'': { ''content_type'': ''text/plain'', ''msg'': ''Successfully
    published to queue test'', ''queue'': ''test'' }

    '
  type: dict