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 
参数
| 参数 | 注释 | 
|---|---|
| 此客户端将视为受信任的证书颁发机构证书文件的路径。如果这是给出的唯一选项,则客户端的操作方式类似于 Web 浏览器。也就是说,它要求代理拥有由 ca_certs 中的证书颁发机构签名的证书,并将使用 TLS v1 进行通信,但不会尝试任何形式的身份验证。这提供了基本的网络加密,但根据代理的配置方式,它可能不够充分。 | |
| 指向 PEM 编码客户端证书的路径。如果此值不为 None,它将用作基于 TLS 的身份验证的客户端信息。对此功能的支持取决于代理。 | |
| MQTT 客户端标识符 如果未指定,则将使用  | |
| 指向 PEM 编码客户端私钥的路径。如果此值不为 None,它将用作基于 TLS 的身份验证的客户端信息。对此功能的支持取决于代理。 | |
| 用于  | |
| 有效负载。可以使用特殊字符串  | |
| MQTT 代理端口号 默认值:  | |
| QoS(服务质量) 选项 
 | |
| 设置此标志会导致代理保留(即保存)消息,以便随后订阅该主题的应用程序可以立即接收最后保留的消息。 选项 
 | |
| MQTT 代理地址/名称 默认值:  | |
| 指定要使用的 SSL/TLS 协议版本。 默认情况下(如果 python 版本支持),将检测最高的 TLS 版本。如果不可用,则使用 TLS v1。 选项 
 | |
| MQTT 主题名称 | |
| 用于向代理进行身份验证的用户名。 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持:完全支持 | 可以在  | |
| 支持:不支持 | 在 diff 模式下,将返回有关已更改内容(或可能需要在  | 
备注
注意
- 此模块需要连接到 MQTT 代理,例如 Mosquitto http://mosquitto.org 和 Paho - mqttPython 客户端 (https://pypi.ac.cn/project/paho-mqtt/)。
示例
- 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
