如何从MySQL的公式支柱访问数据?

我试图使用MySQL的公式,使用它的支柱来build立一个数据库和用户。 但是,我想在其他地方使用configuration的密码,我还没有想出如何做到这一点。 任何帮助赞赏。

以下是示例柱: https : //github.com/saltstack-formulas/mysql-formula/blob/master/pillar.example,并假设我试图从那里访问frank的密码。

简单的答案

从状态/configuration文件访问Frank的密码:

{% set franck_pwd = salt['pillar.get']('mysql:user:franck:password','') -%} frank: user.present: - password: {{ franck_pwd }} - host: localhost 

在这里,我们只是设置一个variables,并从该位置的柱子分配数据

  mysql:user:franck:password 

它将允许您在将这个pilar.sls提供给柱子顶层文件中的主机后,获得存储在柱子中的密码。

高级

所以现在你可以从你的状态和configuration文件中访问你的支柱数据 –

不要忘记添加到configuration文件的定义,所以Jinja可以被解释

  my_config_file: file.managed: - template: jinja 

必须为每个想要的用户设置一个variables并不是很灵活。 那么你可以简单地通过添加用户在柱子上完成它。

从这个支柱文件的例子中,您可以根据您所在州的支柱dynamic创build用户。

 # Loop on users and get all args {% for user, args in salt['pillar.get']('mysql:user','{}').iteritems() %} # Use your vars! {{ user }}: user.present: - password: args['password'] - host: args['host'] {% enfor %} 

真正使用jinja更多的是从柱子上获取数据。

你可以从柱子上得到任何东西,然后用Jinja来提炼。 您已经可以用Jinja模板和示例将该链接join书签: http : //jinja.pocoo.org/docs/dev/templates/