| related | |||||
|---|---|---|---|---|---|
|
| Framework | DSL | Push/Pull | CM | CM Encryption | Drift Management | Job Scheduling | Orchestration |
|---|---|---|---|---|---|---|---|
| Ansible | Propietary | Push | Built-in | Built-in | ? | Ansible Tower | Ansible Tower |
| cfengine | Propietary | Push/Pull | ? | ? | ? | Enterprise Only | ? |
| Puppet | Ruby | Push/Pull | Hiera | Hiera Eyaml | Foreman, PuppetDB, Polscan | Puppet Enterprise | Puppet Enterprise, mcollective |
| Chef | Ruby | Push/Pull | Builtin | Builtin | - | Pushy, (knife plugin + ZeroMQ) | % |
| Saltstack | Python | Push | Builtin | Builtin | ? | salt-run | Saltstack Enterprise |
- Bcfg2: Alternative to puppet and cfengine by Argonne National Laboratory. (IMO out-dated)
- cdist: configuration with shell scripting
- EMC UIM
- Unified Infrastructure Manager, VCE VBlock (enterprise, commercial)
- slaughter (Perl, active, small user base)
- Sprinkle (Ruby, quite recent)
- Rundeck - Workflow manager for node - role systems like EC2, chef, puppet ...
- IBM Tivoli
Finally it is worth to check the Wikipedia Comparison Chart for other less known and new tools!
- ScriptRock Guard
- for Puppet
- PuppetDB
- Foreman
- ServerSpec: RSpec for server configurations
-
Augeas: Very flexible file editor to be used with Puppet or standalone. Could also work with cfengine.
$ augtool augtool> set /files/etc/ssh/sshd_config/PermitRootLogin no augtool> save -
cfengine - Force running shortly after a recent execution
cfagent -K -
cfengine - Design Center: Git repository with sketches and examples for cfengine.
-
cfengine - Find and install sketches from the Design Center repository
# cf-sketch --search utilities Monitoring::nagios_plugin_agent /tmp/design-center/sketches/utilities/nagios_plugin_agent [...] # cf-sketch --install Monitoring::nagios_plugin_agent -
SaltStack - Run commands
salt '*' cmd.run 'apt-get install bash' -
SaltStack - Batch concurrency
salt '*' state.highstate -b <count> -
echo "SELECT * FROM etc_hosts;" | osqueryi $ osqueryi osquery> SELECT ...> u.username, ...> g.groupname ...> FROM users as u ...> JOIN groups as g ON u.gid = g.gid;