community.mongodb.mongodb_shard – Add or remove shards from a MongoDB Cluster

Note

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

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_shard.

New in version 1.0.0: of community.mongodb

Synopsis

  • Add or remove shards from a MongoDB Cluster.

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 '='.
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.
mongos_process
string
Default:
"mongos"
Provide a custom name for the mongos process you are connecting to.
Most users can ignore this setting.
shard
string / required
The shard connection string.
Should be supplied in the form <replicaset>/host:port as detailed in https://docs.mongodb.com/manual/tutorial/add-shards-to-shard-cluster/.
For example rs0/example1.mongodb.com:27017.
sharded_databases
raw
Enable sharding on the listed database.
Can be supplied as a string or a list of strings.
Sharding cannot be disabled on a database.
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:
  • absent
  • present ←
Whether the shard should be present or absent from the Cluster.

Notes

Note

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

Examples

- name: Add a replicaset shard named rs1 with a member running on port 27018 on mongodb0.example.net
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: "rs1/mongodb0.example.net:27018"
    state: present

- name: Add a standalone mongod shard running on port 27018 of mongodb0.example.net
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: "mongodb0.example.net:27018"
    state: present

- name: To remove a shard called 'rs1'
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: rs1
    state: absent

# Single node shard running on localhost
- name: Ensure shard rs0 exists
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: secret
    shard: "rs0/localhost:3001"
    state: present

# Single node shard running on localhost
- name: Ensure shard rs1 exists
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: secret
    shard: "rs1/localhost:3002"
    state: present

# Enable sharding on a few databases when creating the shard
- name: To remove a shard called 'rs1'
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: rs1
    sharded_databases:
      - db1
      - db2
    state: present

Return Values

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

Key Returned Description
mongodb_shard
string
success
The name of the shard to create.

sharded_enabled
list / elements=string
success when sharding is enabled
Databases that have had sharding enabled during module execution.



Authors

  • Rhys Campbell (@rhysmeister)