# Configuration Management

Salt contains a robust and flexible configuration management framework, which is built on the remote execution core. This framework executes on the minions, allowing effortless, simultaneous configuration of tens of thousands of hosts, by rendering language specific state files. The following links provide resources to learn more about state and renderers.

States

  Express the state of a host using small, easy to read, easy to understand configuration files. No programming required.

  Full list of states

    Contains: list of install packages, create users, transfer files, start services, and so on.

  Pillar System

    Contains: description of Salt's Pillar system.

  Highstate data structure

    Contains: a dry vocabulary and technical representation of the configuration format that states represent.

  Writing states

    Contains: a guide on how to write Salt state modules, easily extending Salt to directly manage more software.

Note

Salt execution modules are different from state modules and cannot be called as a state in an SLS file. In other words, this will not work:

    moe:
      user.rename:
        - new_name: larry
        - onlyif: id moe

You must use the `module` states to call execution modules directly. Here's an example:

    rename_moe:
      module.run:
        - name: user.rename
        - m_name: moe
        - new_name: larry
        - onlyif: id moe

Renderers

  Renderers use state configuration files written in a variety of languages, templating engines, or files. Salt's configuration management system is, under the hood, language agnostic.

  Full list of renderers

    Contains: a list of renderers. YAML is one choice, but many systems are available, from alternative templating engines to the PyDSL language for rendering sls formulas.

  Renderers

    Contains: more information about renderers. Salt states are only concerned with the ultimate highstate data structure, not how the data structure was created.

- How Do I Use Salt States?
- States tutorial, part 1 - Basic Usage
- States tutorial, part 2 - More Complex States, Requisites
- States tutorial, part 3 - Templating, Includes, Extends
- States tutorial, part 4
- State System Reference