2014-05-14 2 views
0

Я пытаюсь добиться следующих целей. - У меня есть определенные переменные, определенные в hiera yaml для a.yaml. Некоторые из переменных, которые я хочу прочитать из внешних фактов. - Однако всякий раз, когда внешний факт не определен, я хочу использовать некоторые значения по умолчанию.Возможно ли иметь условные обозначения в hiera yaml?

Так, например

--- 
key1: value1 
key2: %{value2_from_facts} | value2 

В этом случае, если пользовательский факт «value2fromfacts» не определена, я хочу, чтобы иметь key2 значение2. Это возможно?

Есть ли лучшая альтернатива назначению по умолчанию для переменной hiera, если используемые факты не разрешены?

ответ

1

Я не думаю, что Hiera предлагает хороший способ об этом сценарии. Я рекомендую решить это на уровне манифеста, например.

if $factvalue { 
    $myvalue = $factvalue 
} 
else { 
    $myvalue = hiera('key2') 
} 

Для модуляризуете этого создайте parser function, который должен работать как

my_hiera($factvalue,'key2') 

с телом, как

override = args.shift 
if override.empty? 
    # duplicate hiera() 
    key, default, override = HieraPuppet.parse_args(args) 
    HieraPuppet.lookup(key, default, self, override, :priority) 
else 
    override 
end 

Это совершенно непроверенные и должна служить только в качестве эскиза общего идея.

+0

Спасибо за предложение Феликс, но я хотел избежать if/else, потому что у меня довольно много параметров. –

+0

Я вижу ... Я добавлю альтернативу, используя пользовательскую функцию. –

Смежные вопросы