I just found about this project from this comment, absolutely excited to try this out.
As someone who's never used any of the infrastructure tools, I'm thinking of pyinfra as a way to run shell commands + install dependencies on hosts (declaratively?) on a bunch of hosts via ssh.
Inventory is to sort of take a self-defined inventory on a bunch of hosts?
One final question on usage, would it be possible to sync or reference files from the machine running pyinfra on the remote hosts? Or would that have to be done indirectly via running shell commands to sync?
Both Terraform and Pulumi differ slightly I think provisioning cloud resources - pyinfra can be used alongside to setup instances/etc, I’ve used the pyinfra/Terraform combo with great success.
For ansible/chef, etc the main reasons/benefits boil down to:
- instant feedback esp on errors, get the stdout/stderr of whatever command pyinfra was executing, there’s no agent or abstraction to hide it
- configure in python rather than yaml+jinja2 mess
- integrate with the whole python package ecosystem