【发布时间】:2019-05-16 12:05:32
【问题描述】:
我的剧本中有一个从列表派生的变量。在某些情况下,此变量包含一个“-”来分隔两个值。例如,
Numbers:
- 2211
- 2211-2212
在这种情况下,我想根据条件将“-”替换为“_”:如果数字长度为 4 个字符,请执行此操作。否则,将“-”替换为“_”并执行此操作。
我已经尝试在我的剧本中摆弄 jinja2 ans 正则表达式,但到目前为止还没有运气。这是我尝试过的,
number: {% if length(item) == 4 %} {{ item | regex_replace("^(.*)$", "Number_\1") | string }} {% else %} {{ item | regex_replace("^(.*)$", "Number_\1") |replace("-", "_") | string }}
我想要的结果,
Number is four characters long:
number: Number_2211
Number is more then 4 characters long:
number: Number_2211_2212
我收到的一些错误消息是,
ERROR! Syntax Error while loading YAML.
did not find expected key
ERROR! Syntax Error while loading YAML.
found character that cannot start any token
有没有办法在 Ansible 剧本中实现这一目标? 提前致谢!
【问题讨论】:
标签: ansible yaml jinja2 ansible-inventory