跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

如何通过--list-modules指令查看当前环境所有可用模块变量

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

相关文章