2016-11-30 48 views
1

要创建我使用下面的盐模块数据库补助创建密码的MySQL授权使用saltstack

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 [email protected] has been added 
Started: 19:42:18.428882 
Duration: 4.089 ms 
Changes: 

即它创造了我这个补助

格兰特梯形的所有特权。*进行梯形失真@本地

但我需要创建此批

GRANT ALL PRIVILEGES ON梯形* TO '基石' @ 'localhost' 的 IDENTIFIED BY '密码'。

有人建议我如何使用saltstack

回答

1

这种状态是不能够从指定的主机的权限设置密码,以添加密码补助。有关更多说明,请参见salt.states.mysql_user。

这句话写在salt.modules.mysql_grants的文档中。他们从那里指向salt.states.mysql_user。可悲的是,这份文件并没有透露很多赠款。

这种状态是不能够授予权限的用户。有关更多说明,请参阅salt.states.mysql_grants。

也许是足够多的,只是使用两种:

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

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

此外,我会建议mysql-formula

+0

这将是相当不错的,找到一些解释为什么状态和公式存在。 Niether的文档是指另一个,这导致了一些意图的混淆,如果其中一个意思是取代另一个。 – jma

+1

公式与状态是很棘手的,特别是当有状态构建来管理公式的相同服务时。当你编写一个公式时,你通常从你需要配置的服务抽象成一个支柱配置结构。公式可能通过一个接口配置与不同软件相关的几个不同部分。另一方面,国家的目标是通过配置一件事来解决一个问题。您可以在公式中重用它们,因为这些只是基于模板的状态组合。将公式视为增强状态。 – dahrens

+1

关于mysql我会说,如果你想管理一个由多个用户使用的mysql服务器,并且你需要确保有几个具有适当权限的数据库,你可能需要使用这个公式。如果你只需要设置一个需要本地mysql数据库的服务,那么只需要一个用户状态即可。选择哪一个取决于您的使用情况和偏好。 – dahrens