Today I've added many things that help get push mode closer to reality, with the expectation that it will actually be a thing sometime next week.
There's now a hidden option "--event-stream" to the local CLI, where the output is a bunch of JSON documents instead of something human friendly. When we do parallel SSH for push, this will be useful to parse all the output efficiently.
There's also a TOML inventory class , with my rough draft of what this would look like here:
Naturally inventory could come from anything, I believe the most popular dynamic inventory source would be from AWS tags, and that is probably going to be an early addition from someone
You can see how short the TOML implementation is here, to see how easy the AWS one would be:
Basically the system just needs to return some dictionaries in a particular format.
Ansible fans may ask "where are group_vars/ and host_vars/" ... I'm not opposed to seeing those, and they may come later also.
They may also say "where are nested groups!" ... and that's something that we can also add once the basics get working.
If you scroll down to the bottom of this file, you can see how I roughly expect to see tags and groups map together:
(see the commented out "inventory.map").
Also to to the top of the file you can see the same file can be used for both bin/opsmop (local) and bin/opsmop-push.
The next big effort is of course to actually implement the rest of it :)
For those who are wanting things other than SSH-push, I will be making this pluggable and also be adding a pull mode right after I get done with push to a level that I'm happy with it.
There will be a lot of room for playing with push performance and output to get it right, but the first step is to get it working.
So far, this is fairly clean, and I think we can avoid all the trouble with ansible inventory design in the past.