Как определить переменные для всех хостов в Ansible?

Один из вариантовawk:

for j in...; do
  oc... | bunyan --color... | awk -v node="$j" '{print node " " $0}'
done

Пример запуска:

$ for j in node1 node2 node3
> do
> echo stuff | awk -v node="$j" '{print node " " $0}'
> done
node1 stuff
node2 stuff
node3 stuff

Другой вариантsed:

for j in node1 node2 node3; do
  j=${j////\\/}
  j=${j//&/\\&}
  oc... | bunyan --color... | sed "s/^/$j /"
done

Мы позаботились о том, чтобы избежать любых косых черт -или &в j, так как sed интерпретирует их специально в командах s//. Я использовал bash -ism для поиска -и замены -в расширении параметра. Две прямые косые черты -означают «заменить все совпадения», а двойная \\используется для того, чтобы в замененном тексте была одна обратная косая черта.

0
25.02.2020, 21:24
1 ответ

all— неявная группа с системой инвентаризации.

Вы можете создать group_vars/all.ymlи поместить туда переменные.

Думаю, это можно сделать и другими способами.

В документе переменных сказано, что вы можете использовать переменные из (автоматически )включенных файлов точно так же, как роли .

0
28.04.2021, 23:22

Теги

Похожие вопросы