On Tue, Mar 3, 2020 at 3:15 AM M F <[email protected]> wrote:
>
> Hi All,
>
> Im having trouble with setting a fact, doing some math, and having the result 
> be an INT
>
> To start, i set the base Var
>
> set_fact: SOMENUMBER = 8
>
> Ansible stores this value as a String
>
> Later, i need to divide that number by 2 and get the result as an INT
>
> set_fact: myvar = "{{ SOMENUMBER / 2) }}"
>
> Even then though, Ansible stores it as a string.
>
> If I do this, i get an INT, but its a FLOAT 4.0 instead of 4
>
> set_fact: myvar = "{{ ((SOMENUMBER|int) / 2) }}"
>
> I am having to resort to doing the following to get my answer of 4
>
> set_fact: myvar = "{{ ((SOMENUMBER|int) / 2)|replace('.0','') }}"
>
> Is there a better way to take a single integer stored as a string, and 
> perform math and output an INT more simply?

Jinja2 native types introduced in Ansible 2.7 should be what you want:
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-jinja2-native

Martin

-- 
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/CADDq2ENhz5PbhN47px3wVr3ZvTXwwnC6uUwqtFLS5ir5XeHheQ%40mail.gmail.com.

Reply via email to