2016-02-11 25 views
0

我有兩個堆棧(每個堆棧包含2個Web實例,2個應用程序實例)。可以說,我的籌碼是abc-dev-01abc-dev-02。下疊通過廚師識別相同環境下的堆棧實例

實例是,

abc-dev-01-app01 
abc-dev-01-app02 
abc-dev-01-web01 
abc-dev-01-web02 

abc-dev-02-app01 
abc-dev-02-app02 
abc-dev-02-web01 
abc-dev-02-web02 

所有相同的環境下, 「開發」。我必須將app01的ipaddress放入我的nginx配置中。我沒有使用角色

webserver = search(:node, "role:xyz-app") 

廚師搜索但這搜索將返回兩個ip地址(一個是abc-dev-01-app01等是abc-dev-02-app01)。

但是對於堆棧abc-dev-01,我只需要獲取abc-dev-01-app01的ip地址。

我該如何做到這一點?

回答

0

knife search node "role:xyz-app AND name:*dev-01*"

按相同環境中的兩個不同的堆棧將是管理一個痛。我建議有dev1dev2環境。

+0

或者只是使用堆棧名稱標記機器,節點對象是否有標記並標記?方法爲此。 – Tensibai

+0

類似的事情是我最後做的事情。我創建了一個屬性「stackname:<>」並將該屬性與來自廚師服務器的每個實例關聯。有沒有更好的方式從廚師服務器手動做到這一點? – Tintu

+0

可以使用廚師'標籤'而不是添加屬性。您可以使用knife來標記節點。您應該能夠基於標籤進行搜索。 –