Ansible Playbook单Play循环多组凭据的语法错误求助
问题:Ansible中循环多组凭据的变量定义语法错误
你当前的v_creds定义不符合YAML列表+字典的语法规范,导致解析失败。错误核心是未将每个凭据组定义为独立字典,也未用列表格式包裹。
错误的变量定义(参考)
v1_username: 'user123' v1_password: "{{ vault_v1_password }}" v1_hostname: 'vmname123.domain' v2_username: 'user124' v2_password: "{{ vault_v2_password }}" v2_hostname: 'vmname124.domain' v3_username: 'user125' v3_password: "{{ vault_v3_password }}" v3_hostname: 'vmname125.domain' v1_datacenter: "DC1" v2_datacenter: "DC2" v3_datacenter: "DC3" v_creds: "hostname": "{{v1_hostname}}", "username": "{{v1_username}}", "password": "{{v1_password}}", "datacenter": "{{v1_datacenter}}" "hostname": "{{v2_hostname}}", "username": "{{v2_username}}", "password": "{{v2_password}}", "datacenter": "{{v2_datacenter}}" "hostname": "{{v3_hostname}}", "username": "{{v3_username}}", "password": "{{v3_password}}", "datacenter": "{{v3_datacenter}}"
正确的v_creds变量定义
需将v_creds定义为字典组成的列表,每个凭据组是独立字典,用-标识列表项,确保模板变量正确引用:
v1_username: 'user123' v1_password: "{{ vault_v1_password }}" v1_hostname: 'vmname123.domain' v2_username: 'user124' v2_password: "{{ vault_v2_password }}" v2_hostname: 'vmname124.domain' v3_username: 'user125' v3_password: "{{ vault_v3_password }}" v3_hostname: 'vmname125.domain' v1_datacenter: "DC1" v2_datacenter: "DC2" v3_datacenter: "DC3" v_creds: - hostname: "{{ v1_hostname }}" username: "{{ v1_username }}" password: "{{ v1_password }}" datacenter: "{{ v1_datacenter }}" - hostname: "{{ v2_hostname }}" username: "{{ v2_username }}" password: "{{ v2_password }}" datacenter: "{{ v2_datacenter }}" - hostname: "{{ v3_hostname }}" username: "{{ v3_username }}" password: "{{ v3_password }}" datacenter: "{{ v3_datacenter }}"
补充说明
- YAML列表必须用
-作为每个元素开头,每个元素是包含hostname/username等键的字典 - 模板变量
{{ ... }}无需额外加引号(除非变量值含特殊字符,此处直接引用已定义变量即可) - 保持缩进一致(建议用2或4个空格,禁止混用制表符)
另外,你的Playbook中debug任务需调整:loop执行后vs_check是包含所有循环结果的对象,直接访问vs_check['instance']会报错,可修改为:
- debug: msg: "{{ item['instance']['runtime']['powerState'] }}" loop: "{{ vs_check.results }}" when: item is succeeded
内容的提问来源于stack exchange,提问作者dfs
相关产品推荐
相关产品推荐

