community.mongodb.mongodb_replicaset – Initialises a MongoDB replicaset.

From Get docs
Ansible/docs/2.10/collections/community/mongodb/mongodb replicaset module


community.mongodb.mongodb_replicaset – Initialises a MongoDB replicaset.

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


New in version 1.0.0: of community.mongodb


Synopsis

  • Initialises a MongoDB replicaset in a new deployment.
  • Validates the replicaset name for existing deployments.
  • Advanced replicaset member configuration possible (see examples).

Requirements

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

  • pymongo

Parameters

Parameter Choices/Defaults Comments

arbiter_at_index

integer

Identifies the position of the member in the array that is an arbiter.

auth_mechanism

string

  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-X509
  • GSSAPI
  • PLAIN

Authentication type.

chaining_allowed

boolean

  • no
  • yes

When settings.chaining_allowed=true, the replicaset allows secondary members to replicate from other secondary members.

When settings.chaining_allowed=false, secondaries can replicate only from the primary.

connection_options

list / elements=raw

Additional connection options.

Supply as a list of dicts or strings containing key value pairs seperated with '='.

election_timeout_millis

integer

Default:

10000

The time limit in milliseconds for detecting when a replicaset's primary is unreachable.

heartbeat_timeout_secs

integer

Default:

10

Number of seconds that the replicaset members wait for a successful heartbeat from each other.

If a member does not respond in time, other members mark the delinquent member as inaccessible.

The setting only applies when using protocol_version=0. When using protocol_version=1 the relevant setting is settings.election_timeout_millis.

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.

members

list / elements=raw

Yaml list consisting of the replicaset members.

Csv string will also be accepted i.e. mongodb1:27017,mongodb2:27017,mongodb3:27017.

A dictionary can also be used to specify advanced replicaset member options.

If a port number is not provided then 27017 is assumed.

protocol_version

integer

  • 0
  • 1

Default:

1

Version of the replicaset election protocol.

replica_set

string

Default:

"rs0"

Replicaset name.

ssl

boolean

  • 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

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

validate

boolean

  • no
  • yes

Performs some basic validation on the provided replicaset config.



Notes

Note


Examples

# Create a replicaset called 'rs0' with the 3 provided members
- name: Ensure replicaset rs0 exists
  community.mongodb.mongodb_replicaset:
    login_host: localhost
    login_user: admin
    login_password: admin
    replica_set: rs0
    members:
    - mongodb1:27017
    - mongodb2:27017
    - mongodb3:27017
  when: groups.mongod.index(inventory_hostname) == 0

# Create two single-node replicasets on the localhost for testing
- name: Ensure replicaset rs0 exists
  community.mongodb.mongodb_replicaset:
    login_host: localhost
    login_port: 3001
    login_user: admin
    login_password: secret
    login_database: admin
    replica_set: rs0
    members: localhost:3001
    validate: no

- name: Ensure replicaset rs1 exists
  community.mongodb.mongodb_replicaset:
    login_host: localhost
    login_port: 3002
    login_user: admin
    login_password: secret
    login_database: admin
    replica_set: rs1
    members: localhost:3002
    validate: no

- name: Create a replicaset and use a custom priority for each member
  community.mongodb.mongodb_replicaset:
    login_host: localhost
    login_user: admin
    login_password: admin
    replica_set: rs0
    members:
    - host: "localhost:3001"
      priority: 1
    - host: "localhost:3002"
      priority: 0.5
    - host: "localhost:3003"
      priority: 0.5
  when: groups.mongod.index(inventory_hostname) == 0

- name: Create replicaset rs1 with options and member tags
  community.mongodb.mongodb_replicaset:
    login_host: localhost
    login_port: 3001
    login_database: admin
    replica_set: rs1
    members:
    - host: "localhost:3001"
      priority: 1
      tags:
        dc: "east"
        usage: "production"
    - host: "localhost:3002"
      priority: 1
      tags:
        dc: "east"
        usage: "production"
    - host: "localhost:3003"
      priority: 0
      hidden: true
      slaveDelay: 3600
      tags:
        dc: "west"
        usage: "reporting"

Return Values

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

Key Returned Description

mongodb_replicaset

string

success

The name of the replicaset that has been created.





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_replicaset_module.html