Принципы написания формулы

Формула — это обычная директория, которая именуется согласно шаблону: <top_level_dir>-formula.

Директория обязательно содержит поддиректорию <top_level_dir>, имя которой совпадает с именем формулы, и файлы:

  • обязательные:

    • <top_level_dir>/init.sls — главный файл с состояниями формулы, может включать в себя другие файлы с расширением .sls через директиву include;

    • <top_level_dir>/clean.sls — файл отката состояний формулы;

    • pillar.example — файл с примером указания параметров формулы;

    • FORMULA — описание формулы в формате YAML;

  • не обязательные:

    • docs/README.RST — файл с описанием способов применения формулы и входящих в нее состояний;

    • <top_level_dir>/any.sls — другие файлы с расширением .sls, содержащие состояния, которые включены в init.sls или clean.sls директивой include;

    • <top_level_dir>/<any_dir> — другие поддиректории, содержащие файлы с расширением .sls, которые включены в init.sls или clean.sls директивой include;

    • <top_level_dir>/map.jinja — файл, который описывает особенности конфигурации под конкретную ОС или другие статические конфигурации.

Файл FORMULA включает атрибуты формулы:

  • name — имя формулы;

  • os — ОС, поддреживающие формулу;

  • os_family — семейства ОС, поддреживающие формулу;

  • version — версия пакета с формулой, указанная в формате YYYYMM; если в месяце было несколько релизов, то минорный месячный релиз проставляется в атрибуте release;

  • release — выпуск версии; атрибут расширяет версионность формулы, если в месяце было несколько релизов;

  • summary — краткое описание формулы;

  • description — подробное описание формулы;

  • top_level_dir — имя поддиректории, где расположены файлы с расширением .sls.

SLS-файлы формулы составлены в синтаксисе YAML и содержат описания состояний, которые достигает система при применении формулы. Имена SLS-файлов не могут содержать точки, кроме точки между именем и расширением .sls.

Каждому состоянию присваивается уникальный идентификатор в рамках LCM.