使用SaltStack创建具有密码的MySql授权

使用SaltStack创建具有密码的MySql授权,mysql,salt-stack,Mysql,Salt Stack,要为数据库创建授权,我使用以下salt模块 keystone_grants: mysql_grants.present: - database: keystone.* - grant: ALL PRIVILEGES - user: keystone - host: localhost 但这让我觉得 ID: Keystone_database Function: mysql_grants.present Result: True Comment: Grant ALL PR

要为数据库创建授权,我使用以下salt模块

keystone_grants:
mysql_grants.present:
  - database: keystone.*
  - grant: ALL PRIVILEGES
  - user: keystone
  - host: localhost
但这让我觉得

 ID: Keystone_database
 Function: mysql_grants.present
 Result: True
 Comment: Grant ALL PRIVILEGES on keystone.* to keystone@localhost has been added
Started: 19:42:18.428882
Duration: 4.089 ms
Changes:
i、 它给了我这笔赠款

将keystone.*上的所有权限授予keystone@localhost

但我需要创建这个补助金

将keystone.*上的所有权限授予“keystone”@“localhost” 由“密码”标识

有人能建议我如何使用SaltStack添加带有密码的授权吗

此状态无法为指定主机的权限设置密码。有关更多说明,请参阅salt.states.mysql\u用户

这句话是写在公司的文件里的。他们从那里指向另一个地方。可悲的是,这份文件并没有说明很多关于补助金的问题

此状态无法授予用户权限。有关更多说明,请参阅salt.states.u

也许这两种方法都可以使用:

keystone_grants:
  mysql_grants.present:
    - host: localhost
    - database: keystone.*
    - grant: ALL PRIVILEGES
    - user: keystone
    - host: localhost

keystone:
  mysql_user.present:
    - host: localhost
    - password: somesecret

此外,我建议使用。

如果能找到一些解释,说明为什么状态和公式都存在,那就太好了。Niether的文档中提到了另一个,这导致了一些混淆,即哪一个是有意的,以及哪一个是有意取代另一个。好的,公式与状态之间的比较是棘手的,特别是当存在内置状态来管理公式所针对的同一服务时。在编写公式时,您通常会将需要配置的服务抽象为一个支柱配置结构。一个公式可以通过一个接口配置与不同软件相关的多个不同部分。另一方面,州的目标是通过配置一件事来解决一个问题。您可以在公式中重用它们,因为它们只是基于模板的状态组合。将公式视为增强状态。关于mysql,我想说的是,如果您想管理多个用户使用的mysql服务器,并且需要确保有多个数据库具有适当的权限,那么您可能需要使用公式。如果您只是设置了一个需要一个本地mysql数据库和一个用户的服务,那么状态可能就足够了。选择哪一个取决于您的用例和首选项。