The shell command only does the calculation once and stores the same value in each loop iteration. I want it to run the command by using the last calculated value, which is supposedly not happening for me. Can the jinj2 sum or replace filters be of any help ?
On Friday, August 22, 2014 4:24:21 AM UTC-7, Michael DeHaan wrote: > > There's a bugfix PR for that which I need to test. > > You can of course still do this as a shell command too, right now. > > What problem are you having at the shell? > > > On Fri, Aug 22, 2014 at 2:19 AM, Imran Khan <khan.im...@gmail.com > <javascript:>> wrote: > >> Again this will save the same value 4 times! >> >> - name: local action math >> local_action: shell echo "{{ServerIPRange}}/{{epcrange}}+{{IPOctet}}" >> | bc >> with_sequence: start=1 end=4 >> register: result >> - debug: var=resu >> >> On Thursday, August 21, 2014 10:40:56 PM UTC-7, Henry Finucane wrote: >> >>> As an aside, you can do math in Jinja2- >>> >>> - name: bashless math >>> set_fact: >>> IPOctet: "{{ 4*(ServerIPRange/epcrange)+IPOctet }}" >>> >>> will do something approaching what you want. >>> >>> If you want to get the actual shell-out working, something like this >>> is going to be enlightening: >>> >>> - name: local action math >>> local_action: shell echo "{{ServerIPRange}}/{{epcrange}}+{{IPOctet}}" >>> | bc >>> with_sequence: start=1 end=4 >>> register: result >>> - debug: var=result >>> >>> "debug: var=result" will dump a pretty-printed JSON structure, so >>> you'll know what's available, and what you can use. You should try it >>> with & without the with_sequence. >>> >>> >>> >>> On Thu, Aug 21, 2014 at 9:47 PM, Imran Khan <khan.im...@gmail.com> >>> wrote: >>> > I have 3 variables named IPOctet, ServerIPRange and epcrange. If I >>> perform >>> > the following operation in my terminal, it works perfectly >>> > >>> > IPOctet=$(echo "$ServerIPRange/$epcrange+$IPOctet" | bc) >>> > >>> > How to I do something similar in a ansible inside a task, for e.g >>> > >>> > --- >>> > - hosts: localhost >>> > gather_facts: False >>> > >>> > vars_prompt: >>> > - name: epcrange >>> > prompt: Enter the number of EPCs that you want to configure >>> > private: False >>> > default: "1" >>> > - name: serverrange >>> > prompt: Enter the number of Cleints that you want to configure >>> > private: False >>> > defualt: "1" >>> > - name: ServerIPRange >>> > prompt: Enter the ServerIP range >>> > private: False >>> > default: '128' >>> > - name: LastIPOctet >>> > prompt: Enter The last Octet of the IP you just entered >>> > private: False >>> > default: '10' >>> > >>> > pre_tasks: >>> > >>> > >>> > - name: Set some facts >>> > set_fact: >>> > ServerIP1: "{{ServerIP}}" >>> > ServerIPRange1: "{{ServerIPRange}}" >>> > IPOctet: "{{LastIPOctet}}" >>> > >>> > - name: local action math >>> > local_action: shell {{IPOctet}}=$(echo >>> > "${{ServerIPRange}}/${{epcrange}}+${{IPOctet}}" | bc) # Proper >>> Syntax? >>> > with_sequence: start=1 end=4 >>> > register: result >>> > ignore_errors: yes >>> > >>> > What is the proper syntax for this command? Maybe using shell echo >>> "......." >>> > . I just need to save the contents of this command into the IPOctet >>> variable >>> > and IPOctet will change with each loop iteration and the results >>> should be >>> > stored in my result register >>> > >>> > P.S: how can I access the individual items in the array sepearately? >>> > >>> > -- >>> > 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-proje...@googlegroups.com. >>> > To post to this group, send email to ansible...@googlegroups.com. >>> > To view this discussion on the web visit >>> > https://groups.google.com/d/msgid/ansible-project/ >>> 0b34e611-ab2c-45b6-88a9-2caf26ed5504%40googlegroups.com. >>> > For more options, visit https://groups.google.com/d/optout. >>> >>> >>> >>> -- >>> ----------------------- >>> | Henry Finucane >>> | "I hear aphorisms are popular" >>> ----------------------- >>> >> -- >> 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-proje...@googlegroups.com <javascript:>. >> To post to this group, send email to ansible...@googlegroups.com >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/66c32a8d-aa26-49bb-971e-3c435d2d5455%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ansible-project/66c32a8d-aa26-49bb-971e-3c435d2d5455%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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/d792de16-0e48-4387-b89e-573e40d64509%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.