community.mongodb.mongodb_role 模块 – 在 MongoDB 数据库中添加或删除角色
注意
此模块是 community.mongodb 集合 (版本 1.7.8) 的一部分。
如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用: ansible-galaxy collection install community.mongodb。您需要其他要求才能使用此模块,有关详细信息,请参见 要求。
要在剧本中使用它,请指定: community.mongodb.mongodb_role。
community.mongodb 1.5.0 中的新增功能
概要
- 在 MongoDB 数据库中添加或删除角色。 
- 有关权限、authenticationRestriction 或 roles 参数所需格式的更多信息,请参见 MongoDB 文档 https://mongodb.ac.cn/docs/manual/reference/command/createRole/ 
要求
执行此模块的主机需要以下要求。
- pymongo 
参数
| 参数 | 注释 | 
|---|---|
| 适用于 MongoDB Atlas 实例的认证路径 选项 
 | |
| 身份验证类型。 选项 
 | |
| 服务器对角色强制执行的身份验证限制。指定授予此角色的用户允许连接到的 IP 地址和 CIDR 范围列表以及他们可以从中连接的范围。提供一个包含以下字段的字典列表:clientSource(列表)、serverAddress(列表)。如果您不想使用该字段,请提供一个空列表。 默认:  | |
| 附加连接选项。 以字典或字符串列表的形式提供,键值对用 ‘=’ 分隔。 | |
| 要从中添加/删除角色的数据库的名称。 | |
| 启用额外的调试输出。 选项 
 | |
| 存储登录凭据的数据库。 默认:  | |
| 运行要登录的 MongoDB 实例的主机。 默认:  | |
| 用于身份验证的密码。 当指定 login_user 时需要。 | |
| 要登录的 MongoDB 服务器端口。 默认:  | |
| 要登录的 MongoDB 用户。 当指定 login_password 时需要。 | |
| 要添加或删除的角色的名称。 | |
| 要授予角色的权限。权限由资源和允许的操作组成。 默认:  | |
| 要连接到的副本集(自动连接到主节点以进行写入)。 | |
| 数据库用户角色应作为包含 db 和 role 键的字典提供。 默认:  | |
| 连接到数据库时是否使用 SSL 连接。 选项 
 | |
| ssl_ca_certs 选项接受 CA 文件的路径。 | |
| 指定是否需要连接另一端提供证书,以及如果提供是否会验证。 选项 
 | |
| 使用 ssl_certfile 选项提供客户端证书。 | |
| ssl_crlfile选项指定CRL文件的路径。 | |
| 客户端证书的私钥。 | |
| 解密加密私钥的密码。 | |
| 数据库用户状态。 选项 
 | |
| 强制执行对pymongo和MongoDB软件版本的严格要求 选项 
 | 
注释
注意
- 需要远程主机上安装pymongo Python包,版本4+。可以使用pip或操作系统包管理器安装。较新的mongo服务器版本需要较新的pymongo版本。 @see https://mongodb.ac.cn/docs/languages/python/pymongo-driver/current/compatibility/ 
示例
- 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
返回值
常用的返回值已在 此处 记录,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 要添加或删除的角色的名称。 返回:成功 | 
