docker - ansible中的jinja2拆分过滤器
问题描述
我将 docker image 作为参数传递给 ansible playbook。在剧本中,我需要将注册表、存储库名称和标记获取到单独的变量中。
我正在尝试使用拆分过滤器。
- set_fact:
registry: "{{ source_image.split('/')[0] }}"
repo_and_tag: "{{ source_image.split('/')[1] }}"
- set_fact:
repo: "{{ repo_and_tag.split(':')[0] }}"
tag: "{{ repo_and_tag.split(':')[1] }}"
而不是多次使用拆分过滤器,有没有更好的方法呢?
谢谢。
解决方案
您可以先创建列表,例如
- set_fact:
registry: "{{ _array.0 }}"
repo_and_tag: "{{ _array.1 }}"
vars:
_array: "{{ source_image.split('/') }}"
- set_fact:
repo: "{{ _array.0 }}"
tag: "{{ _array.1 }}"
vars:
_array: "{{ repo_and_tag.split(':') }}"
推荐阅读
- c# - 反序列化关系模型的 Newtonsoft.Json 问题
- java - 来自 Db2 数据库的日语字符编码 in-java-
- html - 带有文本的图像没有并排对齐
- logging - 如何在 Play 框架中为不同环境定义多个 logback 配置?
- go - 在哪里存储测试(项目结构 - 最佳实践)?
- php - 如何使用 +1 更新数据库
- html - 如何在闪亮的另一个 CSS 元素下居中
- flutter - 如何从 Flutter Web 的 HtmlElementView 执行 iframe 功能
- python - 如何在海龟重复中更改颜色
- angular - Angular - ErrorHandler 与 HttpInterceptor