Недавно в компьютерном классе моей школы мне поручили управлять кластером серверов, и я обнаружил, что ansible
очень помогает. Будучи новичком в этом, мне нужна помощь в следующем сценарии:
Все серверы в кластере должны быть настроены почти одинаково в зависимости от определенных условий.
Чтобы применить некоторые переменные ко всем машинам в кластере, я научился использовать файлы group_vars
с файлом inventory
. Тем не менее, есть ситуация, что я не придумал, что делать.
В зависимости от конкретной операции, которую должны выполнять эти серверы, некоторым переменным следует присвоить значения, соответствующие желаемому условию; значение каждого условия может быть установлено в переменную. После некоторого размышления я пришел к выводу, что проще всего использовать опцию -e
ansible-playbook
(т.е. внешние переменные).
Но где я застрял, так это в том, чтобы соответствующие переменные в файлах group_vars
принимали новые значения на основе заданного значения переменной условия операции.
Назовем переменную условия операции opv
. Переменные в файле group_vars, скажем, var0
, var1
, var2
- для
opv=0
,var0=v00
,var1=v01
,var2=v02
- для
opv=1
,var0=v10
,var1=v11
,var2=v12
- для
opv=2
,var0=v20
,var1=v21
,var2=v22
и т. д.
Есть ли элегантный способ выполнить вышеизложенное? Заранее спасибо за любые советы/подсказки. Я готов копать. Итак, просто указатели великолепны.