[英]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
這將只為您提供rds
和development
兩個組中的主機,即some.development.host
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.