Conversation
… verbatim to Runner
| with open(inventory_spec) as f: | ||
| inventory_data = f.read() | ||
| return inventory_data | ||
| return inventory_spec |
There was a problem hiding this comment.
Why are you returning the string if the path does not exist? I believe that could generate errors because later the code expects to receive the content of the inventory file, like for example in
ansible-rulebook/ansible_rulebook/util.py
Line 91 in aa7dcef
There was a problem hiding this comment.
Yeah this PR is mostly just a discussion point... I'm not sure why we need to parse inventory like this rather than just passing things along in a more idiomatic way to Runner underneath.
This particular PR at least allow ad-hoc inventory to be passed in. There's a ton of logic in Runner and Ansible itself to manage inventory that I don't think ansible-rulebook needs to do much if anything to it.
There was a problem hiding this comment.
@matburt Based on the inventory notes for the runner should we also allow for an env_var ANSIBLE_INVENTORY to satisfy the --inventory requirement in ansible-rulebook if the rulebook has run_playbook action? That could be the default value for --inventory. It might also help if we can check the value of --inventory to see if its a file/directory/string and then do the needful based on if its
- file that exists get copied to the Ansible-runner inventory project directory
- directory that exists gets copied along with sub directories to the Ansible-runner inventory
- string data gets copied to inventory/hosts file like it does today
There was a problem hiding this comment.
I'll be honest... I still don't know why we need to introspect the inventory at all here. Just assume that it's being given in a format that makes sense to Ansible and if not then let ansible generate the right error for it.
This is based on PR ansible#523
We don't load the inventory data in ansible-rulebook its passed into the ansible-runner as is. Based on work done in PR #523 #344 https://issues.redhat.com/browse/AAP-7661 Co-authored-by: Alex <aizquier@redhat.com>
… verbatim to Runner
This isn't an exact solution to #344 but it allows ad-hoc hosts and maybe gets it a little closer. I wonder if it would be better to just let Runner do its own thing?