... | ... | @@ -499,6 +499,13 @@ without the templatized YAML. Fast, declarative, yet Python. Might be |
|
|
exactly what we need, and certainly better than starting on top of
|
|
|
mitogen only.
|
|
|
|
|
|
The biggest advantage of transiliance is that it builds on top of
|
|
|
mitogen, because we can run Python code remotely, transparently. Zini
|
|
|
was also especially careful about creating a simple API.
|
|
|
|
|
|
The biggest flaw is that it is basically just a prototype with limited
|
|
|
documentation and no stability promises.
|
|
|
|
|
|
### spicerack and cumin
|
|
|
|
|
|
The Wikimedia Foundation (WMF, the organisation running Wikipedia)
|
... | ... | @@ -515,3 +522,24 @@ domain-specific language (DSL) available there. |
|
|
It is also very WMF-specific, and probably would be useless outside of
|
|
|
that context. It does have good examples of how Cumin can be used as a
|
|
|
library for certain operations, however.
|
|
|
|
|
|
### Other Python tools
|
|
|
|
|
|
This [article reviews a bunch of Ansible alternatives in Python](https://blog.rfox.eu/en/Explorations/Trying_Ansible_alternatives_in_python.html),
|
|
|
let's take a look:
|
|
|
|
|
|
* [Bundlewrap](https://bundlewrap.org/): Python-based DSL, push over SSH, needs
|
|
|
password-less sudo over SSH for localhost operation, defers to SSH
|
|
|
multiplexing for performance (!), uses [mako templates](https://www.makotemplates.org/), unclear
|
|
|
how to write new extend with new "items", active
|
|
|
|
|
|
* [Pulumi](https://www.pulumi.com/): lots of YAML, somewhat language agnostic (support for
|
|
|
TypeScript, JavaScript, Python, Golang, C#), lots of YAML, requires
|
|
|
a backend, too complicated, unclear how to write new backends, active
|
|
|
|
|
|
* [Nuka](https://doc.bearstech.com/nuka/): asyncio + SSH, unclear scoping ("how does
|
|
|
`shell.command` know which `host` to talk with?"), minimal
|
|
|
documentation, not active
|
|
|
|
|
|
* [pyinfra](https://github.com/Fizzadar/pyinfra): lots of [facts](https://docs.pyinfra.com/en/1.x/facts.html), [operations](https://docs.pyinfra.com/en/1.x/operations.html), [control flow
|
|
|
can be unclear](https://docs.pyinfra.com/en/1.x/examples/dynamic_execution_deploy.html), [performance close to Fabric](https://docs.pyinfra.com/en/1.x/performance.html), popular, active |