community.mongodb.mongodb_user 模块 – 从 MongoDB 数据库添加或删除用户
注意
此模块是 community.mongodb 集合 (版本 1.7.8) 的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.mongodb
。您需要进一步的要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:community.mongodb.mongodb_user
。
community.mongodb 1.0.0 中的新增功能
概要
从 MongoDB 数据库添加或删除用户。
要求
执行此模块的主机上需要以下要求。
pymongo
参数
参数 |
注释 |
---|---|
用于 MongoDB Atlas 实例的身份验证路径 选项
|
|
身份验证类型。 选项
|
|
其他连接选项。 以字典列表或包含用“=”分隔的键值对的字符串的形式提供。 |
|
此参数仅用于处理有关 localhost 异常的特殊处理。 如果定义了 如果此文件不存在(并且未定义 如果此文件存在(并且未定义 |
|
从中添加/删除用户的数据库的名称。 |
|
存储登录凭据的数据库。 默认值: |
|
运行 MongoDB 实例以登录到的主机。 默认值: |
|
用于身份验证的密码。 当指定 login_user 时是必需的。 |
|
要登录到的 MongoDB 服务器端口。 默认值: |
|
要登录的 MongoDB 用户。 当指定 login_password 时是必需的。 |
|
要添加或删除的用户的名称。 |
|
用户要使用的密码。 |
|
要连接的副本集(自动连接到主节点进行写入)。 |
|
数据库用户角色。有效值可以是以下一个或多个字符串:“read”、“readWrite”、“dbAdmin”、“userAdmin”、“clusterAdmin”、“readAnyDatabase”、“readWriteAnyDatabase”、“userAdminAnyDatabase”、“dbAdminAnyDatabase”。 或者以下字典“{ db: DATABASE_NAME, role: ROLE_NAME }”。 此参数需要 pymongo 2.5+。如果它是字符串,则还需要 mongodb 2.4+。如果它是一个字典,则需要 mongo 2.6+。 |
|
连接到数据库时是否使用 SSL 连接。 选项
|
|
ssl_ca_certs 选项采用 CA 文件的路径。 |
|
指定是否需要连接另一端的证书,以及在提供证书时是否对其进行验证。 选项
|
|
使用 ssl_certfile 选项提供客户端证书。 |
|
ssl_crlfile 选项接受一个 CRL 文件的路径。 |
|
客户端证书的私钥。 |
|
用于解密加密私钥的密码。 |
|
数据库用户的状态。 选项
|
|
强制 pymongo 和 MongoDB 软件版本的严格要求 选项
|
|
在添加第一个管理员用户时,必须为 当使用 x.509 证书时,此选项实际上会被忽略。当 login_database 为 ‘$external’ 时,它默认为 ‘on_create’ 以保持特定的模块行为。 选项
|
注意
注意
远程主机上需要 pymongo Python 包,版本 4+。可以使用 pip 或操作系统包管理器安装。较新的 mongo 服务器版本需要较新的 pymongo 版本。请参阅 https://mongodb.ac.cn/docs/languages/python/pymongo-driver/current/compatibility/
示例
- name: Create 'burgers' database user with name 'bob' and password '12345'.
community.mongodb.mongodb_user:
database: burgers
name: bob
password: 12345
state: present
- name: Create a database user via SSL (MongoDB must be compiled with the SSL option and configured properly)
community.mongodb.mongodb_user:
database: burgers
name: bob
password: 12345
state: present
ssl: True
- name: Delete 'burgers' database user with name 'bob'.
community.mongodb.mongodb_user:
database: burgers
name: bob
state: absent
- name: Define more users with various specific roles (if not defined, no roles is assigned, and the user will be added via pre mongo 2.2 style)
community.mongodb.mongodb_user:
database: burgers
name: ben
password: 12345
roles: read
state: present
- name: Define roles
community.mongodb.mongodb_user:
database: burgers
name: jim
password: 12345
roles: readWrite,dbAdmin,userAdmin
state: present
- name: Define roles
community.mongodb.mongodb_user:
database: burgers
name: joe
password: 12345
roles: readWriteAnyDatabase
state: present
- name: Add a user to database in a replica set, the primary server is automatically discovered and written to
community.mongodb.mongodb_user:
database: burgers
name: bob
replica_set: belcher
password: 12345
roles: readWriteAnyDatabase
state: present
# add a user 'oplog_reader' with read only access to the 'local' database on the replica_set 'belcher'. This is useful for oplog access (MONGO_OPLOG_URL).
# please notice the credentials must be added to the 'admin' database because the 'local' database is not synchronized and can't receive user credentials
# To login with such user, the connection string should be MONGO_OPLOG_URL="mongodb://oplog_reader:oplog_reader_password@server1,server2/local?authSource=admin"
# This syntax requires mongodb 2.6+ and pymongo 2.5+
- name: Roles as a dictionary
community.mongodb.mongodb_user:
login_user: root
login_password: root_password
database: admin
user: oplog_reader
password: oplog_reader_password
state: present
replica_set: belcher
roles:
- db: local
role: read
- name: Adding a user with X.509 Member Authentication
community.mongodb.mongodb_user:
login_host: "mongodb-host.test"
login_port: 27001
login_database: "$external"
database: "admin"
name: "admin"
password: "test"
roles:
- dbAdminAnyDatabase
ssl: true
ssl_ca_certs: "/tmp/ca.crt"
ssl_certfile: "/tmp/tls.key" #cert and key in one file
state: present
auth_mechanism: "MONGODB-X509"
connection_options:
- "tlsAllowInvalidHostnames=true"
返回值
常见返回值记录在此处 这里,以下是此模块特有的字段
键 |
描述 |
---|---|
要添加或删除的用户的名称。 已返回: 成功 |