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 <[email protected] > <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 <[email protected]> >>> 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 [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/ >>> 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 [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/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 [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/d792de16-0e48-4387-b89e-573e40d64509%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
