Fork me on GitHub
#spire2020-06-06
>
Crispin03:06:49

Yeah so spire uses bash. A little differently to ansible (spire keeps a persistent connection up and then opens channels on that). In the beginning I did some trials with a similar approach to ansible but ruled it out and settled on the present approach. Using ansible's approach means that the servers need a JVM installed, or they need a spire or babashka installed (I trialed transfering over the spire client to act as a runtime on the remote host). There are a few problems with this approach. One is forcing the transfer or download of the client onto the remote host. This can cost time, bandwidth and disk space. Sometimes you don't have these. So spire attempts to be as lightweight as possible, transferring nothing heavy and not requiring anything extra to be installed. Not even python. Another reason was that the graalvm produced binaries require a modern 64 bit architecture to run, and the precompiled graal compiler is only available for a subset of these. So an early spire beta tester was using spire to provision a rasberry pi (32 bit ARM architecture) and another was using it to target FreeBSD (no pre-compiled graal compiler). Additional complexity arises in managing the remote runtimes for all the possible architectures and flavours. Babashka is fine for your modern workstation or laptop but it is not available for older systems.

Crispin03:06:39

But, there is nothing to stop you using babashka on the remote yourself if you are able to accept the tradeoffs. You can install babashka on the remote, copy scripts over and run them. You can also wrap these into your own modules and make a little library for using this method.

Crispin09:06:03

Spire 0.1.0-alpha.13 released https://github.com/epiccastle/spire/releases/tag/v0.1.0-alpha.13 ### Fixed - fixed missing spire.selmer namespace mount - #64 - fixed broken stdout during evaluation - #67 - fixed a number of problems with upload - #69 #70 #74 - fixed a problem with java.time.Instant - #71 - fixed slow local process uploads - #73 - fixed unhygenic context macros - #75 - fixed shell module snaffling command exit code when using :creates - #76 ### Added - added a big list of java classes - #63 - added cheshire json library - #68