community.rabbitmq.rabbitmq_queue 模块 – 管理 RabbitMQ 队列

注意

此模块是 community.rabbitmq 集合 (版本 1.3.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.rabbitmq。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:community.rabbitmq.rabbitmq_queue

概要

  • 此模块使用 RabbitMQ Rest API 来创建/删除队列。

  • 由于 API 的限制,它无法修改现有队列。

要求

执行此模块的主机需要以下要求。

  • requests >= 1.0.0

参数

参数

注释

arguments

字典

队列的额外参数。如果定义此参数,则它是一个键/值字典

此处的参数优先于其他参数。如果两者都已定义,则将使用此参数。

默认值: {}

auto_delete

布尔值

如果队列应该在所有队列/与之解绑的队列之后自行删除。

选项

  • false ← (默认)

  • true

auto_expires

整数

队列在自动删除之前可以不使用的时长(毫秒)。

ca_cert

别名:cacert

路径

用于验证与管理 API 的 SSL 连接的 CA 证书。

client_cert

别名:cert

路径

发送到管理 API 的 SSL 连接的客户端证书。

client_key

别名:key

路径

与客户端证书匹配的私钥。

dead_letter_exchange

字符串

如果消息被拒绝或过期,则将其重新发布到的交换机的可选名称。

dead_letter_routing_key

字符串

消息失效时的可选替换路由键。

如果未设置,将使用原始路由键。

durable

布尔值

队列是否持久化。

选项

  • false

  • true ← (默认)

login_host

字符串

RabbitMQ 连接主机。

默认值: "localhost"

login_password

字符串

RabbitMQ 连接密码。

默认值: "guest"

login_port

字符串

RabbitMQ 管理 API 端口。

默认值: "15672"

login_protocol

字符串

RabbitMQ 管理 API 协议。

选项

  • "http" ← (默认)

  • "https"

login_user

字符串

RabbitMQ 连接用户。

默认值: "guest"

max_length

整数

队列在开始拒绝消息之前可以包含的消息数量。

max_priority

整数

队列支持的最大优先级数。

如果未设置,则队列将不支持消息优先级。

数字越大,优先级越高。

message_ttl

整数

消息在被丢弃之前可以在队列中存在的时长(毫秒)。

name

字符串 / 必需

队列的名称。

state

字符串

队列是否存在。

选项

  • "present" ← (默认)

  • "absent"

vhost

字符串

RabbitMQ 虚拟主机。

默认值: "/"

示例

- name: Create a queue
  community.rabbitmq.rabbitmq_queue:
    name: myQueue

- name: Create a queue on remote host
  community.rabbitmq.rabbitmq_queue:
    name: myRemoteQueue
    login_user: user
    login_password: secret
    login_host: remote.example.org

# You may specify different types of queues using the arguments parameter.
- name: Create RabbitMQ stream
  become: yes
  community.rabbitmq.rabbitmq_queue:
    name: test-x
    arguments:
      x-queue-type: stream
      x-max-age: 24h

作者

  • Manuel Sousa (@manuel-sousa)