On Tue, Mar 3, 2020 at 3:15 AM M F <mikefishe...@gmail.com> 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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CADDq2ENhz5PbhN47px3wVr3ZvTXwwnC6uUwqtFLS5ir5XeHheQ%40mail.gmail.com.

Reply via email to