Назад | Перейти на главную страницу

Как получить доступ к данным из столбца mysql-formula?

Я пытаюсь использовать mysql-формулу, используя ее для настройки базы данных и пользователя. Но я хотел бы использовать настроенный пароль в другом месте, и я не понял, как это сделать. Любая помощь приветствуется.

Вот пример столба: https://github.com/saltstack-formulas/mysql-formula/blob/master/pillar.example и предположим, что я пытаюсь получить оттуда доступ к паролю Фрэнка.

Простой ответ

Чтобы получить доступ к паролю Фрэнка из вашего файла состояний / конфигурации:

  {% 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

Не очень гибко устанавливать переменную для каждого пользователя, которого вы хотите иметь. Что ж, вы можете сделать это довольно просто, просто добавив пользователя в столб.

Из этого примера файла столбца вы можете динамически создавать пользователей на основе того, что находится в столбце в вашем состоянии.

# 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.

Вы можете получить что угодно из столба, а затем использовать Jinja для улучшения. Вы уже можете добавить эту ссылку в закладки с помощью шаблонов и примеров Jinja: http://jinja.pocoo.org/docs/dev/templates/