/docs/MyDocs

To get this branch, use:
bzr branch http://darksoft.org/webbzr/docs/MyDocs

« back to all changes in this revision

Viewing changes to Administration/Server/Provisioning/tools.txt

  • Committer: Suren A. Chilingaryan
  • Date: 2017-04-03 02:45:17 UTC
  • Revision ID: csa@suren.me-20170403024517-dwzj0z0k1cmhxm7u
Restructuring, OpenShift, Ansible, Git

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Deployment/Configuration Management in cluster
 
2
===================================
 
3
 Requirements
 
4
 ------------
 
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)
 
12
 
 
13
 Major tools
 
14
 -----------
 
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 
 
22
 the target systems. 
 
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.
 
28
 
 
29
 Summary
 
30
 -------
 
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. 
 
35
 
 
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
 
38
 with ansible)