community.mongodb.mongodb_info – Gather information about MongoDB instance.

Note

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

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

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

New in version 1.0.0: of community.mongodb

Synopsis

  • Gather information about MongoDB instance.

Requirements

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

  • pymongo

Parameters

Parameter Choices/Defaults Comments
auth_mechanism
string
    Choices:
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-X509
  • GSSAPI
  • PLAIN
Authentication type.
connection_options
list / elements=raw
Additional connection options.
Supply as a list of dicts or strings containing key value pairs seperated with '='.
filter
list / elements=string
Limit the collected information by comma separated string or YAML list.
Allowable values are general, databases, total_size, parameters, users, roles.
By default, collects all subsets.
You can use '!' before value (for example, !users) to exclude it from the information.
If you pass including and excluding values to the filter, for example, filter=!general,users, the excluding values, !general in this case, will be ignored.
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.
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.

Notes

Note

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

Examples

- name: Gather all supported information
  community.mongodb.mongodb_info:
    login_user: admin
    login_password: secret
  register: result

- name: Show gathered info
  debug:
    msg: '{{ result }}'

- name: Gather only information about databases and their total size
  community.mongodb.mongodb_info:
    login_user: admin
    login_password: secret
    filter: databases, total_size

- name: Gather all information except parameters
  community.mongodb.mongodb_info:
    login_user: admin
    login_password: secret
    filter: '!parameters'

Return Values

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

Key Returned Description
databases
dictionary
always
Database information.

Sample:
{'admin': {'empty': False, 'sizeOnDisk': 245760}, 'config': {'empty': False, 'sizeOnDisk': 110592}}
general
dictionary
always
General instance information.

Sample:
{'allocator': 'tcmalloc', 'bits': 64, 'maxBsonObjectSize': 16777216, 'storageEngines': ['biggie'], 'version': '4.2.3'}
parameters
dictionary
always
Server parameters information.

Sample:
{'maxOplogTruncationPointsAfterStartup': 100, 'maxOplogTruncationPointsDuringStartup': 100, 'maxSessions': 1000000}
roles
dictionary
always
Role information.

Sample:
{'db': {'restore': {'inheritedRoles': [], 'isBuiltin': True, 'roles': []}}}
total_size
integer
always
Total size of all databases in bytes.

Sample:
397312
users
dictionary
always
User information.

Sample:
{'db': {'new_user': {'_id': 'config.new_user', 'mechanisms': ['SCRAM-SHA-1', 'SCRAM-SHA-256'], 'roles': []}}}


Authors

  • Andrew Klychkov (@Andersson007)