2. 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
3. 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
4. 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.).
5. 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
6. 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.
7. 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
8. 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
12. 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
13. 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