我可以在 nftables.conf 中使用大括号之外的其他内容吗?

我可以在 nftables.conf 中使用大括号之外的其他内容吗?

我正在尝试使用 Ansible 制作有状态 nftables 配置文件的模板。

  • Ansible 使用 Jinja 进行模板化,而 Jinja 使用花括号作为变量:

{{ variable }}

  • Nftables 配置使用花括号将变量分组在一起:

{ 192.168.3.0/24, 192.168.1.0/24 }

  • 转义 Jinja2 大括号如下所示:

{%raw%} { {%endraw%}或者像这样:

{{ '{' }}

这看起来非常丑陋并且难以阅读。有什么方法可以让 NFtables 使用与大括号不同的字符吗?喜欢[(<

答案1

如果你使用 ansible 的模板模块,然后您可以配置 Jinja 使用的变量插值标记:

此外,您可以通过向模板文件添加特殊标头来覆盖 jinja2 设置。即#jinja2:variable_start_string:'[%',variable_end_string:'%]',trim_blocks:False将变量插值标记更改为[%var%]而不是{{var}}。这是防止评估看起来像但不应该是 Jinja2 的东西的最好方法。

jinja 文档有一个可以更改的各种标记的列表。

相关内容