Получить имена узлов, которые играют определенную роль
Как я могу получить список узлов, которые играют определенную роль?
Это может быть получено с чем-то вроде этого:
for node in `knife node list`; do
[[ -n "`knife node show $node | grep $ROLE_NAME`" ]] && echo $node
done
Есть ли способ сделать это с помощью ножа без удара над головой?
2 ответа
Решение
Заголовок из "поиска ножа" выводится в 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