Подтвердить что ты не робот

Солонка: зерно против столбов

В Солевой системе есть зерна и столбы. Я понимаю, как я могу назначить специальные зерна, но когда было бы лучше рассмотреть использование столпов?

4b9b3361

Ответ 1

Основное различие здесь заключается в том, что вы можете установить произвольное зерно в качестве врожденного свойства миньона, против столба, который в какой-то момент должен быть назначен миньону.

Например, существует два практических способа назначения роли миньону: идентификатор миньона или использование пользовательских зерен. Затем вы можете сопоставлять идентификатор миньона или пользовательские зерна внутри файла top.sls следующим образом:

# salt/top.sls
base:
  # match against custom grain
  '[email protected]:webserver':
    - match: compound
    - webserver
  '[email protected]:search':
    - match: compound
    - elasticsearch
  # match against minion id
  'minion_db*':
    - database

Вы НЕ МОЖЕТЕ сделать это с помощью столба. В то время как вы действительно можете нацелиться на столп, вам сначала нужен способ назначить столп своим миньонам (это должен быть миньон id или зерно, как указано выше). Подумайте о том, как назначить столп в верхнем файле столба, вам нужно назначить данные этого столбца с помощью врожденного атрибута миньона.

# pillar/top.sls
base:
  '[email protected]:dev':
    - match: compound
    - dev_settings
  '[email protected]:prod':
    - match: compound
    - prod_settings

Образец здесь состоит в том, что вы используете зерно (или миньон id) как минимальный способ установки типа/роли/среды вашего миньона. После этого вы используете данные столбцов для подачи всех необходимых подробных настроек.

Ответ 2

В Salt зерна используются для неизменных аспектов вашего миньона, таких как процессор, память, местоположение, часовой пояс и т.д.

Столбец - это список данных мастера (в формате SLS), который вам нужно распространять среди ваших миньонов. Pillar позволяет вам устанавливать переменные, к которым могут обращаться миньоны, например параметр конфигурации базы данных.

Ответ 3

Короче говоря, пользовательские статические зерна, вероятно, хуже альтернативы, чем столбцы.

| Differences                  | Grains                        | Pillars                             |
|------------------------------|-------------------------------|-------------------------------------|
| This is info which...        | ... Minion knows about itself | ... Minion asks Master about        |
|                              |                               |                                     |
| Distributed:                 | Yes (different per minion)    | No (single version per master)      |
| Centralized:                 | No                            | Yes                                 |
|                              |                               |                                     |
| Computed automatically:      | Yes (preset/computed value)   | No (only rendered from Jinja/YAML)  |
| Assigned manually:           | No (too elaborate)            | Yes (Jinja/YAML sources)            |
|                              |                               |                                     |
| Conceptually intrinsic to... | ... individual Minion node    | ... entire system managed by Master |
| Data under revision control: | No (computed values)          | Yes (Jinja/YAML sources)            |
|                              |                               |                                     |
| They define rather...        | _provided_ resources          | _required_ resources                |
|                              | (e.g. minion OS version)      | (e.g. packages to install)          |
|                              |                               |                                     |

Ответ 4

Pillar также полезен для обеспечения того, чтобы только определенные миньоны получали определенный бит информации.

Здесь есть несколько замечательных документов:

http://docs.saltstack.com/topics/pillar/index.html

и здесь:

http://docs.saltstack.com/topics/tutorials/pillar.html

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

http://docs.saltstack.com/ref/pillar/all/index.html

И довольно просто создать пользовательский внешний стол:

http://docs.saltstack.com/topics/development/external_pillars.html