1
Deployment/Configuration Management in cluster
2
===================================
5
- At least nodes should be easy to setup, best just ssh
6
- Easy installation of zypper/yum/apt repositories and packages
7
- Running scripts to edit configuration files
8
- Some kind of operation ordering
9
- On push approach, detect that is already performed to avoid redoing.
10
What we don't really need:
11
- Auto-setup nodes as they start up (scalling-up cloud)
15
- Ansible: Simple push model running over ssh.
16
- Salt: A bit more advanced then ansible, but worse documented and not based on SSH. There is bootstrap
17
for most popular distributives.
18
- Puppet: Master-slave model driven using DSL. Should detect distro and use appropriate package manager.
19
Rather complex initial installation, but seems there are vagrant helper.
20
Puppet discovers the system information via a utility called Facter, and compiles the Puppet manifests
21
into a system-specific catalog containing resources and resource dependency, which are applied against
23
- Chef: Master-slave model. You write install script in Ruby using helper functions provided by Chef.
24
The Chef client sends various attributes about the node to the Chef server. The server uses Solr to index
25
these attributes and provides an API for clients to query this information. Chef recipes can query these
26
attributes and use the resulting data to help configure the node. No push functionality.
27
Recipes programmed in Ruby. Automatically deploys agents over SSH.
31
It seems the ansible is easiest to use. The puppet allows most abstraction just telling that you want a
32
web server and based on distribution using the proper package management tool (zypper) it will install
33
required packages. On other hand, the initial configuration is rather complex. The chef cookbooks are
34
written in standard ruby and there existing cookbooks to manage zypper, etc.
36
To mee seems the ansible is best solution unless we have a really large cluster. Scallability seems bad.
37
Alternatively, manual adjustments with ansible and automatic configuration with Salt (previously installed