On this page
community.mongodb.mongodb_status – Validates the status of the cluster.
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_status
.
New in version 1.0.0: of community.mongodb
Synopsis
- Validates the status of the cluster.
- The module expects all replicaset nodes to be PRIMARY, SECONDARY or ARBITER.
- Will wait until a timeout for the replicaset state to converge if required.
- Can also be used to lookup the current PRIMARY member (see examples).
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 '='.
|
|
interval
integer
|
Default:
30
|
The number of seconds to wait between polling executions.
|
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.
|
|
poll
integer
|
Default:
1
|
The maximum number of times to query for the replicaset status before the set converges or we fail.
|
replica_set
string
|
Default:
"rs0"
|
Replicaset name.
|
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+. This can be installed using pip or the OS package manager. @see http://api.mongodb.org/python/current/installation.html
Examples
- name: Check replicaset is healthy, fail if not after first attempt
community.mongodb.mongodb_status:
replica_set: rs0
when: ansible_hostname == "mongodb1"
- name: Wait for the replicaset rs0 to converge, check 5 times, 10 second interval between checks
community.mongodb.mongodb_status:
replica_set: rs0
poll: 5
interval: 10
when: ansible_hostname == "mongodb1"
# Get the replicaset status and then lookup the primary's hostname and save to a variable
- name: Ensure replicaset is stable before beginning
community.mongodb.mongodb_status:
login_user: "{{ admin_user }}"
login_password: "{{ admin_user_password }}"
poll: 3
interval: 10
register: rs
- name: Lookup PRIMARY replicaset member
set_fact:
primary: "{{ item.key.split('.')[0] }}"
loop: "{{ lookup('dict', rs.replicaset) }}"
when: "'PRIMARY' in item.value"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
failed
boolean
|
always |
If the mnodule had failed or not.
|
iterations
integer
|
always |
Number of times the module has queried the replicaset status.
|
msg
string
|
always |
Status message.
|
replicaset
dictionary
|
always |
The last queried status of all the members of the replicaset if obtainable.
|
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_status_module.html