【发布时间】:2021-01-11 06:38:17
【问题描述】:
我正在尝试使用循环访问变量,但它不适合我。
剧本
---
- name: test looping
hosts: localhost
gather_facts: False
vars:
repos:
- name: repo1
os_list:
- centos
- rhel
major_distribution_list:
- 6
- 7
- 8
archs:
- noarch
- x86_64
tasks:
- include_tasks: repo-paths.yml
with_items: "{{ repos }}"
loop_control:
loop_var: repo
- debug: msg="./{{ item.0 }}/{{ item.1 }}/{{ item.2 }}/{{ item.3 }}"
with_nested:
- "{{ repo.os_list }}"
- "{{ repo.major_distribution_list }}"
- "{{ repo.name }}"
- "{{ repo.archs }}"
但我收到错误 repo 变量未定义。 原始输出:-
PLAY [test looping] ***********************************************************************************************************************************************************
TASK [include_tasks] **********************************************************************************************************************************************************
TASK [debug] ******************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "'repo' is undefined"}
PLAY RECAP ********************************************************************************************************************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
预期输出:-
"msg": "./centos/6/repo1/noarch"
"msg": "./centos/6/repo1/x86_64"
"msg": "./centos/7/repo1/noarch"
"msg": "./centos/7/repo1/x86_64"
"msg": "./centos/8/repo1/noarch"
"msg": "./centos/8/repo1/x86_64"
"msg": "./rhel/6/repo1/noarch"
"msg": "./rhel/6/repo1/x86_64"
"msg": "./rhel/7/repo1/noarch"
"msg": "./rhel/7/repo1/x86_64"
"msg": "./rhel/8/repo1/noarch"
"msg": "./rhel/8/repo1/x86_64"
请帮助我,也请告诉我是否有其他方法可以这样做。
【问题讨论】:
标签: ansible ansible-2.x ansible-template