给出一个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') }}"
但是肯定有更好的方法吗?
答案 0 :(得分:0)
过滤器“ regex_replace”应该可以完成工作
class Trains():
trains_seats = {'Blue_Line': 20, 'Orange_Line': 30}
def __init__(self,train,num_of_tickets):
self.train = train
self.num_of_tickets = num_of_tickets
def book_seats(self):
if self.train in Trains.trains_seats and Trains.trains_seats[self.train] >= self.num_of_tickets:
Trains.trains_seats[self.train] = Trains.trains_seats[self.train] - self.num_of_tickets
return Trains.trains_seats
else:
return 'Not enough seats or Wrong Train'
def return_available_seats(self):
return Trains.trains_seats
class Passenger(Trains):
def __init__(self,first,last,train,num_of_tickets):
super().__init__(train,num_of_tickets)
self.first = first
self.last = last
下一个选项是“ split()”
var2: "COMPUTER_{{ inventory_hostname|regex_replace('computer-(\\d+).com', '\\1') }}"