在 SaltStack SLS 中配置 MongoDB 3 个用户角色

Configure MongoDB 3 user roles in SaltStack SLS

有没有办法使用 SaltStack 为 MongoDB 3 配置用户角色?我看到 mongodb module has relevant role management functions, but the mongodb_user state 没有在任何地方引用角色。

是的,当然有!

您需要使用 Mongodb module, and execute it from a state using module.run.

因此,例如,如果您想管理用户 'TestUser' 的角色,您将创建 'manage_mongo_roles.sls',它将包含如下状态:

manage_mongo_roles:
  module.run:
    - name: mongodb.user_grant_roles
    - m_name: TestUser
    - roles: ["admin"]
    - database: admin
    - user: admin
    - password: ''
    - host: localhost
    - port: 27017

模块的 'name' 参数必须以 m_ 开头,以便状态知道将其传递给模块而不是将其用作要执行的模块的名称。

另请注意,角色必须采用

格式
["role"]

文档指出,如果来自 salt CLI 的 运行 它应该包含在单引号中,如下所示:

'["role"]'

但在 module.run 状态下这样做会导致它失败,并且 return 会出现描述性不足的错误消息。