All the looping constructs (with_items etc) assume you have some data
structure that is iterable, ie. a list, a dict, etc.
>From your vars file it seems (guessing here) that you want to iterate
over multiple independent variables.
If that is the case, I would suggest restructuring those multiple vars
to one iterable var.
This will give you a lot more flexibility elsewhere in your deployment as well.

For example:

    allsizes:
      - config: "DC2019"
        name: small2019
        InstallMedia:
          Source: "\\\\someshare\\"
          SourceVHDX: "Virtual Hard Disks\\DC2019.vhdx"
          Destination: "C:\\ISOs\\MDT\\DC2019\\"
      - config: "DC2019"
        name: large2019
        InstallMedia:
          Source: "\\\\someshare\\"
          SourceVHDX: "Virtual Hard Disks\\DC2019.vhdx"
          Destination: "C:\\ISOs\\MDT\\DC2019\\"

(Note that apart from the name (which used to be your variable name),
the dicts are exactly the same - I guess this is just example data and
in reality these actually differ)


If this is now what you want, then explain better what you do want. I
would help if you provide real world examples.



On Tue, 2 Jun 2020 at 21:39, Adam McGill <[email protected]> wrote:
>
> Basically i have a include_vars file that has all my configs, want with_items 
> to only pull back the required config.
>
> example / include_vars:
> ---
> small2019:
>   - config: "DC2019"
>     InstallMedia:
>       Source: "\\\\someshare\\"
>       SourceVHDX: "Virtual Hard Disks\\DC2019.vhdx"
>       Destination: "C:\\ISOs\\MDT\\DC2019\\"
>
> large2019:
>   - config: "DC2019"
>     InstallMedia:
>       Source: "\\\\someshare\\"
>       SourceVHDX: "Virtual Hard Disks\\DC2019.vhdx"
>       Destination: "C:\\ISOs\\MDT\\DC2019\\"
>
> On Tuesday, June 2, 2020 at 2:36:05 PM UTC-5, Adam McGill wrote:
>>
>> If i remove the single quotes, in the debug i see it pull the information 
>> correctly from the include_vars.  If I use the same with_items: "{{ 
>> vm_config }}" in the task i get this.
>>
>> "msg": "The task includes an option with an undefined variable. The error 
>> was: 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no attribute 
>> 'InstallMedia'\n\nThe error appears to be in
>>
>> On Tuesday, June 2, 2020 at 2:06:39 PM UTC-5, Stefan Hornburg (Racke) wrote:
>>>
>>> On 6/2/20 5:55 PM, Adam McGill wrote:
>>> > I would like to take the value of the var and pass it into with_items and 
>>> > I am running into an issue / error, how can i
>>> > pass just the value into with_items.  If i hardcode and put the value 
>>> > with_items: {{ small2019 }} in there are no
>>> > issues.  Using include_vars / file which has the data, want to pass value 
>>> > into with items to get results.
>>>
>>> Why did you wrap the variable in single quotes? This makes it a literal 
>>> string instead of the contents of the variable ...
>>>
>>> Regards
>>>           Racke
>>>
>>> >
>>> > Result:
>>> > ************************************
>>> > - debug:
>>> >     var:  "{{ 'vm_config' }}"
>>> >
>>> > okL  [(servername)] => {
>>> >   "vm_config": "small2019"
>>> > }
>>> >
>>> > Using with_items with value, errors
>>> > ********************************************
>>> > - name: Create VMs
>>> >   win_hyperv_guest:
>>> >     vmname: "{{ vm_name }}"
>>> >     hvhostname: "{{ hv_fullname }}"
>>> >     installmedia_source: "{{ item.InstallMedia.Source }}"
>>> >     installmedia_destination: "{{ item.InstallMedia.Destination }}"
>>> >     importvmoptions_path: "{{ item.ImportVMOptions.Path }}"
>>> >     importvmoptions_destination: "{{ item.ImportVMOptions.Destination }}"
>>> >     systemosdisksize: "{{ item.SystemOSDiskSize | default (omit) }}"
>>> >     vmmemory: "{{ item.VMMemory }}"
>>> >     vmprocessor: "{{ item.VMProcessor }}"
>>> >     vmnetworkadaptervlan: "{{ item.VMNetworkAdapterVlan }}"
>>> >     vmnetworkadapter: "{{ item.VMNetworkAdapter | default (omit) }}"
>>> >     additionaldisks: "{{ item.AdditionalDisks | default (omit) }}"
>>> >     failoverclusteradd: "{{ item.FailoverClusterAdd | default (omit) }}"
>>> >     removedvdrive: "{{ item.RemoveDVDrive | default (omit) }}"
>>> >     bootordergen2networklast: "{{ item.BootOrderGen2NetworkLast | default 
>>> > (omit) }}"
>>> >     state: present
>>> >   with_items: "{{ 'vm_config' }}"
>>> >   register: new_vms
>>> >
>>> > Using with_items with hardcoded - works
>>> > ********************************************
>>> > - name: Create VMs
>>> >   win_hyperv_guest:
>>> >     vmname: "{{ vm_name }}"
>>> >     hvhostname: "{{ hv_fullname }}"
>>> >     installmedia_source: "{{ item.InstallMedia.Source }}"
>>> >     installmedia_destination: "{{ item.InstallMedia.Destination }}"
>>> >     importvmoptions_path: "{{ item.ImportVMOptions.Path }}"
>>> >     importvmoptions_destination: "{{ item.ImportVMOptions.Destination }}"
>>> >     systemosdisksize: "{{ item.SystemOSDiskSize | default (omit) }}"
>>> >     vmmemory: "{{ item.VMMemory }}"
>>> >     vmprocessor: "{{ item.VMProcessor }}"
>>> >     vmnetworkadaptervlan: "{{ item.VMNetworkAdapterVlan }}"
>>> >     vmnetworkadapter: "{{ item.VMNetworkAdapter | default (omit) }}"
>>> >     additionaldisks: "{{ item.AdditionalDisks | default (omit) }}"
>>> >     failoverclusteradd: "{{ item.FailoverClusterAdd | default (omit) }}"
>>> >     removedvdrive: "{{ item.RemoveDVDrive | default (omit) }}"
>>> >     bootordergen2networklast: "{{ item.BootOrderGen2NetworkLast | default 
>>> > (omit) }}"
>>> >     state: present
>>> >   with_items: "{{ small2019 }}"
>>> >   register: new_vms
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google Groups 
>>> > "Ansible Project" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send an 
>>> > email to
>>> > [email protected] 
>>> > <mailto:[email protected]>.
>>> > To view this discussion on the web visit
>>> > https://groups.google.com/d/msgid/ansible-project/03761546-e9df-4a13-85f8-5a56331e8a53%40googlegroups.com
>>> > <https://groups.google.com/d/msgid/ansible-project/03761546-e9df-4a13-85f8-5a56331e8a53%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>
>>>
>>> --
>>> Ecommerce and Linux consulting + Perl and web application programming.
>>> Debian and Sympa administration. Provisioning with Ansible.
>>>
> --
> You received this message because you are subscribed to the Google Groups 
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/1d6bc36e-a1f0-47f8-a146-b8b8f1c6cd91%40googlegroups.com.



-- 
Dick Visser
Trust & Identity Service Operations Manager
GÉANT

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAL8fbwNW2ZOK1D_t7Lc9UmLOsjEA_LgBQ7FRt7eKHf44Cra4fg%40mail.gmail.com.

Reply via email to