роли? Полное имя роли - role_name_somevar? Аббревиатура имени роли - rn_somevar? Или ещё как?
Полное имя. Ибо потом будет гореть у коллег
А зачем в переменной имя роли? Это же переменная только локально в роли
я полагаю, речь о тех переменных, которые потом в host_vars и group_vars определяют конкретные значения на конкретных инстансах. и да, без префиксов там конфликтов не миновать п.с. голосую за full_name_*
На больших проектах практика показал, что удобнее всего как это делают в debops. Что-то вроде BEM. role_name__category__var_name Типа такого. При такой схеме можно даже будет распарсить переменные при случае и наследовать древовидно. А внутренние переменные начинать с _
Думал тоже плюсануть, но в каких случаях бывает полезен category? Это прям большие роли?
Ну, допустим, если роль nginx и в ней конфигурим server, и там уже location (просто с потолка какую-то хрень абстрактную взял) nginx__server__location__root__proxy_pass__default Т.о. даже если нужно будет где-то извращаться и перебрать переменные (через ansible переменные для ansible собирать или еще какая-то дичь), то всегда можно сделать spllit('__')
Практика показывает, что мега роли плохой кейс
Понятно, мы иногда вводили ещё один уровень, когда объединяли несколько ролей по задаче, например, для раскатывания системы централизованного логирования, ну там эластик, грейлог и ещё несколько ролей. Получалось что-то вроде logs__graylog__some_var для роли logs/graylog.
ну так у вас же есть плей , он может уже называться как угодно
В данном примере вложенность лишняя, конечно же. Вложенность актуальна когда вложенная часть не может существовать отдельно. Ну, или есть 100500 каких-то общих зависимостей. Хороший пример в kubespray. Например container-engine. Вложенность нужна для правильной работы наследования переменных.
(kubespray == DHNWE) = True
False, True = True, False
Обсуждают сегодня