You were looking for advantages of Salt. I am sorry to be playing
devil's advocate, but Salt isn't quite there yet…
also sprach Stephen Wood <
smw...@gmail.com> [2013.10.10.0559 +0200]:
> Saltstack employes zeromq to send out messages. This means that it is very
> scalable since the saltmaster is not opening up thousands of SSH sockets
> with minions.
I don't see this as a problem, unless of course you open a new SSH
connection for each command. But other than that, there is no real
difference at the socket level between thousand minions having
a zeromq connection to the server, or the server having a SSH
connection open to minions.
In fact, I know you are looking for good things about Salt, but here
are two bad things:
1. it uses zeromq and then provides its own crypto transport
layer, which has had security issues in the past. salt-ssh
solves that a little bit, but not in a scalable way;
2. the master does not know which minions are connected at any
given time. A job is published to connected minions and whether
a minion executes it, is a decision made by the minion. There
is no way to find out whether a given job executed on all
minions where it should have been executed.
> Saltstacks using simple ssh keypairs for authentication.
It does not. It implements its own X.509-based PKI. salt-ssh uses
SSH keypairs, but Salt itself does not.
> Unlike both Chef and Puppet -- which requires configurations in a Rubyesque
> syntax -- configurations in Saltstack are yaml and very easy to read. You
> can also use simple yaml parsing programs to check the syntax of your
> configuration file.
The loose, multi-purpose YAML-format also means that syntax errors
cannot be easily found, unless they are YAML-syntax errors. There
are plenty of ways in which spacing can change behaviour, all of
a sudden, and still be perfectly legitimate YAML.
Plus, do you know the rules when to use key-value pairs, and when to
use lists?
Salt provides no syntax checker. There are benefits to
domain-specific languages with strongly enforced syntax rules.
> Saltstack provides top-down execution order in configurations
> […]
> Salt configs on the other hand are imperative and will execute from the top
> down in an SLS file.
It does not. Recipes are executed in random order (depends on the
sorting of Python dicts). You have to specify relationships just
like with Puppet to get a defined order.
> Saltstack will not try and sell you hosting
Promise? ;)
also sprach Joe Healy <
joeh...@gmail.com> [2013.10.10.0610 +0200]:
> I do think a key point is that the minion connects to the master
> then waits for commands. No need to have sockets open on the
> minion.
Except now you have a port open on the master, which is a big
security risk.
But yes, Salt definitely beats Puppet and Chef by many many lengths.
I only hope that all those petty problems get resolved at some
point.
See also:
http://madduck.net/blog/2013.02.01:a-botnet-for-configuration-management/
--
martin |
http://madduck.net/ |
http://two.sentenc.es/
"i started taking an online a.d.d. test, linked from
someone's blog. i never finished it; i got distracted, and clicked
on random other shiny things"
-- andres salomon
spamtraps:
madduc...@madduck.net