On this page
community.mongodb.mongodb_replicaset – Initialises a MongoDB replicaset.
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_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
         | 
      
       
  | 
      
        
        Authentication type.
         | 
     
| chaining_allowed
        
        boolean
         | 
      
       
  | 
      
        
        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
         | 
      
       
 
        1
         | 
      
        
        Version of the replicaset election protocol.
         | 
     
| 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.
         | 
     |
| validate
        
        boolean
         | 
      
       
  | 
      
        
        Performs some basic validation on the provided replicaset config.
         | 
     
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
# 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/community/mongodb/mongodb_replicaset_module.html