community.mongodb.mongodb_role 模块 – 从 MongoDB 数据库添加或删除角色

注意

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

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

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

要在 playbook 中使用它,请指定:community.mongodb.mongodb_role

community.mongodb 1.5.0 中的新功能

概要

要求

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

  • pymongo

参数

参数

注释

atlas_auth

布尔值

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

选项

  • false ←(默认)

  • true

auth_mechanism

字符串

身份验证类型。

选项

  • "SCRAM-SHA-256"

  • "SCRAM-SHA-1"

  • "MONGODB-X509"

  • "GSSAPI"

  • "PLAIN"

authenticationRestrictions

列表 / 元素=任何

服务器对角色强制执行的身份验证限制。指定允许授予此角色的用户连接到和/或可以从中连接的 IP 地址和 CIDR 范围列表。提供带有以下字段的字典列表:clientSource(列表),serverAddress(列表)。如果您不想使用该字段,请提供一个空列表。

默认值: []

connection_options

列表 / 元素=任何

其他连接选项。

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

database

别名:db

字符串 / 必需

要从中添加/删除角色的数据库的名称。

debug

布尔值

启用额外的调试输出。

选项

  • false ←(默认)

  • true

login_database

字符串

存储登录凭据的数据库。

默认值: "admin"

login_host

字符串

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

默认值: "localhost"

login_password

字符串

用于身份验证的密码。

当指定 login_user 时是必需的。

login_port

整数

要登录的 MongoDB 服务器端口。

默认值: 27017

login_user

字符串

用于登录的 MongoDB 用户。

当指定 login_password 时是必需的。

name

别名:user

字符串 / 必需

要添加或删除的角色的名称。

privileges

列表 / 元素=任何

要授予角色的权限。权限由资源和允许的操作组成。

默认值: []

replica_set

字符串

要连接的副本集(自动连接到主节点进行写入)。

roles

列表 / 元素=任何

数据库用户角色应以字典的形式提供,其中包含 db 和 role 键。

默认值: []

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

字符串

数据库用户的状态。

选项

  • "absent"

  • "present" ← (默认)

strict_compatibility

布尔值

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

选项

  • false

  • true ← (默认)

备注

注意

示例

- name: Create sales role
  community.mongodb.mongodb_role:
    name: sales
    database: salesdb
    privileges:
      - resource:
          db: salesdb
          collection: ""
        actions:
          - find
    state: present

- name: Create ClusterAdmin Role
  community.mongodb.mongodb_role:
    name: myClusterwideAdmin
    database: admin
    privileges:
      - resource:
          cluster: true
        actions:
          - addShard
      - resource:
          db: config
          collection: ""
        actions:
          - find
          - update
          - insert
          - remove
      - resource:
          db: "users"
          collection: "usersCollection"
        actions:
          - update
          - insert
          - remove
      - resource:
          db: ""
          collection: ""
        actions:
          - find
    roles:
      - role: "read"
        db: "admin"
    state: present

- name: Create ClusterAdmin Role with a login only from 127.0.0.1 restriction
  community.mongodb.mongodb_role:
    name: myClusterwideAdmin
    database: admin
    privileges:
      - resource:
          cluster: true
        actions:
          - addShard
      - resource:
          db: config
          collection: ""
        actions:
          - find
          - update
          - insert
      - resource:
          db: "users"
          collection: "usersCollection"
        actions:
          - update
          - insert
          - remove
      - resource:
          db: ""
          collection: ""
        actions:
          - find
    roles:
      - role: "read"
        db: "admin"
      - role: "read"
        db: "mynewdb"
    authenticationRestrictions:
      - clientSource:
          - "127.0.0.1"
        serverAddress: []
    state: present

- name: Delete sales role
  community.mongodb.mongodb_role:
    name: sales
    database: "salesdb"
    state: absent

- name: Delete myClusterwideAdmin role
  community.mongodb.mongodb_role:
    name: myClusterwideAdmin
    database: admin
    state: absent

返回值

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

描述

用户

字符串

要添加或删除的角色的名称。

返回: 成功

作者

  • Rhys Campbell (@rhysmeister)