【问题标题】:AWS MongoDB cluster Provisioning through AnsibleAWS MongoDB 集群通过 Ansible 进行配置
【发布时间】:2016-04-20 16:01:06
【问题描述】:

我们正在 AWS EC2 实例上通过 ansible 部署 mongodb 集群。 配置数据库实例后,我们为其提供相应的主要/次要标签。我们有 3 个节点 - 1 个用于主节点,2 个用于辅助节点。

在第一次运行 ansible 脚本时,我们通过 Tag 类型选择主实例,启动它并向其添加辅助节点

rs.initiate()
rs.add(secodnaryHost1)
rs.add(secondaryHost2)

这很好用。

但是,有时,当其中一个辅助变为主时,我们的实例标记类型 - 主和 mongoDB - 主是不一样的。 在这种情况下,如果我们运行我们的 ansible 脚本,它们会失败,因为主要标签类型(现在是次要标签)无法在命令之上运行。

处理这种不匹配的最佳方法是什么?

【问题讨论】:

  • 使用标签来指示哪个节点是主节点和哪个节点是没有帮助的,因为(如您所见)当现有主节点离线时,另一个节点将是 @987654321 @ 担任主要角色。您的 Ansible 脚本需要知道哪个节点是主节点,有什么特殊原因吗?

标签: mongodb amazon-web-services amazon-ec2 ansible mongodb-replica-set


【解决方案1】:

您应该阅读the current status 并在模板中或通过命令行定义适当的设置。 请搜索available ansible-galaxy roles

PS:

示例模板repset_init.j2 及其规定

- name: Create the file to initialize the mongod replica set
  template: src=repset_init.j2 dest=/tmp/repset_init.js

- name: Pause for a while
  pause: seconds=20

- name: Initialize the replication set
  shell: /usr/bin/mongo --port "{{ mongod_port }}" /tmp/repset_init.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多