所以,我似乎无法找到我的方式来解决这个令人沮丧的问题,我想知道这里有没有人有任何想法。 我有一个Jinja模板,它以配置文件格式吐出一长串IP地址。这工作正常。问题是,当我有一个客户有一个以上的IP地址存储到他们的名字模板,而不是将这个新的IP保存在一个新的线上,只需将第二个IP附加到第一个IP上, IP地址连接在一起。这当然不理想。 下面是我使用的神社模板:使用列出的YAML变量进行Jinja模板
{% for cust, config in customers.items()%}
{% raw %}#{% endraw %} {{ cust }} - {{ config['type'] }}
-A INPUT -s {{ config['ipaddr'] }} -p tcp -m state --state NEW -m tcp --dport {{config['accept']}} ACCEPT
{% endfor %}
这是变量,从该文件的模板走的是值:
BTG-VELOCITY:
type: PBSTP
accept: 32500
connect: 33500
ipaddr:
196.167.203.65
192.167.203.65
subtype: OUTBOUND
GFAM:
type: SPOT
accept: 32501
connect: 33501
ipaddr: 192.168.563.20
subtype: AMOUNT
GUANFABANK:
type: SPOT
accept: 32503
connect: 33503
ipaddr: 192.168.563.40
subtype: STACKED
MAINBANK:
type: FWD
accept: 32504
connect: 33504
ipaddr: 192.167.203.02
subtype: TIERED
TEST-BANK:
type: PBSTP
accept: 32506
connect: 33506
ipaddr: 192.167.203.92
subtype: INBOUND
SESH:
type: SPOT
accept: 32508
connect: 33508
ipaddr: 192.167.203.63
subtype: TIERED
的问题是与客户的BTG速“ 。模板吐出了这样一行
-A INPUT -s 192.168.563.20 196.168.563.20 -p tcp -m state --state NEW -m tcp --dport 32501 ACCEPT
而不是期望的两条线路是这样的:
-A INPUT -s 192.168.563.20 -p tcp -m state --state NEW -m tcp --dport 32501 ACCEPT
-A INPUT -s 196.168.563.20 -p tcp -m state --state NEW -m tcp --dport 32501 ACCEPT
为什么不添加嵌套循环来遍历IP地址? –
我试过这个,但我可能做错了。当我这样做的时候,最终会产生一个巨大的输出文件,其输入方式太多,每个客户端在每一行都有相同的IP地址值。你有没有机会建议如何正确地做到这一点? –