Получить имена узлов, которые играют определенную роль

Как я могу получить список узлов, которые играют определенную роль?

Это может быть получено с чем-то вроде этого:

for node in `knife node list`; do
  [[ -n "`knife node show $node | grep $ROLE_NAME`" ]] &&  echo $node
done

Есть ли способ сделать это с помощью ножа без удара над головой?

2 ответа

Решение

Есть решение:

knife search node "roles:$ROLE_NAME"

Заголовок из "поиска ножа" выводится в stderr, так что вы можете использовать

knife search "role:$ROLE_NAME" -i 2>/dev/null

просто вернуть список узлов. Полезно, если вы хотите обернуть это в оператор for:

for n in $(knife search "role:$ROLE_NAME" -i 2>/dev/null); do
  // do something here
done
Другие вопросы по тегам