Chef

獲取具有特定角色的節點名稱

  • May 22, 2017

如何獲取具有特定角色的節點列表?

可以通過以下方式獲得:

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

有沒有辦法通過刀來做到這一點而沒有 bash 成本?

有一個解決方案:

knife search node "roles:$ROLE_NAME"

“刀搜尋”的標題輸出到標準錯誤,所以你可以使用

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

引用自:https://serverfault.com/questions/401984