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)