Ansible 需要for循环的帮助吗
我想知道是否有一种方法可以让下面的代码在每次列出{{routemapnumber}}值时增加5。所以第一个{{routemapnumber}}值是5,然后另一个是10,等等。我认为for循环可以工作,但是我在语法方面有问题Ansible 需要for循环的帮助吗,ansible,jinja2,Ansible,Jinja2,我想知道是否有一种方法可以让下面的代码在每次列出{{routemapnumber}}值时增加5。所以第一个{{routemapnumber}}值是5,然后另一个是10,等等。我认为for循环可以工作,但是我在语法方面有问题 route-map RDS_FILTER permit {{routemapnumber}} match ip address {{item.aclnumber}} set ip next-hop verify-availability 10.4.21.157 1 tra
route-map RDS_FILTER permit {{routemapnumber}}
match ip address {{item.aclnumber}}
set ip next-hop verify-availability 10.4.21.157 1 track {{item.slanumber}}
set ip next-hop 192.168.2.58
route-map RDS_FILTER permit {{routemapnumber}}
match ip address 109
set ip next-hop verify-availability 10.4.21.157 1 track 1
set ip next-hop 192.168.2.58
route-map RDS_FILTER permit {{routemapnumber}}
match ip address 108
route-map RDS_FILTER permit {{routemapnumber}}
match ip address 107
set ip next-hop 192.168.0.2
route-map RDS_FILTER permit {{routemapnumber}
如果行数不多,我会使用硬编码增量,例如:
route-map RDS_FILTER permit {{routemapnumber}}
match ip address
set ip next-hop verify-availability 10.4.21.157 1 track
set ip next-hop 192.168.2.58
route-map RDS_FILTER permit {{routemapnumber + 10}}
match ip address 109
set ip next-hop verify-availability 10.4.21.157 1 track 1
set ip next-hop 192.168.2.58
route-map RDS_FILTER permit {{routemapnumber + 15}}
match ip address 108
route-map RDS_FILTER permit {{routemapnumber + 20}}
match ip address 107
set ip next-hop 192.168.0.2
route-map RDS_FILTER permit {{routemapnumber + 25}}
如果这对您来说不是一个好选项,您可以在打印变量之前,通过使用set
语句增加变量,在模板中添加一些数学逻辑:
{%set routemapnumber=routemapnumber+5%}
完整示例:
route-map RDS_FILTER permit {{routemapnumber}}
match ip address
set ip next-hop verify-availability 10.4.21.157 1 track
set ip next-hop 192.168.2.58
route-map RDS_FILTER permit {% set routemapnumber = routemapnumber + 5 %}{{routemapnumber}}
match ip address 109
set ip next-hop verify-availability 10.4.21.157 1 track 1
set ip next-hop 192.168.2.58
route-map RDS_FILTER permit {% set routemapnumber = routemapnumber + 5 %}{{routemapnumber}}
match ip address 108
route-map RDS_FILTER permit {% set routemapnumber = routemapnumber + 5 %}{{routemapnumber}}
match ip address 107
set ip next-hop 192.168.0.2
route-map RDS_FILTER permit {% set routemapnumber = routemapnumber + 5 %}{{routemapnumber}}
我不确定您是否可以使用for循环,文件中的其余文本没有重复。尝试硬编码增量,即使用:
{{{routemapnumber+5}}
,在下一个位置:{{{routemapnumber+10}}
等等这就是我一直遇到的问题。我注意到for循环不适用于下面的其他文本。硬编码是我的选择,但变量的数量是动态的,使该选项低于标准。