I can't do this "correctly" inside the module since it's meant to be a
flexible variable.
My problem with
module_name:
foo: "{{ x }}"
is that I would like to use variables within foo
so I have
module_name:
foo:
somevar: "{{ myvar }}"
and this definitely turns myvar into a string.
I guess I can do some parsing of the value within my module and let you do
things like
module_name:
foo:
somevar: "int: {{ myvar }}"
but I was hoping there might be a cleaner way.
On Monday, August 25, 2014 7:11:10 AM UTC-7, Michael DeHaan wrote:
>
> At least in any current versions of Ansible, if you are passing structured
> args, like so:
>
> module_name:
> foo: "{{ x }}"
>
> It will send JSON and keep types.
>
> Otherwise, you can cast automatically in the module by using the variable
> "type=" options in the argument_spec of the module, for instance, to
> declare something should always be treated as an int.
>
> Which you should be doing anyway, as that makes the playbooks cleaner by
> not having to cast anything in the playbook.
>
>
>
>
>
> On Sun, Aug 24, 2014 at 2:40 PM, Ayelet Goldin <[email protected]
> <javascript:>> wrote:
>
>> My problem is that when I look at thing['inty_var'] in the module it's a
>> string. that is :
>>
>> - name: hard coded thingy
>> parametered_module.py:
>> thingy:
>> stringy_var: 'asdf'
>> inty_var: 3
>> floaty_var: 123.21
>>
>> Is correctly interpreted by parametered_module as an int. But when I do
>> this:
>>
>> - name: thingy with vars
>> parametered_module.py:
>> thingy:
>> stringy_var: "{{ item['stringy'] }}"
>> inty_var: "{{ item['inty'] }}"
>> floaty_var: "{{ item['floaty'] }}"
>> with_items:
>> - {'stringy': 'asdf', 'inty': 3, 'floaty': 123.21}
>>
>> It sees thingy['inty_var'] as '3' and the module assumes it's a string.
>> Is there a way to force inty_var to an int within ansible?
>> I also tried: inty_var: "{{ item['inty'] | int }}" but that is still a
>> string by the time it gets to parametered_module
>>
>> Thanks for your help!
>>
>>
>>
>> On Sunday, August 24, 2014 7:32:44 AM UTC-7, Michael DeHaan wrote:
>>
>>> Quick note - modules shouldn't end in ".py", either when saved or called.
>>>
>>> But what you have is fine, you can also do.
>>>
>>> - name: thingy with vars
>>> parametered_module.py:
>>> thingy:
>>> stringy_var: "{{ item.stringy }}"
>>> inty_var: "{{ item.inty }}"
>>> floaty_var: "{{ item.floaty }}"
>>> with_items:
>>> - {'stringy': 'asdf', 'inty': 3, 'floaty': 123.21}
>>>
>>> You may also wish to do:
>>>
>>> - name: thingy with vars
>>> parameterized_module:
>>> thingy: "{{ item }}"
>>> with_items:
>>> - ...
>>>
>>> And just name your hash variables stringy_var vs stringy, etc.
>>>
>>> You can also pass variables into with_items, and define your hash
>>> elsewhere like:
>>>
>>> with_items: my_items
>>>
>>>
>>>
>>>
>>>
>>> On Sun, Aug 24, 2014 at 1:24 AM, Ayelet Goldin <[email protected]>
>>> wrote:
>>>
>>>> I'm trying to figure out how to pass a non-string variable to a module
>>>>
>>>> https://gist.github.com/uncreative/adfe926267d0ee5b3de3
>>>>
>>>> Has anyone figured it out?
>>>>
>>>> turns inty_var and floaty_var within parametered module into strings:
>>>>
>>>> - name: thingy with vars
>>>> parametered_module.py:
>>>> thingy:
>>>> stringy_var: "{{ item['stringy'] }}"
>>>> inty_var: "{{ item['inty'] }}"
>>>> floaty_var: "{{ item['floaty'] }}"
>>>> with_items:
>>>> - {'stringy': 'asdf', 'inty': 3, 'floaty': 123.21}
>>>>
>>>> Thanks for your help!
>>>>
>>>> --
>>>> 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 post to this group, send email to [email protected].
>>>>
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>> msgid/ansible-project/913ead1a-e6e7-4bde-95b4-
>>>> c9279ac7abfa%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/ansible-project/913ead1a-e6e7-4bde-95b4-c9279ac7abfa%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>> 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 post to this group, send email to [email protected]
>> <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ansible-project/48c2a08a-81af-4cf9-acd4-2ad6121fbd97%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/ansible-project/48c2a08a-81af-4cf9-acd4-2ad6121fbd97%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/3b102854-f3f0-454a-8aa5-32aa44004736%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.