簡體   English   中英

如何從Ansible中的組中獲取包含特定字符串的主機名

[英]How to get a hostname that contains a certain string from a group in Ansible

我正在使用Ansible,需要查找我的數據庫服務器以在配置文件中使用。

我有一組所有數據庫服務器: groups.rds我知道我正在尋找的服務器包含某個字符串,例如。 “發展”。

找到該主機名最簡潔的方法是什么?

我正在尋找這樣的東西: groups.rds.contains("development").first()

您可以使用select過濾器match過濾器來完成此操作。

groups.rds | select("match", ".*production.*") | first

但是你要求的是最干凈的解決方案。 從這里看起來您正在嘗試基於主機名識別環境(開發)。 如果是這樣的話,為此又建立一個團隊是不是有意義?

如果你有這樣的事情:

[non_rds]
some.unrelated.development.host

[rds]
some.production.host
some.staging.host
some.development.host

[production]
some.production.host

[staging]
some.staging.host

[development]
some.development.host
some.unrelated.development.host

然后,很容易得到這些組的交集:

groups.rds | intersect(groups.development) | first

這將只為您提供rdsdevelopment兩個組中的主機,即some.development.host

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM