Introduction To SaltStack
About Me
Linux/Web engineer
Evolved as a DevOps
Author of SaltStack For
DevOps
Founder of DevOpsLinks
My blog : eon01.com/blog
Follow me : @eon01
Configuration Management & Data Center
Automation
Mechanisms to manage the technical description of a system
Source code deployments on multiple environments requires a configuration management and
provisioning tool.
With the adoption of agile development methods, the process of development, test and
deployment of a software component has accelerated and therefore the methods of
management have become faster, more automated and more adapted to changes
Automation is important to the success of critical IT processes that are part of the life cycle of a
product, including provision, change management, release management, patch management,
compliance and security.
DevOps
SaltStack
SaltStack fundamentally improves the way system administrators, integrators and DevOps use
to configure and manage all aspects of a modern data center infrastructure.
It is built on a platform running relatively fast while allowing remote control of distributed
infrastructures, code and data.
The infrastructure to manage can be virtual machines, cloud (Amazon EC2 instances,
Rackspace ..etc) or physical machines as well hosted applications and platforms that rely on
configuration files.
You can use Salt installed on an operating system to manage other systems (A Linux to manage
a Solaris or a BSD to manage a Windows ... etc.).
A Brief Summary
One or more salt-master, salt-minion and salt-syndic
A key management system salt-key that allows the authentication of a salt-minion on a
salt-master
A system of states to describe the configurations
A top.sls that calls the states
A system of grain on the minion to manage the configurations data
A system of pillars to store other data on the master (such as confidential data)
A transport and data management system called ZeroMQ
An event management system called reactors returners, outputters ..etc
Installation
If your server has Internet access, this shell script will be convenient to automate the installation
of the stable version:
wget -O - http://bootstrap.saltstack.org | sudo sh
You can also install the latest version on git (development version):
curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh git develop
Salt is made of master and slave typically masters and minions.
In the jargon used by the editor, a master is salt-master and a minion is a salt-minion. A
syndic called salt-syndic is part of the package and its role consists of connecting masters.
Troubleshooting
Before launching the master and the minion(s), a list of prerequisites should be checked:
All of your salt-master and salt-minon are installed with the with satisfied dependencies
Python version is compatible with the version of Saltstack salt-master and salt-minion should
be running with the root user
Communication and execution ports are well configured and opened
The configuration of any firewall between a master and a minion should be taken into account
(Example : check your iptables).
Troubleshooting salt-master
Troubleshooting salt-minion
Troubleshooting ports
Troubleshooting using salt-call
Basic Concepts
Before using Salt some basic concepts need to be known and understood:
Python & YAML & Jinja
salt-master & salt-minion & salt-syndic & salt-key
Grains & Targeting grains
Saltutil
Outputters
States & Top file
Pillars
Remote execution
Reactors
Basic topology
Using salt-syndic
Authentification
Communication
-
Enabling commands to remote
systems to be called in parallel rather than
serially
-
Communications are encrypted
ZeroMQ is fast and secure
Configuration files allows supporting large and custom infrastructures
Salt uses a small and fast network payload
Thanks
You can buy SaltStack for DevOps on :
https://leanpub.com/saltstackfordevops
Get your free sample here :
http://bitly.com/1AKdhRG
Aymen El Amri
www.eon01.com
@eon01