给定一个针对特定主机范围的inventory.yml
,例如这个
my_role:
hosts:
computer-[1:50].com:
my_role_variable: true
假设我想设置一个变量my_role_variable_2
,它依赖于主机范围的"当前迭代器",例如computer-42.com
应该得到变量COMPUTER_42
,如:
my_role:
hosts:
computer-[1:50].com:
my_role_variable: true
my_role_variable_2: "COMPUTER_{{ ?? index ?? }}"
考虑到特殊变量inventory_hostname
的存在,我想我可以使用类似regex_search
:的东西
my_role:
hosts:
computer-[1:50].com:
my_role_variable: true
my_role_variable_2: "COMPUTER_{{ inventory_hostname | regex_search('computer-(d+).com') }}"
但肯定有更好的方法吗?
过滤器"regex_replace"应该完成的工作
var2: "COMPUTER_{{ inventory_hostname|regex_replace('computer-(\d+).com', '\1') }}"
下一个选项是"split((">
var2: "COMPUTER_{{ inventory_hostname.split('.').0.split('-').1 }}"