获取具有特定角色的节点名称

获取具有特定角色的节点名称

如何获取具有特定角色的节点列表?

可以通过类似这样的方式获得:

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

有没有办法通过刀来完成它而不需要 bash 开销?

答案1

有一个解决方案:

knife search node "roles:$ROLE_NAME"

答案2

“knife search” 的标头输出到 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

相关内容