community.mongodb.mongodb_shell 模块 – 通过 MongoDB shell 运行命令。
注意
此模块是 community.mongodb 集合(版本 1.7.8)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.mongodb
。您需要更多要求才能使用此模块,请参阅要求了解详细信息。
要在 playbook 中使用它,请指定:community.mongodb.mongodb_shell
。
community.mongodb 1.1.0 中的新增功能
概要
通过 MongoDB shell 运行命令。
使用 eval 参数提供或包含在 Javascript 文件中的命令。
尝试将返回的数据解析为 Ansible 可以使用的格式。
默认情况下,模块使用 mongosh shell。
对 mongo 的支持已被弃用。
要求
执行此模块的主机需要满足以下要求。
mongosh
参数
参数 |
注释 |
---|---|
要提供给 mongo 命令的其他参数。 以键值对形式提供。 如果参数是无值标志,则提供空字符串作为值。 |
|
用于 MongoDB Atlas 实例的身份验证路径 选择
|
|
身份验证类型。 选择
|
|
其他连接选项。 以字典列表或包含以 “=” 分隔的键值对的字符串形式提供。 |
|
要针对其运行命令的数据库 默认: |
|
显示其他调试信息。 选择
|
|
要运行的 MongoDB 命令。 |
|
包含 MongoDB 命令的文件的路径。 |
|
为模块提供一种伪幂等形式。 我们对 eval 键的内容或文件键中提供的文件名执行哈希计算。 首次执行命令时,将创建一个名为 <hash>.success 的文件。 如果此文件存在并且 idempotent 设置为 true,则模块不会重新运行该命令。 选择
|
|
存储登录凭据的数据库。 默认: |
|
要登录的运行 MongoDB 实例的主机。 默认: |
|
用于身份验证的密码。 当指定 login_user 时是必需的。 |
|
要登录的 MongoDB 服务器端口。 默认: |
|
要登录的 MongoDB 用户。 当指定 login_password 时是必需的。 |
|
MongoDB shell 命令。 auto - 自动检测使用的 MongoDB shell 命令。如果可用,则使用 “mongosh”,否则使用 “mongo” 命令。 mongo - 这在大多数情况下仍然有效,但您在 json parsinf 方面可能会遇到问题。如果遇到问题,请使用 ‘raw’ 的 transform_type。 默认: |
|
为输出指定非默认编码。 选择
|
|
防止 shell 在启动时获取和评估 ~/.mongorc.js。 选择
|
|
要从命令行中省略的参数。 这应该与 MongoDB shell 接受的参数名称匹配,而不是模块名称。 默认: |
|
在连接过程中使 shell 的输出静音。 选择
|
|
在转换阶段的 split 操作中使用。 默认: |
|
连接到数据库时是否使用 SSL 连接。 选择
|
|
ssl_ca_certs 选项采用 CA 文件的路径。 |
|
指定是否需要来自连接另一端的证书,以及如果提供证书是否将进行验证。 选择
|
|
使用 ssl_certfile 选项提供客户端证书。 |
|
ssl_crlfile 选项采用 CRL 文件的路径。 |
|
客户端证书的私钥。 |
|
用于解密加密私钥的密码。 |
|
强制 pymongo 和 MongoDB 软件版本的严格要求 选择
|
|
将命令包装在 eval 中的 JSON.stringify(<js cmd>) (mongo) 或 EJSON.stringify(<js cmd>) (mongosh) 中。 对于转义以扩展 JSON 格式返回的文档很有用。 当使用 mongo 时自动设置为 false。 当使用 mongosh 时自动设置为 true。 显式设置以覆盖自动选择。 选择
|
|
转换返回给用户的输出。 auto - 尝试自动决定最佳转换方式。 split - 根据字符拆分输出。 json - 解析为 JSON。 raw - 返回原始输出。 选择
|
示例
- name: Run the listDatabases command
community.mongodb.mongodb_shell:
login_user: user
login_password: secret
eval: "db.adminCommand('listDatabases')"
- name: List collections and stringify the output
community.mongodb.mongodb_shell:
login_user: user
login_password: secret
eval: "db.adminCommand('listCollections')"
stringify: yes
- name: Run the showBuiltinRoles command
community.mongodb.mongodb_shell:
login_user: user
login_password: secret
eval: "db.getRoles({showBuiltinRoles: true})"
- name: Run a js file containing MongoDB commands with pseudo-idempotency
community.mongodb.mongodb_shell:
login_user: user
login_password: secret
file: "/path/to/mongo/file.js"
idempotent: yes
- name: Provide a couple of additional cmd args
community.mongodb.mongodb_shell:
login_user: user
login_password: secret
eval: "db.adminCommand('listDatabases')"
additional_args:
verbose: True
networkMessageCompressors: "snappy"
返回值
通用返回值记录在这里,以下是此模块独有的字段
键 |
描述 |
---|---|
变更状态。 返回: 总是 |
|
来自 mongo 的原始 stderr。 返回: 当 debug 设置为 true 时 |
|
出现错误。 返回: 失败时 |
|
成功执行的 JS 文件。 返回: 当使用 js 文件时。 |
|
指示发生了什么的消息。 返回: 总是 |
|
来自 mongo 的原始 stdout。 返回: 当 debug 设置为 true 时 |
|
来自 mongo 的返回码。 返回: 当 debug 设置为 true 时 |
|
来自 mongo 命令的输出。我们会尝试尽可能将其解析为列表或 JSON。 返回: 成功时 |