--
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/dded9e93-da99-49ad-80ad-167eb21919e5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Thanks, I've locked the topic to save folks from trying to comment on it, as we don't see those comments.
This isn't really possible in any sort of clean way and we've explained why already on several occasions.
TASK: [bitnami_rubystack | Install rubystack] *********************************
<job 409801362883.2948> polling, 990s remaining
<job 409801362883.2948> polling, 980s remaining
<job 409801362883.2948> polling, 970s remaining
<job 409801362883.2948> polling, 960s remaining
<job 409801362883.2948> polling, 950s remaining
<job 409801362883.2948> polling, 940s remaining
<job 409801362883.2948> polling, 930s remaining
<job 409801362883.2948> polling, 920s remaining
Hi everyone,
I've closed this ticket as I think many people understand what is going on here and why we have acted on it.
These reasons have been enumerated previously and include:
1) Ansible contains 235+ modules and the APIs used in basically all of these modules don't have any capacity for reporting status in the middle of an async operation
2) To do this properly for N-node management it implies setting up a server and a crypto layer that eliminates much of the architectural elegance of ansible
3) If you just need to know if a module is still running, async is available -http://docs.ansible.com/playbooks_async.html
4) The CLI has no good way to output standard out changes when running in parallel against several hundred hosts
5) The performance implications of doing this over an additional SSH channel or other mechanism are decidedly non-trivial
It's not that we are denying anyone this out of spite, it's actually not a good fit for the system.
We strongly encourage usage of async to show long running tasks are alive. Consider having custom modules, if any, log their actions, to diagnose problems should they occur.
Ansible does in fact report in when each host comes back in a large set of hosts, so that progress is definitely available.
Thanks for your understanding.
So that comments are easy to read I am also removing the various (and numerous) +1s on this file. I appreciate the feedback, but voting cannot make it so.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscribe@googlegroups.com <mailto:ansible-project+unsub...@googlegroups.com>.
To post to this group, send email to ansible-project@googlegroups.com <mailto:ansible-project@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/050a3903-34ff-4fe9-b832-b53365e28ae5%40googlegroups.com <https://groups.google.com/d/msgid/ansible-project/050a3903-34ff-4fe9-b832-b53365e28ae5%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+unsubscribe@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/540A34B6.2050601%40brainfood.com.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscribe@googlegroups.com <mailto:ansible-project+unsub...@googlegroups.com>.
To post to this group, send email to ansible-project@googlegroups.com <mailto:ansible-project@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/050a3903-34ff-4fe9-b832-b53365e28ae5%40googlegroups.com <https://groups.google.com/d/msgid/ansible-project/050a3903-34ff-4fe9-b832-b53365e28ae5%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+unsubscribe@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/540A34B6.2050601%40brainfood.com.
No, bringing it up periodically can't really help it make it be true any better.
Please read my last comment I made in the ticket.
The most important point is point #1 -- nearly all of the modules involved have absolutely no API or notion of what percentage complete they are, but the other points are equally important.
Of course it is your prerogative, and there are development schedules and all sorts of things to consider, and maybe this clashes with your commercial offering (i.e. from the press release: "Tower's real-time output of Ansible Playbooks includes dynamic progress bars that show you the status of jobs and hosts, along with the overall status of the Playbook run...").
instead of the async task producing:<job 409801362883.2948> polling, 990s remaining
<job 409801362883.2948> polling, 980s remaining
<job 409801362883.2948> polling, 970s remaining
<job 409801362883.2948> polling, 960s remaining
<job 409801362883.2948> polling, 950s remainingThere could be an option so it prints:<job 409801362883.2948> polling, 980s remaining, current: (Reading database ... 84711 files and directories currently installed.)<job 409801362883.2948> polling, 970s remaining, current: Selecting previously unselected package libmono-2.0-dev.<job 409801362883.2948> polling, 960s remaining, current: Selecting previously unselected package libmono-system-xml4.0-cil.<job 409801362883.2948> polling, 950s remaining, current: N: Ignoring file 'opera.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension<job 409801362883.2948> polling, 940s remaining, current: Reading state information... Done
etc. Is this not possible?
Again, sorry for the persistence. This is a feature that I think would make ansible much better...
Of course it is your prerogative, and there are development schedules and all sorts of things to consider, and maybe this clashes with your commercial offering (i.e. from the press release: "Tower's real-time output of Ansible Playbooks includes dynamic progress bars that show you the status of jobs and hosts, along with the overall status of the Playbook run...").Please don't accuse us of holding back from ansible, this has never been the case.
Tower's feature is the playbook output streams in via websockets *just like it does from /usr/bin/ansible-playbook* so you don't have to hit "F5" to reload the page.That's it. CLI equivalence.In some ways it provides some cleaner ways to dive through the final output, because a web interface is superior for some of these kinds of searches, but it is using clean-stock-ansible underneath, without modifications.The progress bar you get is the number of hosts having checked in yet, not the intermediate status of invididual hosts. Which in reply to Adam above, we've indicated we'd be totally happy to see in the CLI output too.Yes, it's formatted differently. Do modules return different information in Tower or does Tower have proprietary modules? Absolutely not.It doesn't have anything to do with intermediate status from modules.
instead of the async task producing:<job 409801362883.2948> polling, 990s remaining
<job 409801362883.2948> polling, 980s remaining
<job 409801362883.2948> polling, 970s remaining
<job 409801362883.2948> polling, 960s remaining
<job 409801362883.2948> polling, 950s remainingThere could be an option so it prints:<job 409801362883.2948> polling, 980s remaining, current: (Reading database ... 84711 files and directories currently installed.)<job 409801362883.2948> polling, 970s remaining, current: Selecting previously unselected package libmono-2.0-dev.<job 409801362883.2948> polling, 960s remaining, current: Selecting previously unselected package libmono-system-xml4.0-cil.<job 409801362883.2948> polling, 950s remaining, current: N: Ignoring file 'opera.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension<job 409801362883.2948> polling, 940s remaining, current: Reading state information... Doneetc. Is this not possible?Doesn't really matter, it's also not what you want. You think it is, but it's not.
Imagine you have 500 hosts. Do you want just the last line at every poll attempt? What if you want the log runs? What if you wanted the last 10 lines? What's the right behavior in every single module to do this? Do you want to interleave output from all 500 hosts?
The last line of output at the moment you poll is a poor solution, and is subject to some relatively bad sampling problems, that will almost always miss the information you want.
...
So what you ask isn't trivial by any means - to present, to retrofit the modules, to retrofit async, etc.The shell module appears to be the easy case, but it exposes it's own manner of complexity.Progress bars are 100% right out.
Right in my original email this was a progress bar at the top level. I was thinking a playbook has something like 50 plays in it, I would like to see a progress bar of 1 through 50 multiplied by the number of hosts...
instead of the async task producing:<job 409801362883.2948> polling, 990s remaining
<job 409801362883.2948> polling, 980s remaining
<job 409801362883.2948> polling, 970s remaining
<job 409801362883.2948> polling, 960s remaining
<job 409801362883.2948> polling, 950s remainingThere could be an option so it prints:<job 409801362883.2948> polling, 980s remaining, current: (Reading database ... 84711 files and directories currently installed.)<job 409801362883.2948> polling, 970s remaining, current: Selecting previously unselected package libmono-2.0-dev.<job 409801362883.2948> polling, 960s remaining, current: Selecting previously unselected package libmono-system-xml4.0-cil.<job 409801362883.2948> polling, 950s remaining, current: N: Ignoring file 'opera.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension<job 409801362883.2948> polling, 940s remaining, current: Reading state information... Doneetc. Is this not possible?Doesn't really matter, it's also not what you want. You think it is, but it's not.No. It really is what I want. I want it so that it prints a single line and then it overwrites that *same* line at the next poll. I would then likely set the poll frequency fairly low so I could see if the process is hung. Eg if you look at e.g. some virus checkers, they print the file they are checking. These files fly by so fast you can't even really read them. But if it ever stops then you know the thing is hung up a bit. That is the principal I am talking about here...
Imagine you have 500 hosts. Do you want just the last line at every poll attempt? What if you want the log runs? What if you wanted the last 10 lines? What's the right behavior in every single module to do this? Do you want to interleave output from all 500 hosts?You could make it a parameter if you are really interested. But a single line which is constantly overwritten would give the user enough feedback...The last line of output at the moment you poll is a poor solution, and is subject to some relatively bad sampling problems, that will almost always miss the information you want.It is not meant to be a log. It is meant to tell you if the process is still going......So what you ask isn't trivial by any means - to present, to retrofit the modules, to retrofit async, etc.The shell module appears to be the easy case, but it exposes it's own manner of complexity.Progress bars are 100% right out.Well... that is unfortunate, it is a feature many people clearly want... Ohh well... Thanks for answering the emails.