community.mongodb.mongodb_status 模块 – 验证副本集的状态。
注意
此模块是 community.mongodb 集合(版本 1.7.8)的一部分。
如果您正在使用 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.mongodb
。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。
要在 playbook 中使用它,请指定:community.mongodb.mongodb_status
。
community.mongodb 1.0.0 中的新增功能
概要
验证副本集的状态。
该模块期望所有副本集节点都为 PRIMARY、SECONDARY 或 ARBITER。
如果需要,将等待超时,直到副本集状态收敛。
也可以用于查找当前的 PRIMARY 成员(请参阅示例)。
要求
执行此模块的主机需要满足以下要求。
pymongo
参数
参数 |
注释 |
---|---|
用于 MongoDB Atlas 实例的身份验证路径 选项
|
|
身份验证类型。 选项
|
|
其他连接选项。 以字典列表或包含以 “=” 分隔的键值对的字符串的形式提供。 |
|
轮询执行之间等待的秒数。 默认值: |
|
存储登录凭据的数据库。 默认值: |
|
要登录的运行 MongoDB 实例的主机。 默认值: |
|
用于身份验证的密码。 当指定 login_user 时是必需的。 |
|
要登录的 MongoDB 服务器端口。 默认值: |
|
用于登录的 MongoDB 用户。 当指定 login_password 时是必需的。 |
|
在副本集收敛或失败之前,查询副本集状态的最大次数。 默认值: |
|
副本集名称。 默认值: |
|
连接到数据库时是否使用 SSL 连接。 选项
|
|
ssl_ca_certs 选项采用 CA 文件的路径。 |
|
指定是否需要来自连接另一端的证书,以及如果提供证书是否将对其进行验证。 选项
|
|
使用 ssl_certfile 选项提供客户端证书。 |
|
ssl_crlfile 选项采用 CRL 文件的路径。 |
|
客户端证书的私钥。 |
|
用于解密加密私钥的密码。 |
|
强制执行对 pymongo 和 MongoDB 软件版本的严格要求 选项
|
|
对副本集执行的验证类型。 default,适用于大多数情况。验证服务器数量为奇数,其中一个是 PRIMARY 状态,其余为 SECONDARY 或 ARBITER 状态。 votes,检查投票数是否为奇数,其中一个是 PRIMARY 状态,其余为 SECONDARY 或 ARBITER 状态。此处需要身份验证才能获取副本集配置。 minimal,仅检查一个服务器是否为 PRIMARY 状态,其余为 SECONDARY 或 ARBITER 状态。 选项
|
注释
注意
远程主机上需要 pymongo Python 包,版本 4+。可以使用 pip 或操作系统包管理器安装。请参阅 http://api.mongodb.org/python/current/installation.html
示例
- name: Check replicaset is healthy, fail if not after first attempt
community.mongodb.mongodb_status:
replica_set: rs0
when: ansible_hostname == "mongodb1"
- name: Wait for the replicaset rs0 to converge, check 5 times, 10 second interval between checks
community.mongodb.mongodb_status:
replica_set: rs0
poll: 5
interval: 10
when: ansible_hostname == "mongodb1"
# Get the replicaset status and then lookup the primary's hostname and save to a variable
- name: Ensure replicaset is stable before beginning
community.mongodb.mongodb_status:
login_user: "{{ admin_user }}"
login_password: "{{ admin_user_password }}"
poll: 3
interval: 10
register: rs
- name: Lookup PRIMARY replicaset member
set_fact:
primary: "{{ item.key.split('.')[0] }}"
loop: "{{ lookup('dict', rs.replicaset) }}"
when: "'PRIMARY' in item.value"
返回值
常见返回值已记录在 此处,以下是此模块独有的字段
键 |
描述 |
---|---|
模块是否失败。 返回: 总是 |
|
模块查询副本集状态的次数。 返回: 总是 |
|
状态消息。 返回: 总是 |
|
如果可以获取,则为副本集所有成员的最后一次查询状态。 返回: 总是 |