Tutorial Series

Managing Development Environments with SaltStack

SaltStack is a powerful remote execution tool and configuration management system. In this series, we will use Salt to configure reproducible development, staging, and production environments onto which we can deploy an application. This is primarily meant as a learning exercise to demonstrate some common Salt components and strategies that can be used to control your infrastructure.
  • Salt, or SaltStack, is a remote execution tool and configuration management system. Its remote execution capabilities allow administrators to run commands on various machines in parallel with a flexible targeting system. In this guide, we will discuss some of the basic concepts and terminology needed to begin learning Salt.
  • In this article, we'll introduce the various environments we'll be building out and install the Salt master daemon onto our primary server. This is the core system that will house our configuration instructions, control our infrastructure nodes, and manage our requirements.
  • In this guide, we will expand our Salt master's reach by configuring the salt-cloud components. This will allow us to hook into our DigitalOcean account to spin up resources as necessary. We will be creating profiles that define the properties of our individual components and of our environments as a whole.
  • In this article, we will begin to dive into configuration management by creating Salt state files for Nginx. Nginx will be used on our web server nodes in all three environments in order to handle web requests.
  • In this guide, we will configure Salt states for the load balancer that will sit in front of our web servers in our staging and production environments. Our load balancers need to be configured with the web server addresses in order to correctly pass traffic.
  • In this guide, we will change our focus to create states that will install and manage our MySQL database servers in each of our environments. This article will cover the basic installation and setup of MySQL.