community.mongodb.mongodb_index – Creates or drops indexes on MongoDB collections.
community.mongodb.mongodb_index – Creates or drops indexes on MongoDB collections.
Note
This plugin is part of the community.mongodb collection (version 1.1.1).
To install it use: ansible-galaxy collection install community.mongodb
.
To use it in a playbook, specify: community.mongodb.mongodb_index
.
New in version 1.0.0: of community.mongodb
Synopsis
- Creates or drops indexes on MongoDB collections.
- Supports multiple index options, i.e. unique, sparse and partial.
- Validates existence of indexes by name only.
Requirements
The below requirements are needed on the host that executes this module.
- pymongo
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
auth_mechanism string |
|
Authentication type. |
connection_options list / elements=raw |
Additional connection options. Supply as a list of dicts or strings containing key value pairs seperated with '='. | |
indexes list / elements=raw / required |
List of indexes to create or drop | |
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 |
|
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 |
|
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: Create a single index on a collection
community.mongodb.mongodb_index:
login_user: admin
login_password: secret
indexes:
- database: mydb
collection: test
keys:
- username: 1
last_login: -1
options:
name: myindex
state: present
- name: Drop an index on a collection
community.mongodb.mongodb_index:
login_user: admin
login_password: secret
indexes:
- database: mydb
collection: test
options:
index_name: myindex
state: absent
- name: Create multiple indexes
community.mongodb.mongodb_index:
login_user: admin
login_password: secret
indexes:
- database: mydb
collection: test
keys:
- username: 1
last_login: -1
options:
name: myindex
state: present
- database: mydb
collection: test
keys:
- email: 1
last_login: -1
options:
name: myindex2
state: present
- name: Add a unique index
community.mongodb.mongodb_index:
login_port: 27017
login_user: admin
login_password: secret
login_database: "admin"
indexes:
- database: "test"
collection: "rhys"
keys:
username: 1
options:
name: myuniqueindex
unique: true
state: present
- name: Add a ttl index
community.mongodb.mongodb_index:
login_port: 27017
login_user: admin
login_password: secret
login_database: "admin"
indexes:
- database: "test"
collection: "rhys"
keys:
created: 1
options:
name: myttlindex
expireAfterSeconds: 3600
state: present
- name: Add a sparse index
community.mongodb.mongodb_index:
login_port: 27017
login_user: admin
login_password: secret
login_database: "admin"
indexes:
- database: "test"
collection: "rhys"
keys:
last_login: -1
options:
name: mysparseindex
sparse: true
state: present
- name: Add a partial index
community.mongodb.mongodb_index:
login_port: 27017
login_user: admin
login_password: secret
login_database: "admin"
indexes:
- database: "test"
collection: "rhys"
keys:
last_login: -1
options:
name: mypartialindex
partialFilterExpression:
rating:
$gt: 5
state: present
- name: Add a index in the background (background option is deprecated from 4.2+)
community.mongodb.mongodb_index:
login_port: 27017
login_user: admin
login_password: secret
login_database: "admin"
indexes:
- database: "test"
collection: "rhys"
options:
name: idxbackground
keys:
username: -1
backgroud: true
state: present
- name: Check creating 5 index all with multiple options specified
community.mongodb.mongodb_index:
login_port: 27017
login_user: admin
login_password: secret
login_database: "admin"
indexes:
- database: "test"
collection: "indextest"
options:
name: "idx_unq_username"
unique: true
keys:
username: -1
state: present
- database: "test"
collection: "indextest"
options:
name: "idx_last_login"
sparse: true
keys:
last_login: -1
state: present
- database: "test"
collection: "indextest"
options:
name: "myindex"
keys:
first_name: 1
last_name: -1
city: 1
state: present
- database: "test"
collection: partialtest
options:
name: "idx_partialtest"
partialFilterExpression:
rating:
$gt: 5
keys:
rating: -1
title: 1
state: present
- database: "test"
collection: "wideindex"
options:
name: "mywideindex"
keys:
email: -1
username: 1
first_name: 1
last_name: 1
dob: -1
city: 1
last_login: -1
review_count: 1
rating_count: 1
last_post: -1
state: present
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
changed boolean |
When the module has changed something. |
Indicates the module has changed something.
|
failed boolean |
When the module has encountered an error. |
Indicates the module has failed.
|
indexes_created list / elements=string |
always |
List of indexes created.
Sample: ['myindex', 'myindex2'] |
indexes_dropped list / elements=string |
always |
List of indexes dropped.
Sample: ['myindex', 'myindex2'] |
Authors
- Rhys Campbell (@rhysmeister)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/mongodb/mongodb_index_module.html