Python 中的 Ansible 过滤器 (ipaddr)
Ansible filters (ipaddr) in Python
我正在尝试在 python 中使用 ansible 过滤器 (ipaddr)。
from ansible.plugins.filter import ipaddr
import jinja2
env = jinja2.Environment()
tmpl_string = """test : {{ '10.124.0.0'| ipaddr(-1) }}"""
tmpl = env.from_string(tmpl_string)
print(tmpl.render())
我可以导入 ipaddr 过滤器,没有任何问题,但是当我执行代码时,我收到以下错误:
jinja2.exceptions.TemplateAssertionError: No filter named 'ipaddr'.
您需要在 Jinja 注册一个过滤器才能在模板中使用;请参阅文档的 Custom Filters 部分。你想要:
from ansible.plugins.filter import ipaddr
import jinja2
env = jinja2.Environment()
# tell jinja about the ipaddr filter
env.filters['ipaddr'] = ipaddr
tmpl_string = """test : {{ '10.124.0.0'| ipaddr(-1) }}"""
tmpl = env.from_string(tmpl_string)
print(tmpl.render())
我正在尝试在 python 中使用 ansible 过滤器 (ipaddr)。
from ansible.plugins.filter import ipaddr
import jinja2
env = jinja2.Environment()
tmpl_string = """test : {{ '10.124.0.0'| ipaddr(-1) }}"""
tmpl = env.from_string(tmpl_string)
print(tmpl.render())
我可以导入 ipaddr 过滤器,没有任何问题,但是当我执行代码时,我收到以下错误:
jinja2.exceptions.TemplateAssertionError: No filter named 'ipaddr'.
您需要在 Jinja 注册一个过滤器才能在模板中使用;请参阅文档的 Custom Filters 部分。你想要:
from ansible.plugins.filter import ipaddr
import jinja2
env = jinja2.Environment()
# tell jinja about the ipaddr filter
env.filters['ipaddr'] = ipaddr
tmpl_string = """test : {{ '10.124.0.0'| ipaddr(-1) }}"""
tmpl = env.from_string(tmpl_string)
print(tmpl.render())