如何使用ansible设置mongo副本集?

Rap*_*aël 4 mongodb database-replication ansible replicaset ansible-playbook

我有两台机器,每台机器托管一个mongo实例.

我需要它们作为副本集一起工作.

我使用Ansible进行配置.

我怎样才能做到这一点?

Rap*_*aël 7

这就是我管理它的方式.

我使用来自Ansible Galaxy的Stouts.mongodb.

playbook.yml:

---
- name: Provision database servers
  hosts: dbservers
  sudo: true
  vars:
    mongodb_conf_replSet=rs-name/db-hostname-1:27017,db-hostname-2:27017
    mongodb_shell:
      db-name:
        - rs.initiate()
  roles:
  - Stouts.mongodb
Run Code Online (Sandbox Code Playgroud)

有关如何设置副本集的更多详细信息,请参阅mongo doc.

  • `rs.initiate()`应该在**初始主节点**上的每个副本集上运行一次.如果从所有节点运行`rs.initiate()`,您可能会冒多个节点获得相同ID的风险.您可以从具有与我们自己相同的成员ID的成员获得"失败并收到心跳"错误,这将阻止副本出现. (3认同)