如何从 mysql-formula pillar 访问数据?

如何从 mysql-formula pillar 访问数据?

我正在尝试使用 mysql-formula,使用它的支柱来设置数据库和用户。但是,我想在其他地方使用配置的密码,但我还不知道该怎么做。任何帮助都值得感激。

以下是示例支柱: https://github.com/saltstack-formulas/mysql-formula/blob/master/pillar.example 并假设我正尝试从那里访问弗兰克的密码。

答案1

简单答案

要从你的 states/configuration 文件访问 Frank 的密码:

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

在这里,我们只需设置一个变量,并将该位置的支柱数​​据分配给它

 mysql:user:franck:password

当您在 Pillar 顶部文件中将此 pilar .sls 提供给主机后,它将允许您获取存储在 Pillar 中的密码。

先进的

现在您可以从状态和配置文件访问支柱数据 -

不要忘记添加到配置文件定义以便 Jinja 可以被解释

   my_config_file:   
     file.managed:
       - template: jinja

为每个想要的用户设置一个变量不太灵活。其实,只需在 pillar 中添加用户,就可以完成这个任务。

从该支柱文件示例中,您可以仅根据您所在州的支柱内容动态创建用户。

# 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 的问题,而不是从 pillar 获取数据的问题。

您可以从 pillar 获取任何东西,然后使用 Jinja 进行改进。您已经可以使用 Jinja 模板和示例为该链接添加书签:http://jinja.pocoo.org/docs/dev/templates/

相关内容