community.general.mqtt 模块 – 为 IoT 发布 MQTT 主题消息

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.general。 您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.general.mqtt

概要

  • 在 MQTT 主题上发布消息。

要求

以下要求需要在执行此模块的主机上满足。

  • mosquitto

参数

参数

注释

ca_cert

别名: ca_certs

路径

要被此客户端视为受信任的证书颁发机构证书文件的路径。 如果这是唯一给出的选项,则客户端的操作方式与 Web 浏览器类似。 也就是说,它将要求代理具有由 ca_certs 中的证书颁发机构签名的证书,并将使用 TLS v1 进行通信,但不会尝试任何形式的身份验证。 这提供了基本的网络加密,但可能不足以满足代理的配置方式。

client_cert

别名: certfile

路径

指向 PEM 编码客户端证书的路径。 如果此项不为 None,它将用作基于 TLS 身份验证的客户端信息。 此功能的支持取决于代理。

client_id

字符串

MQTT 客户端标识符

如果未指定,将使用值 hostname + pid

client_key

别名: keyfile

路径

指向 PEM 编码客户端私钥的路径。 如果此项不为 None,它将用作基于 TLS 身份验证的客户端信息。 此功能的支持取决于代理。

password

字符串

用于针对代理进行身份验证的 username 的密码。

payload

字符串 / 必需

有效负载。 特殊字符串 "None" 可用于发送 NULL(即空)有效负载,这对于仅使用 topic 通知或清除之前保留的消息非常有用。

port

整数

MQTT 代理端口号

默认值: 1883

qos

字符串

QoS(服务质量)

选择

  • "0" ← (默认)

  • "1"

  • "2"

retain

布尔值

设置此标志会使代理保留(即保持)消息,以便随后订阅主题的应用程序可以立即收到上次保留的消息。

选择

  • false ← (默认)

  • true

server

字符串

MQTT 代理地址/名称

默认值: "localhost"

tls_version

字符串

指定要使用的 SSL/TLS 协议版本。

默认情况下(如果 python 版本支持),则会检测到最高的 TLS 版本。如果不可用,则使用 TLS v1。

选择

  • "tlsv1.1"

  • "tlsv1.2"

topic

字符串 / 必需

MQTT 主题名称

username

字符串

用于向代理验证的用户名。

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 模式下运行,并返回更改状态预测,而不会修改目标。

diff_mode

支持:

当处于 diff 模式时,将返回已更改(或可能需要在 check_mode 模式下更改)的详细信息。

备注

注意

示例

- name: Publish a message on an MQTT topic
  community.general.mqtt:
    topic: 'service/ansible/{{ ansible_hostname }}'
    payload: 'Hello at {{ ansible_date_time.iso8601 }}'
    qos: 0
    retain: false
    client_id: ans001
  delegate_to: localhost

作者

  • Jan-Piet Mens (@jpmens)