YAML:“;ansible模块不支持的参数“;

YAML:“;ansible模块不支持的参数“;,ansible,ansible-2.x,ansible-facts,ansible-template,Ansible,Ansible 2.x,Ansible Facts,Ansible Template,我在尝试以下操作时出现以下错误: “msg”:“不支持的(vmware\u vm\u vm\u drs\u规则)模块参数:将\u委托给支持的参数包括:关联\u规则、群集\u名称、drs\u规则\u名称、启用、主机名、强制、密码、端口、代理\u主机、代理\u端口、状态、用户名、验证\u证书、虚拟机” 我不希望在最终_列表为空或少于一个对象时执行模块。只有当它在最终_列表中超过2个对象时,我才希望它执行。有人能帮我检查一下状况吗 "ansible_facts": {"final_list":

我在尝试以下操作时出现以下错误:

“msg”:“不支持的(vmware\u vm\u vm\u drs\u规则)模块参数:将\u委托给支持的参数包括:关联\u规则、群集\u名称、drs\u规则\u名称、启用、主机名、强制、密码、端口、代理\u主机、代理\u端口、状态、用户名、验证\u证书、虚拟机”

我不希望在最终_列表为空或少于一个对象时执行模块。只有当它在最终_列表中超过2个对象时,我才希望它执行。有人能帮我检查一下状况吗

    "ansible_facts": {"final_list": [ "NPSY7ADFS01"]}
    "ansible_facts": {"final_list": []}

    - name: Create DRS Anti Affinity Rule for VM-VM
       vmware_vm_vm_drs_rule:
         hostname: "{{ vcenter_hostname }}"
         username: "{{ vcenter_username }}"
         password: "{{ vcenter_password }}"
         cluster_name: "{{ datacenter_name }}-{{ cluster_name }}"
         validate_certs: no
         vms: "{{ final_list }}"
         drs_rule_name: "{{ rule_name }}"
         enabled: True
         mandatory: True
         affinity_rule: "{{ action_type }}" 
         delegate_to: localhost
       register: rule_creation
       when: final_list is defined
Q:“不支持的(vmware\u vm\u vm\u drs\u规则)模块参数:委托给…”

答:错误消息很清楚:“delegate_to不是vmware_vm_vm_drs_规则的参数”。这个缩进是错误的。这就是为什么
委托给
被视为模块参数的原因。修正
delegate_to

     - name: Create DRS Anti Affinity Rule for VM-VM
       vmware_vm_vm_drs_rule:
         hostname: "{{ vcenter_hostname }}"
         username: "{{ vcenter_username }}"
         password: "{{ vcenter_password }}"
         cluster_name: "{{ datacenter_name }}-{{ cluster_name }}"
         validate_certs: no
         vms: "{{ final_list }}"
         drs_rule_name: "{{ rule_name }}"
         enabled: True
         mandatory: True
         affinity_rule: "{{ action_type }}" 
       delegate_to: localhost
       register: rule_creation
       when: final_list is defined
FWIW。用于验证语法


问:“我不希望在最终的_列表为空时执行模块。”

A:试试这个

       when: final_list|default([])|length > 0