The Architecture of SaltStack
Master
- Controls Minions
- Supports multiple protocols
- Central point of control
Minion
- Agent running on host
- Executes commands from master
- Able to communicate with neighbors
- Can send events to master
States
- Used for config management
- YAML with Jinja2
- Executes in order, able to provide requirements ordering
Pillar
- Stores changeable data (passwords, ports, etc.)
- Pluggable system, can use external stores (Redis, MySQL, etc.)
- YAML with Jinja2
- Target data based on various node attributes
- Data only gets sent directly to targeted nodes
Grains
- Provides data about host
- Pluggable system, can write your own grains
- Similar to Facter, Omnibus
Reactor
- Asynchronous reactive task runner
- Triggered based on event type
- Useful for provisioning new nodes
- Infinite possibilities
Transports
- ZeroMQ by default
- Salt-SSH available (agentless execution)
- RAET (Reliable Asynchronous Event Transport) - High performance, reliable UDP protocol
Modules
- Huge list of built-in modules
- Can be written in any language
- Wrapped by built-in states
Questions?
deck
By blarghmatey
deck
- 508