community.mongodb.mongodb_schema 模块 – 管理 MongoDB 文档模式验证器。

注意

此模块是 community.mongodb 集合(版本 1.7.8)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。 它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.mongodb。您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:community.mongodb.mongodb_schema

community.mongodb 1.3.0 中的新增功能

概要

要求

执行此模块的主机上需要以下要求。

  • pymongo

参数

参数

注释

action

字符串

MongoDB 在处理无效文档时执行的验证操作。

选择

  • "error" ← (默认)

  • "warn"

atlas_auth

布尔值

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

选择

  • false ← (默认)

  • true

auth_mechanism

字符串

身份验证类型。

选择

  • "SCRAM-SHA-256"

  • "SCRAM-SHA-1"

  • "MONGODB-X509"

  • "GSSAPI"

  • "PLAIN"

collection

字符串 / 必需

要使用的集合。

connection_options

列表 / elements=any

其他连接选项。

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

db

字符串 / 必需

要使用的数据库。

debug

布尔值

启用其他调试输出。

选择

  • false ← (默认)

  • true

level

字符串

MongoDB 在更新现有文档时应应用的验证级别。

选择

  • "strict" ← (默认)

  • "moderate"

login_database

字符串

存储登录凭据的数据库。

默认: "admin"

login_host

字符串

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

默认: "localhost"

login_password

字符串

用于身份验证的密码。

当指定 login_user 时是必需的。

login_port

整数

要登录的 MongoDB 服务器端口。

默认: 27017

login_user

字符串

用于登录的 MongoDB 用户。

当指定 login_password 时是必需的。

properties

字典

单独的属性规范。

默认: {}

replica_set

字符串

副本集名称。

required

列表 / elements=string

必需字段的列表。

ssl

别名:tls

布尔值

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

选择

  • false ← (默认)

  • true

ssl_ca_certs

别名:tlsCAFile

字符串

ssl_ca_certs 选项采用 CA 文件的路径。

ssl_cert_reqs

别名:tlsAllowInvalidCertificates

字符串

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

选择

  • "CERT_NONE"

  • "CERT_OPTIONAL"

  • "CERT_REQUIRED" ← (默认)

ssl_certfile

别名:tlsCertificateKeyFile

字符串

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

ssl_crlfile

字符串

ssl_crlfile 选项采用 CRL 文件的路径。

ssl_keyfile

字符串

客户端证书的私钥。

ssl_pem_passphrase

别名:tlsCertificateKeyFilePassword

字符串

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

state

字符串

验证器的状态。

选择

  • "present" ← (默认)

  • "absent"

strict_compatibility

布尔值

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

选择

  • false

  • true ← (默认)

说明

注意

  • 远程主机上需要 pymongo Python 包,版本 4+。

示例

---
- name: Require that an email address field is in every document
  community.mongodb.mongodb_schema:
    collection: contacts
    db: rhys
    required:
      - email

- name: Remove a schema rule
  community.mongodb.mongodb_schema:
    collection: contacts
    db: rhys
    state: absent


- name: More advanced example using properties
  community.mongodb.mongodb_schema:
    collection: contacts
    db: rhys
    properties:
      email:
        maxLength: 150
        minLength: 5
      options:
        bsonType: array
        maxItems: 10
        minItems: 5
        uniqueItems: true
      status:
        bsonType: string
        description: "can only be ACTIVE or DISABLED"
        enum:
          - ACTIVE
          - DISABLED
      year:
        bsonType: int
        description: "must be an integer from 2021 to 3020"
        exclusiveMaximum: false
        maximum: 3020
        minimum: 2021
    required:
      - email
      - first_name
      - last_name

返回值

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

描述

changed

布尔值

如果模块导致更改。

返回: 成功时

module_config

字典

由模块调用指示的验证器文档。

返回: 当 debug 为 true 时

msg

字符串

状态消息。

返回: 总是

validator

字典

从实例读取的验证器文档。

返回: 当 debug 为 true 时

作者

  • Rhys Campbell (@rhysmeister)