【发布时间】:2021-02-02 09:17:17
【问题描述】:
我不明白如何在我的脚本中使用loop。
我想循环执行我的任务 vswitch (VS_VMKERNEL) 和我的主机列表 (hostname),但我系统性地出现了语法错误。
我需要在 VS VMKERNEL 上循环,因为我想将此任务用于许多不同的 vswitch 和主机
错误是
致命:[本地主机]:失败! => {"msg": "该任务包含一个带有未定义变量的选项。错误是:'str object' has no attribute 'name'\n\n错误似乎在 '/root/dev-ansible/tasks /LAB-010-Vswitch.yml':第 1 行,第 3 列,但可能\n位于文件中的其他位置,具体取决于确切的语法问题。\n\n违规行似乎是:\n\n\n- 名称:在此处添加 Vswitch VMKERNEL\n ^\n"}
#task######################################
- name: Adding Vswitch VMKERNEL
vmware_vswitch:
hostname: '{{ item.1 }}'
username: '{{ useresxi }}'
password: '{{ passesxi }}'
switch: "{{ item.0.name }}"
nics: "{{ item.0.uplink1|default(omit)}}"
nics: "{{ item.0.uplink2|default(omit)}}"
mtu: "{{ item.0.mtu }}"
validate_certs: no
delegate_to: localhost
loop: "{{ VS_VMKERNEL|product(hostname)|list }}"
#loop: "{{ VS_VMKERNEL|subelements('hostname') }}"
#loop: "{{ VS_VMKERNEL|product(hostname)|list }}"
#loop: "{{ VS_VMKERNEL|dictsort('hostname') }}"
#vars################################################
# ESXI Infra
hostname:
- '192.168.218.50'
- '192.168.218.51'
useresxi: root
passesxi: "-------"
#vswitch base
VS_VMKERNEL:
name: VS-VMKERNEL
uplink2: vmnic5
mtu: 1500
【问题讨论】:
-
你的脚本是什么,请在问题中包含它,以及你的错误信息是什么?