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
On Wednesday, June 3, 2020 at 8:09:43 AM UTC-5, Dick Visser wrote:
>
> 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] <javascript:>>
> 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] <javascript:>>.
> >>> > 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] <javascript:>.
> > 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/552452a8-0f70-40a0-8c50-ac5950439d0co%40googlegroups.com.