jinja2 - 修改 Ansible/Jinja2 中的列表项

标签 jinja2 ansible

例如,您的角色中有一个列表变量...

myitems:
  - one
  - two

...并且想要修改 Ansible 中的每个项目(例如在之前/之后附加一个字符串),您可以...

最佳答案

...通过在角色的 vars/main.yml 中创建以下两个变量来实现这一点。文件(或在可以定义 vars 的所有其他地方):

interim_string: "{% for item in myitems %}with-{{item}}X {% endfor %}"
result_list: "{{ interim_string.split() }}"

由此产生的 result_list现在包含以下值:
- with-oneX
- with-twoX

x 之后提及空格定义时 interim_string .用于分割interim_string再次进入列表。您可以按另一个字符或序列拆分(例如 split('#') )。但是,这将导致 result_list 末尾的列表项为空。 .

关于jinja2 - 修改 Ansible/Jinja2 中的列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35142326/

相关文章:

ansible - 在 Ansible 中,如何查询主机变量以根据不同键的值从列表项中获取键的特定值?

javascript - 如何使用 Javascript 变量设置 jinja2 表达式?

ansible - 如何在不更改命令行参数的情况下更改 ansible 详细级别?

javascript - 将 eslint 与模板语言结合使用

yaml - YAML 中的 Ansible 整数变量

python - Ansible:读取属性值并访问它的 XML 模块

Ansible:不对剧本中的特定标签执行 vars_prompt?

python - Ansible 创建一个 virtualenv

java - 在 App Engine 上使用 Java 中的 Python 代码

html - 检查是否在 Jinja2 模板中未选中复选框