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 键的内容或 file 键中提供的文件名执行哈希计算。 首次执行命令时,将创建一个名为 <hash>.success 的字段。 如果此文件存在且 idempotent 设置为 true,则模块将不会重新运行该命令。 选择
|
|
存储登录凭据的数据库。 默认: |
|
运行要登录的 MongoDB 实例的主机。 默认: |
|
用于身份验证的密码。 当指定 login_user 时为必需。 |
|
要登录的 MongoDB 服务器端口。 默认: |
|
要登录的 MongoDB 用户。 当指定 login_password 时为必需。 |
|
MongoDB shell 命令。 auto - 自动检测使用哪个 MongoDB shell 命令。如果可用,则使用 “mongosh”,否则使用 “mongo” 命令。 mongo - 这在大多数情况下仍然有效,但您可能会遇到 json 解析问题。 如果遇到问题,请使用 ‘raw’ 的 transform_type。 默认: |
|
为输出指定非默认编码。 选择
|
|
阻止 shell 在启动时获取和评估 ~/.mongorc.js。 选择
|
|
要从命令行省略的参数。 这应与 MongoDB shell 接受的参数名称匹配,而不是模块名称。 默认: |
|
在连接过程中静音 shell 的输出。 选择
|
|
在转换阶段由 split 操作使用。 默认: |
|
连接到数据库时是否使用 SSL 连接。 选择
|
|
ssl_ca_certs 选项接受 CA 文件的路径。 |
|
指定是否需要来自连接另一端的证书,以及如果提供是否会对其进行验证。 选择
|
|
使用 ssl_certfile 选项提供客户端证书。 |
|
ssl_crlfile 选项接受 CRL 文件的路径。 |
|
客户端证书的私钥。 |
|
用于解密加密私钥的密码。 |
|
对 pymongo 和 MongoDB 软件版本强制执行严格的要求 选择
|
|
将命令包装在 JSON.stringify(<js cmd>) (mongo) 或 EJSON.stringify(<js cmd>) (mongosh) 中的 eval 中。 用于转义以扩展 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(如果可能)。 返回: 成功时 |