Ansible 我们可以在一个任务中有2个带\u项的任务吗

Ansible 我们可以在一个任务中有2个带\u项的任务吗,ansible,Ansible,以下是条件 - name: Find the image slurp: src: "{{ IMAGE }}" register: slurp_results - name: Upload image shell: | skopeo copy -docker-archive:{{ item }}.tar docker://{{ URL }}/TESTIMAGE with_items: "{{ (slurp_results.content|b64decode).sp

以下是条件

- name: Find the image
  slurp:
    src: "{{ IMAGE }}"
  register: slurp_results

- name: Upload image
  shell: |
    skopeo copy -docker-archive:{{ item }}.tar docker://{{ URL }}/TESTIMAGE
  with_items: "{{ (slurp_results.content|b64decode).splitlines() }}"
上述代码有效

但是我还需要将“TESTIMAGE”替换为{{item}},如下所示

skopeo copy -docker-archive:{{ item }}.tar docker://{{ URL }}/{{ item }}

如何在一个shell任务中定义2个with_项,并获得2个不同的slurp结果

我相信您可以使用
子元素
模块。这是一个链接。尝试使用以下示例:

- name: Setup MySQL users, given the mysql hosts and privs subkey lists
  mysql_user:
    name: "{{ item.0.name }}"
    password: "{{ item.0.mysql.password }}"
    host: "{{ item.1 }}"
    priv: "{{ item.0.mysql.privs | join('/') }}"
  with_subelements:
    - "{{ users }}"
    - mysql.hosts

用户被称为item.0,主机被称为item.1,依此类推

如果您在任务中使用
{{IMAGE}}
代替
{item}}
会怎么样?如果我使用
{IMAGE}
那么我需要定义为变量,但我需要使用2和{u items-一个用于定义
docker归档:{item}.tar
,另一个用于
{URL}/{item}
。如何实现这一点?2在单个任务中使用_项变量