As I keep playing with Salt, I’m forming a love/hate relationship with it. Love: It automates and codifies installing and configuring things on machines. Hate: The documentation and unexpected/odd behavior.
Many of the things that I hate are outlined in a blog post found here. I want to add to that.
First, documentation. Its more of a stream of thought, than documentation. For example, I tried adding a git repo as a ‘formula’. I found this webpage, in their documentation. Its supposedly a walk through. There is no complete example, and for many of the pieces, it said “do this” with no explanation of how to “do this”. "Do this” is some very specific configuration you must do, which leads to the documentation for that configuration, which has other configuration requirements. When you start discovering this, it feels like you’re going down a rabbit hole. “Here a walk through to do A. You must configure B”, “Here’s some documentation on B, in some circumstances you need to configure C first”, and so on. If you’re going to present yourself as a walkthrough, please put *all* of the requirements into that walkthrough.
The other problem I have is that the app sometimes does…. Nothing. No errors, warnings. Nothing. Turns out, that its a timeout situation, where the action just took too long. But the app doesn’t tell you that. It should tell me that it got sick of waiting, and how to determine when it finishes. What if I’m running 10 of these commands, and half timeout? I have no way of knowing when they are finished, or if they are successful.
Salt is a cool tool, but dangerous. Its quite easy to get some things going and working. As you start to use it though, it starts to show its lack of polish. The shininess is wearing off for me.