community.mongodb.mongodb_schema – Manages MongoDB Document Schema Validators.

Note

This plugin is part of the community.mongodb collection (version 1.3.1).

To install it use: ansible-galaxy collection install community.mongodb.

To use it in a playbook, specify: community.mongodb.mongodb_schema.

New in version 1.3.0: of community.mongodb

Synopsis

Requirements

The below requirements are needed on the host that executes this module.

  • pymongo

Parameters

Parameter Choices/Defaults Comments
action
string
    Choices:
  • error ←
  • warn
The validation action for MongoDB to perform when handling invalid documents.
auth_mechanism
string
    Choices:
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-X509
  • GSSAPI
  • PLAIN
Authentication type.
collection
string / required
The collection to work with.
connection_options
list / elements=raw
Additional connection options.
Supply as a list of dicts or strings containing key value pairs seperated with '='.
db
string / required
The database to work with.
debug
boolean
    Choices:
  • no ←
  • yes
Enable additional debugging output.
level
string
    Choices:
  • strict ←
  • moderate
The validation level MongoDB should apply when updating existing documents.
login_database
string
Default:
"admin"
The database where login credentials are stored.
login_host
string
Default:
"localhost"
The host running MongoDB instance to login to.
login_password
string
The password used to authenticate with.
Required when login_user is specified.
login_port
integer
Default:
27017
The MongoDB server port to login to.
login_user
string
The MongoDB user to login with.
Required when login_password is specified.
properties
dictionary
Individual property specification.
required
list / elements=string
List of fields that are required.
ssl
boolean
    Choices:
  • no ←
  • yes
Whether to use an SSL connection when connecting to the database.
ssl_ca_certs
string
The ssl_ca_certs option takes a path to a CA file.
ssl_cert_reqs
string
    Choices:
  • CERT_NONE
  • CERT_OPTIONAL
  • CERT_REQUIRED ←
Specifies whether a certificate is required from the other side of the connection, and whether it will be validated if provided.
ssl_certfile
string
Present a client certificate using the ssl_certfile option.
ssl_crlfile
string
The ssl_crlfile option takes a path to a CRL file.
ssl_keyfile
string
Private key for the client certificate.
ssl_pem_passphrase
string
Passphrase to decrypt encrypted private keys.
state
string
    Choices:
  • present ←
  • absent
The state of the validator.

Notes

Note

  • Requires the pymongo Python package on the remote host, version 2.4.2+.

Examples

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

- name: More advanced example using properties
  community.mongodb.mongodb_schema:
    db: "rhys"
    collection: "contacts"
    state: "absent"
  - name: Test with debuging option - Without check mode
    community.mongodb.mongodb_schema:
      <<: *mongo_parameters
      db: "rhys"
      collection: "contacts"
      required:
        - "email"
        - "first_name"
        - "last_name"
      properties:
        status:
          bsonType: "string"
          enum: ["ACTIVE", "DISABLED"]
          description: "can only be ACTIVE or DISABLED"
        year:
          bsonType: "int"
          minimum: 2021
          maximum: 3020
          exclusiveMaximum: false
          description: "must be an integer from 2021 to 3020"
        options:
          bsonType: "array"
          maxItems: 10
          minItems: 5
          uniqueItems: yes
        email:
          maxLength: 150
          minLength: 5

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
changed
boolean
on success
If the module caused a change.

module_config
dictionary
when debug is true
The validator document as indicated by the module invocation.

msg
string
always
Status message.

validator
dictionary
when debug is true
The validator document as read from the instance.



Authors

  • Rhys Campbell (@rhysmeister)