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.