With_items /pass var - string.

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.

Result:

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

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

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:

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.

Thanks for the reply Dick.

Basically i want to have a include file/vars that will hold configuration items for each config. Using with_items would like to call out to that config file/include vars and pull only the data associated to its name. The information i provided, yes was an example and I think your reply of the restructuring could help. Based on using that restructure using with_items is going to loop in all the information in the config/include file. So i could narrow down my list in within the with_items with a passed extra vars variable ( {{ allsizes.{{ vm_config }} }} ? Going to test out / restructure this afternoon , sorry for the delay in response, appreciate the feedback.

Adam