community.mongodb.mongodb_index – Creates or drops indexes on MongoDB collections.
Note
This plugin is part of the community.mongodb collection (version 1.3.1).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
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. | |
replica_set string | Replica set to connect to (automatically connects to primary for writes). | |
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: 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/mongodb/mongodb_index_module.html