Ansible 无 --list-modules 命令;用 ansible-doc -l 列模块,ansible-doc 模块名 查参数,参数是模块接口部分而非全局变量。
Ansible 中并没有
这个官方支持的命令行选项,该指令无法直接列出“模块变量”。你可能混淆了几个概念:Ansible 模块本身、模块支持的参数(即“模块变量”)、以及如何查看可用模块列表。
查看当前环境所有可用模块
要列出 Ansible 安装后可识别的所有模块(如
、
、
等),使用以下命令:
—— 列出全部模块名称及简短描述
—— 以表格形式展示模块名、所属集合(collection)、路径等信息(需 Ansible ≥ 2.10)
—— 显式指定类型为 module(效果同
)
查看某个模块的参数(即“模块变量”)
每个模块接受一组参数(比如
模块有
、
、
等),这些才是实际使用的“变量”。查看方式:
—— 显示
模块的完整文档,含参数说明、默认值、是否必需、示例等
—— 显示精简版参数签名(类似 Python 的 help() 输出)
—— 在支持的版本中显示参数结构化 JSON(便于脚本解析)
确认模块来源与可用性
某些模块不在核心中,而是来自第三方 collection(如
)。确保它们已安装并被发现:
运行
查看已安装的 collection
用
或
确认模块是否在搜索路径中
若模块未出现,可能是未安装对应 collection,或
配置不正确
注意常见误区
“模块变量”不是独立存在的配置项,而是模块接口的一部分。它不等同于 playbook 中定义的
或
。你在任务中写的
,其中
是
模块的参数,不是全局变量。
没有命令能一次性导出“所有模块的所有参数列表”,因为参数数量庞大且存在条件逻辑(例如某些参数仅在特定条件下生效)。实用做法是按需查文档:
。
--list-modulescopyfileyumansible-doc -lansible-doc -Fansible-doc -t module -l-lcopysrcdestbackupansible-doc copycopyansible-doc -s copyansible-doc -S copycommunity.generalansible-galaxy collection listansible-doc -l | grep '模块名'ansible-doc -F | grep 'collection_name'ANSIBLE_COLLECTIONS_PATHSvarshost_varssrc: /tmp/file.txtsrccopyansible-doc 模块名