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

参数

参数

注释

additional_args

any

要提供给 mongo 命令的其他参数。

以键值对的形式提供。

如果参数是无值标志,则提供一个空字符串作为值。

atlas_auth

boolean

用于 MongoDB Atlas 实例的身份验证路径

选择

  • false ← (默认)

  • true

auth_mechanism

string

身份验证类型。

选择

  • "SCRAM-SHA-256"

  • "SCRAM-SHA-1"

  • "MONGODB-X509"

  • "GSSAPI"

  • "PLAIN"

connection_options

list / elements=any

其他连接选项。

以字典列表或包含用 “=” 分隔的键值对的字符串列表的形式提供。

db

string

运行命令的数据库

默认: "test"

debug

boolean

显示其他调试信息。

选择

  • false ← (默认)

  • true

eval

string

要运行的 MongoDB 命令。

file

string

包含 MongoDB 命令的文件的路径。

idempotent

boolean

为模块提供一种伪幂等形式。

我们对 eval 键的内容或 file 键中提供的文件名执行哈希计算。

首次执行命令时,将创建一个名为 <hash>.success 的字段。

如果此文件存在且 idempotent 设置为 true,则模块将不会重新运行该命令。

选择

  • false ← (默认)

  • true

login_database

string

存储登录凭据的数据库。

默认: "admin"

login_host

string

运行要登录的 MongoDB 实例的主机。

默认: "localhost"

login_password

string

用于身份验证的密码。

当指定 login_user 时为必需。

login_port

integer

要登录的 MongoDB 服务器端口。

默认: 27017

login_user

string

要登录的 MongoDB 用户。

当指定 login_password 时为必需。

mongo_cmd

string

MongoDB shell 命令。

auto - 自动检测使用哪个 MongoDB shell 命令。如果可用,则使用 “mongosh”,否则使用 “mongo” 命令。

mongo - 这在大多数情况下仍然有效,但您可能会遇到 json 解析问题。 如果遇到问题,请使用 ‘raw’ 的 transform_type。

默认: "mongosh"

nodb

boolean

为输出指定非默认编码。

选择

  • false ← (默认)

  • true

norc

boolean

阻止 shell 在启动时获取和评估 ~/.mongorc.js。

选择

  • false ← (默认)

  • true

omit

list / elements=string

要从命令行省略的参数。

这应与 MongoDB shell 接受的参数名称匹配,而不是模块名称。

默认: []

quiet

boolean

在连接过程中静音 shell 的输出。

选择

  • false

  • true ← (默认)

split_char

string

在转换阶段由 split 操作使用。

默认: " "

ssl

别名: tls

boolean

连接到数据库时是否使用 SSL 连接。

选择

  • false ← (默认)

  • true

ssl_ca_certs

别名: tlsCAFile

string

ssl_ca_certs 选项接受 CA 文件的路径。

ssl_cert_reqs

别名: tlsAllowInvalidCertificates

string

指定是否需要来自连接另一端的证书,以及如果提供是否会对其进行验证。

选择

  • "CERT_NONE"

  • "CERT_OPTIONAL"

  • "CERT_REQUIRED" ← (默认)

ssl_certfile

别名: tlsCertificateKeyFile

string

使用 ssl_certfile 选项提供客户端证书。

ssl_crlfile

string

ssl_crlfile 选项接受 CRL 文件的路径。

ssl_keyfile

string

客户端证书的私钥。

ssl_pem_passphrase

别名: tlsCertificateKeyFilePassword

string

用于解密加密私钥的密码。

strict_compatibility

boolean

对 pymongo 和 MongoDB 软件版本强制执行严格的要求

选择

  • false

  • true ← (默认)

stringify

boolean

将命令包装在 JSON.stringify(<js cmd>) (mongo) 或 EJSON.stringify(<js cmd>) (mongosh) 中的 eval 中。

用于转义以扩展 JSON 格式返回的文档。

使用 mongo 时自动设置为 false。

使用 mongosh 时自动设置为 true。

显式设置以覆盖自动选择。

选择

  • false

  • true

transform

string

转换返回给用户的输出。

auto - 尝试自动决定最佳转换。

split - 在字符上拆分输出。

json - 解析为 json。

raw - 返回原始输出。

选择

  • "auto" ← (默认)

  • "split"

  • "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"

返回值

常见的返回值已在此处记录 这里,以下是此模块独有的字段

描述

changed

boolean

更改状态。

返回: 始终

err

string

来自 mongo 的原始 stderr。

返回: 当 debug 设置为 true 时

failed

boolean

出了点问题。

返回: 失败时

file

string

成功执行的 JS 文件。

返回: 当使用 js 文件时。

msg

string

指示发生了什么的消息。

返回: 始终

out

string

来自 mongo 的原始 stdout。

返回: 当 debug 设置为 true 时

rc

integer

来自 mongo 的返回代码。

返回: 当 debug 设置为 true 时

transformed_output

list / elements=string

来自 mongo 命令的输出。 我们尝试将其解析为列表或 json(如果可能)。

返回: 成功时

作者

  • Rhys Campbell (@rhysmeister)