Принципы написания формулы
Формула — это набор файлов, которые хранятся в корне архива. Архив именуется согласно шаблону: <formula_name>-formula.tar.gz.
Формула включает файлы:
-
обязательные:
-
init.sls— главный файл с состояниями формулы; может включать в себя другие файлы с расширением.slsчерез директивуinclude; -
clean.sls— файл отката состояний формулы; -
pillar.example— файл с примером указания параметров формулы; -
FORMULA— описание формулы в формате YAML;
-
-
не обязательные:
-
docs/README.RST— файл с описанием способов применения формулы и входящих в нее состояний; -
any.sls— другие файлы с расширением.sls, содержащие состояния, которые включены вinit.slsилиclean.slsдирективойinclude; -
any_dir— другие подкаталоги, содержащие файлы с расширением.sls, которые включены вinit.slsилиclean.slsдирективойinclude; -
map.jinja— файл, который описывает особенности конфигурации под конкретную ОС или другие статические конфигурации.
-
Файл FORMULA включает атрибуты формулы:
-
name— имя формулы;
Значение поля name должно быть уникальным для всех формул, поскольку при их объединении в одну большую формулу дублирование значений может привести к проблемам с применением конфигураций.
|
-
os— ОС, поддерживающие формулу; -
os_family— семейства ОС, поддерживающие формулу; -
version— версия пакета с формулой, указанная в формате YYYYMM; если в месяце было несколько выпусков (release), то минорный месячный выпуск проставляется в атрибутеrelease; -
release— выпуск версии; атрибут расширяет версионность формулы, если в месяце было несколько выпусков; -
summary— краткое описание формулы; -
description— подробное описание формулы.
SLS-файлы формулы составлены в синтаксисе YAML и содержат описания состояний, которые достигает система при применении формулы.
Имена SLS-файлов, а также имена каталогов, не могут содержать точки, кроме точки между именем и расширением .sls.
Могут включать строчные прописные латинские символы, цифры от 0 до 9, символ - (минус) и символ _ (подчеркивание)
и соотвтетствовать маске [a-zA-z0-9-_]+.
Каждому состоянию присваивается уникальный идентификатор в рамках продукта.
Безопасное хранение и передача конфиденциальных данных с помощью pillar-файлов
Для безопасного хранения и передачи конфиденциальных данных, таких как пароли и ключи, рекомендуется использовать pillar-файлы. Они содержат зашифрованную информацию, специфичную для каждого агента (minion), что обеспечивает защиту данных при передаче (подробную информацию см. в официальной документации).
В pillar-файле задайте значения конфиденциальных данных (логина и пароля) при создании версии конфигурации в пользовательском интерфейсе «Кабинет администратора».
Пример:
{
"lookup":{
"user": "user123",
"password": "password"
}
}
Чтобы пароли не попали в логи и результаты исполнения команд, передайте их в исполняемые скрипты как значение атрибута args.
Пример запуска скрипта:
run_script:
cmd.script:
- name: salt://{{slspath}}/files/error.sh
- args: "-u {{ error_params.user }} -p {{ error_params.password }}"