Chef
獲取具有特定角色的節點名稱
如何獲取具有特定角色的節點列表?
可以通過以下方式獲得:
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