community.mongodb.mongodb_shard 模块 – 从 MongoDB 集群添加或删除分片

注意

此模块是 community.mongodb 集合(版本 1.7.8)的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.mongodb。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在剧本中使用它,请指定:community.mongodb.mongodb_shard

community.mongodb 1.0.0 中的新功能

概要

  • 从 MongoDB 集群添加或删除分片。

要求

执行此模块的主机需要以下要求。

  • pymongo

参数

参数

注释

atlas_auth

布尔值

用于 MongoDB Atlas 实例的身份验证路径

选择

  • false ← (默认)

  • true

auth_mechanism

字符串

身份验证类型。

选择

  • "SCRAM-SHA-256"

  • "SCRAM-SHA-1"

  • "MONGODB-X509"

  • "GSSAPI"

  • "PLAIN"

connection_options

列表 / 元素=任何

其他连接选项。

以字典列表或包含用“=”分隔的键值对的字符串形式提供。

login_database

字符串

存储登录凭据的数据库。

默认值: "admin"

login_host

字符串

运行要登录的 MongoDB 实例的主机。

默认值: "localhost"

login_password

字符串

用于身份验证的密码。

当指定 login_user 时是必需的。

login_port

整数

要登录的 MongoDB 服务器端口。

默认值: 27017

login_user

字符串

要登录的 MongoDB 用户。

当指定 login_password 时是必需的。

mongos_process

字符串

为您连接的 mongos 进程提供自定义名称。

大多数用户可以忽略此设置。

默认值: "mongos"

shard

字符串 / 必需

分片连接字符串。

应以 <replicaset>/host:port 的形式提供,如 https://docs.mongodb.com/manual/tutorial/add-shards-to-shard-cluster/ 中详述。

例如 rs0/example1.mongodb.com:27017。

sharded_databases

任何

在列出的数据库上启用分片。

可以作为字符串或字符串列表提供。

不能在数据库上禁用分片。

从 MongoDB 6.0 开始,不再需要 enableSharding 命令来对集合进行分片,此参数将被忽略。

ssl

别名:tls

布尔值

连接到数据库时是否使用 SSL 连接。

选择

  • false ← (默认)

  • true

ssl_ca_certs

别名:tlsCAFile

字符串

ssl_ca_certs 选项采用 CA 文件的路径。

ssl_cert_reqs

别名:tlsAllowInvalidCertificates

字符串

指定是否需要来自连接另一端的证书,以及如果提供证书是否将进行验证。

选择

  • "CERT_NONE"

  • "CERT_OPTIONAL"

  • "CERT_REQUIRED" ← (默认)

ssl_certfile

别名:tlsCertificateKeyFile

字符串

使用 ssl_certfile 选项提供客户端证书。

ssl_crlfile

字符串

ssl_crlfile 选项采用 CRL 文件的路径。

ssl_keyfile

字符串

客户端证书的私钥。

ssl_pem_passphrase

别名:tlsCertificateKeyFilePassword

字符串

用于解密加密私钥的密码。

state

字符串

分片是否应存在于集群中。

选择

  • “不存在”

  • “存在” ← (默认)

strict_compatibility

布尔值

强制执行 pymongo 和 MongoDB 软件版本的严格要求

选择

  • false

  • true ← (默认)

注意

注意

  • 需要在远程主机上安装 pymongo Python 包,版本 4+。

示例

- name: Add a replicaset shard named rs1 with a member running on port 27018 on mongodb0.example.net
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: "rs1/mongodb0.example.net:27018"
    state: present

- name: Add a standalone mongod shard running on port 27018 of mongodb0.example.net
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: "mongodb0.example.net:27018"
    state: present

- name: To remove a shard called 'rs1'
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: rs1
    state: absent

# Single node shard running on localhost
- name: Ensure shard rs0 exists
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: secret
    shard: "rs0/localhost:3001"
    state: present

# Single node shard running on localhost
- name: Ensure shard rs1 exists
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: secret
    shard: "rs1/localhost:3002"
    state: present

# Enable sharding on a few databases when creating the shard
- name: To remove a shard called 'rs1'
  community.mongodb.mongodb_shard:
    login_user: admin
    login_password: admin
    shard: rs1
    sharded_databases:
      - db1
      - db2
    state: present

返回值

通用返回值记录在此处 这里,以下是此模块特有的字段

描述

mongodb_shard

字符串

要创建的分片名称。

返回: 成功

sharded_enabled

列表 / 元素=字符串

在模块执行期间启用了分片的数据库。

返回: 启用分片时成功

作者

  • Rhys Campbell (@rhysmeister)