ansible中的jinja2拆分过滤器
jinja2 split filter in ansible
我正在将 docker 图像作为参数传递给 ansible 剧本。
在剧本中,我需要将注册表、存储库名称和标签抓取到单独的变量中。
我正在尝试使用拆分过滤器。
- 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(':') }}"
我正在将 docker 图像作为参数传递给 ansible 剧本。 在剧本中,我需要将注册表、存储库名称和标签抓取到单独的变量中。
我正在尝试使用拆分过滤器。
- 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(':') }}"