Configuration Management
GitHub and Saltstack
Christian Prior
## Configuration Management ##
![](/application/logical/images/configuration-management_BH.svg)
Configuration Management Principles and Practice; Anne Mette Hass, Glenn Hass; Addison Wesley 2003
## Cfg Mgt and ITIL ##
- Service Asset and Configuration Management
- In Service Transition interdependency between Knowledge Management and SACM
- think "known error database" which _must_ match against complex attributes
- "Configuration management is the management and traceability of every aspect of a configuration from beginning to end" (Wikipedia)
## ITIL process map ##
| input from | output to |
|------------|------------|
| Change Management | Change Management |
| Release & Deployment Mgt | Change Evaluation |
| Service Validation and Testing | Project Management |
| Knowledge Management | Release & Deployment Mgt |
| | Service Validation and Testing |
| | Knowledge Management |
[it-processmaps.com](http://wiki.en.it-processmaps.com/index.php/Service_Asset_and_Configuration_Management)
->[serview.de process map](https://www.serview.de/fileadmin/redakteur/medien/downloads/poster/poster_process_map_itil.pdf)
Development Boards: Common Features
- Computation: Processor and Memory
- Communication through Ethernet/WiFi/BT/…
- Powersupply: Consumption, buttons
- Interaction via GPIO
- Fixture: Mounting holes and dimensions
- Storage: SD cards and beyond
- Synchronization: RTC time
Typical sensors and actors
- LED
- RGB LED
- Servo Motor
- Buzzer
- Stepper Motor
- LCD Display
- ...
- Button
- Line Sensor
- Light Sensor
- Distance Sensor
- Motion Sensor/Gyro
- Temperature Probe
- ...
Typical Usecase Revision Control
Source Code repository with branches and merges
Popular Cfg Mgt Software
Typical Scope of Solutions
[Remote Execution]
Software Installation
Targeting
[Cfg Mgt]
Defined State
Idempotence
File Management
Confidential Data
[Event-Driven Infrastructure]
Presence of Remote Systems
React to Monitored State Changes
[Documentation]
Auditing
Name Clash
Config Management is _not_ necessarily based on the Develoment Repository.
##SaltStack Ecosystem
![](/application/physical/images/saltstack-ecosystem.svg)
##SaltStack fileserver
```YAML
fileserver_backend: #first filename match wins
- roots
- git
gitfs_remotes:
- git://github.com/example/first.git
- https://github.com/example/second.git
- root: salt #subdirectory
- mountpoint: salt://sub/dir
- base: myTag05 #git branch
- file:///root/third #local
env_order: ['pilot', 'production', 'testlab', 'exhibition']
```
- these are powerful configuration mechanisms: "infrastructure as code" served from a Git repo
- many ways to segment or override
## The Demo Setup ##
![](/application/physical/images/oscfgmgt_demo-setup.svg)