Book Image

Learning SaltStack - Second Edition

By : Colton Myers
Book Image

Learning SaltStack - Second Edition

By: Colton Myers

Overview of this book

SaltStack is one of the best infrastructure management platforms available. It provides powerful tools for defining and enforcing the state of your infrastructure in a clear, concise way. With this book learn how to use these tools for your own infrastructure by understanding the core pieces of Salt. In this book we will take you from the initial installation of Salt, through running their first commands, and then talk about extending Salt for individual use cases. From there you will explore the state system inside of Salt, learning to define the desired state of our infrastructure in such a way that Salt can enforce that state with a single command. Finally, you will learn about some of the additional tools that salt provides, including salt-cloud, the reactor, and the event system. We?ll finish by exploring how to get involved with salt and what'?s new in the salt community. Finally, by the end of the book, you'll be able to build a reliable, scalable, secure, high-performance infrastructure and fully utilize the power of cloud computing.
Table of Contents (17 chapters)
Learning SaltStack Second Edition
About the Author
About the Reviewer

Dependencies using requisites

These states will run in the order they are defined in the file by default. However, we can also affect the ordering using requisites. Requisites allow us to create dependencies and interactions between our states.

The require requisite

The most basic requisite is require, which allows you to specify that one state requires another state to be run successfully first. Make sure that you note both purposes—the require requisite both ensures correct ordering and ensures that the requiring states run only if the required state ran successfully.

In this case, we want to make sure that apache is installed before we try to run it. So, we will add a require requisite declaration under our service.running state, as shown here:

    - name: apache2

make sure apache is running:
    - name: apache2
    - enable: True
    - require:
      - pkg: install_apache

Note that we must specify both the state module pkg and the state...