community.mongodb.mongodb_replicaset 模块 – 初始化 MongoDB 副本集。
注意
此模块是 community.mongodb 集合 (版本 1.7.8) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.mongodb
。您需要其他要求才能使用此模块,有关详细信息,请参见 要求。
要在 playbook 中使用它,请指定:community.mongodb.mongodb_replicaset
。
community.mongodb 1.0.0 中的新增功能
概要
在新部署中初始化 MongoDB 副本集。
验证现有部署的副本集名称。
支持高级副本集成员(重新)配置(请参见示例)。
根据 [最佳实践](https://mongodb.ac.cn/docs/manual/tutorial/deploy-replica-set-with-keyfile-access-control/),在添加用户之前初始化副本集。
要求
在执行此模块的主机上需要以下要求。
pymongo
参数
参数 |
注释 |
---|---|
标识数组中充当仲裁器的成员的位置。 |
|
用于 MongoDB Atlas 实例的认证路径 选项
|
|
身份验证类型。 选项
|
|
当 settings.chaining_allowed=true 时,副本集允许辅助成员从其他辅助成员复制。 当 settings.chaining_allowed=false 时,辅助成员只能从主成员复制。 选项
|
|
模块应使用的命令,以获取有关我们正在连接到的 MongoDB 节点的信息。 选项
|
|
附加连接选项。 以字典列表或包含用“=”分隔的键值对的字符串形式提供。 |
|
添加额外的调试信息。 选项
|
|
检测副本集的主成员不可访问时的毫秒时间限制。 默认值: |
|
仅当 reconfigure = true 时才相关。 指定 true 以强制可用的副本集成员接受新的配置。 强制重新配置可能导致意外或不希望的行为,包括回滚“多数”已提交的写入。 选项
|
|
副本集成员等待彼此成功心跳的秒数。 如果成员未及时响应,其他成员会将违规成员标记为不可访问。 该设置仅在使用 protocol_version=0 时适用。当使用 protocol_version=1 时,相关的设置是 settings.election_timeout_millis。 默认值: |
|
存储登录凭据的数据库。 默认值: |
|
运行要登录的 MongoDB 实例的主机。 默认值: |
|
用于身份验证的密码。 当指定 login_user 时需要。 |
|
要登录的 MongoDB 服务器端口。 默认值: |
|
要登录的 MongoDB 用户。 当指定 login_password 时需要。 |
|
指定处理副本集重新配置的累积毫秒时间限制。 |
|
由副本集成员组成的 YAML 列表。 也接受 CSV 字符串,例如 mongodb1:27017,mongodb2:27017,mongodb3:27017。 也可以使用字典来指定高级副本集成员选项。 如果没有提供端口号,则假定为 27017。 |
|
副本集选举协议的版本。 选项
|
|
此功能目前处于实验阶段。请彻底测试您的场景。 请参阅集成测试文件以了解受支持的场景 - \[集成测试](https://github.com/ansible-collections/community.mongodb/tree/master/tests/integration/targets/mongodb_replicaset/tasks)。查看以 330 开头的文件。 是否执行副本集重新配置操作。 仅当副本集已存在时才相关。 每次调用只能移除或添加一个成员。 重新配置时,成员应全部为字符串或全部为字典。 目前不支持副本集设置文档的更改。 选项
|
|
副本集名称。 默认值: |
|
连接到数据库时是否使用 SSL 连接。 选项
|
|
ssl_ca_certs 选项需要一个 CA 文件的路径。 |
|
指定是否需要连接另一端提供证书,以及如果提供证书是否进行验证。 选项
|
|
使用 ssl_certfile 选项提供客户端证书。 |
|
ssl_crlfile 选项需要一个 CRL 文件的路径。 |
|
客户端证书的私钥。 |
|
解密加密私钥的密码。 |
|
对 pymongo 和 MongoDB 软件版本强制执行严格的要求 选项
|
|
对提供的副本集配置执行一些基本验证。 选项
|
备注
注意
远程主机需要 pymongo Python 包,版本 4+。可以使用 pip 或操作系统包管理器安装。@see http://api.mongodb.org/python/current/installation.html
示例
# 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"
- name: Replicaset with one arbiter node (mongodb3 - index is zero-based)
community.mongodb.mongodb_replicaset:
login_user: admin
login_password: admin
replica_set: rs0
members:
- mongodb1:27017
- mongodb2:27017
- mongodb3:27017
arbiter_at_index: 2
when: groups.mongod.index(inventory_hostname) == 0
- name: Add a new member to a replicaset - Safe for pre-5.0 consult documentation - https://docs.mongodb.com/manual/tutorial/expand-replica-set/
block:
- name: Create replicaset with module - with dicts
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
members:
- host: localhost:3001
- host: localhost:3002
- host: localhost:3003
- name: Wait for the replicaset to stabilise
community.mongodb.mongodb_status:
replica_set: "rs0"
poll: 5
interval: 10
- name: Remove a member from the replicaset
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
reconfigure: yes
members:
- host: localhost:3001
- host: localhost:3002
- name: Wait for the replicaset to stabilise after member removal
community.mongodb.mongodb_status:
replica_set: "rs0"
validate: minimal
poll: 5
interval: 10
- name: Add a member to the replicaset
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
reconfigure: yes
members:
- host: localhost:3001
- host: localhost:3002
- host: localhost:3004
hidden: true
votes: 0
priority: 0
- name: Wait for the replicaset to stabilise after member addition
community.mongodb.mongodb_status:
replica_set: "rs0"
validate: minimal
poll: 5
interval: 30
- name: Reconfigure the replicaset - Make member 3004 a normal voting member
community.mongodb.mongodb_replicaset:
replica_set: "rs0"
reconfigure: yes
members:
- host: localhost:3001
- host: localhost:3002
- host: localhost:3004
hidden: false
votes: 1
priority: 1
- name: Wait for the replicaset to stabilise
community.mongodb.mongodb_status:
replica_set: "rs0"
poll: 5
interval: 30
返回值
常用的返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
已创建的副本集的名称。 返回: 成功 |
|
如果发生了副本集重新配置。 返回: 在副本集重新配置时 |