SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Configuration Management with SaltStack
Act II
Arnold Bechtoldt
Berlin, 14.05.14
2
1.  Configuration Management Systems
2.  SaltStack Fundamentals
3.  SaltStack Inside
4.  Conclusions
5.  Showcase/ Walkthrough
Topics
3
‣  Linux-Systems Engineer at inovex GmbH
‣  Develop lots of features for (Open Source) Datacenter Management
‣  Provisioning of physical & virtual infrastructure
‣  SaltStack user since December, 2012 (~ v0.10.x)
About me
arnold.bechtoldt@inovex.de
4
‣  Provides a wide set of IT services:
§  Application Development
§  Mobile Development
§  Business Intelligence
§  IT Engineering & Operations
§  Consulting
§  Trainings
‣  Cool projects with great Open Source Software
‣  Teams of high-experienced engineers
‣  We have excellent job offers in Karlsruhe, Cologne, Munich and Pforzheim!
About inovex
inovex.de
5
Configuration Management Systems
(a.k.a. CMS)
Configuration Management with SaltStack
Part 1
6
‣  Support building a defined infrastructure
‣  Support managing a defined infrastructure
‣  Definition of infrastructure in code (“Infrastructure as code”)
‣  Configuration Management requires Software Development
Configuration Management Systems
Definition
7
1.  Create a user (if needed): postfix
2.  Install a package (or more): postfix, postfix-pcre
3.  Create or change a file (configure a service): /etc/postfix/main.cf
4.  Enable and start the service: chkconfig postfix on; service postfix start
Configuration Management Systems
Traditional
8
1.  User Management
2.  Package Management
3.  File Management
4.  Service Management
What if we need m o r e ?
Configuration Management Systems
Limitations
9
SaltStack Fundamentals
Configuration Management with SaltStack
Part 2
10
Salt …
1.  … is extremely flexible.
2.  … is very easy to use.
3.  … has lots of exciting features.
4.  … is fast.
5.  … makes sysadmin’s life easier.
SaltStack Fundamentals
Why Salt?
11
‣  It’s all about (simple) data
‣  Central place for configuration
‣  Asynchronous (send commands to 10,000 server at a time in seconds)
‣  Configuration management
‣  Remote execution
‣  Core functions are available as execution modules
‣  Hundreds of state + execution modules
‣  Easy to extend
‣  Separate data and code easily with pillars
SaltStack Fundamentals
Why Salt? (2)
12
SaltStack Inside
Configuration Management with SaltStack
Part 3
13
Different software, different names:
‣  Minion: The client itself
‣  Master: Manages minions
‣  Grains: Standard set of client system information
‣  Pillars: User-defined set of information
‣  State: User-defined description of a state of a file, package, …
‣  Formulas: Collection of user-defined states
‣  State Module: Set of state functions for files, packages, LVM, MySQL, …
‣  Execution Module: Predefined commands executed on the minions
‣  Jinja: Default template renderer
SaltStack Inside
Terminology
14
SaltStack Inside
Default Architecture
Master
Minion
ZeroMQ
MinionMinion Minion Minion
15
You specify minion targeting to apply states, pillars or commands to a desired set of
minions:
‣  Globbing: feweb*.domain.local, *.domain.local, feweb[1-3].domain.local
‣  PCRE: fe(web|mail)1.domain.local
‣  Grains: ‘os:CentOS’, ‘saltversion:2014.1.1’
‣  Pillars: ‘role:mailserver’, ‘cluster_name:fehomepage’
‣  Lists: feweb1.domain…, feweb2.domain…, feweb3.domain…
‣  Nodegroups: Predefined list of minions
‣  Compound (Mix): Mix of the above targeting types (operators: and, or, not)
‣  Batch Size: 4, 10% (execute on X minions at a time)
SaltStack Inside
Minion Targeting
16
Components using a top file:
‣  States
‣  Pillars
What they do:
‣  Map minions with states
‣  Map minions with pillars
‣  Map minions with environments
SaltStack Inside
The Top Files
17
Top of States
dev:
'mailserver*dev*':
- postfix.satellite
qa:
'mailserver*qa*':
- postfix.satellite
prod:
'mailserver*prod*':
- postfix.satellite
- monitoring
SaltStack Inside
The Top Files (2)
Top of Pillars
dev:
'mailserver*dev*':
- postfix.dev
qa:
'mailserver*qa*':
- postfix.qa
prod:
'mailserver*prod*':
- postfix.prod
- monitoring.prod
18
SaltStack Inside
States
postfix:
pkg:
- installed
- names:
- postfix
- postfix-pcre
service:
- running
- watch:
- file: /etc/postfix/main.cf
Dict/ Hash: State ID
List/ Array: State Module
Any: Parameters
19
SaltStack Inside
States (2)
/etc/postfix/main.cf:
file:
- managed
- source: salt://postfix/files/satellite.main.cf
- user: root
- group: postfix
- mode: 640
- template: jinja
postscreen_dnsbl_sites:
- zen.spamhaus.org*2
- ix.dnsbl.manitu.net*2
- dnsbl.sorbs.net=127.0.0.[2;3;5;6;7;9;10]
- list.dnswl.org=127.0.[0..255].0*-1
- list.dnswl.org=127.0.[0..255].[2..3]*-3
any:
generic:
list:
- foo: oof
bar: rab
20
type: satellite
relayhost: smtp.domain.local
inet_protocols:
- ipv4
soft_bounce: True
postscreen:
- greylisting
- pregreet
- dnsbl
mynetworks: 127.0.0.0/8 [::ffff:127...
SaltStack Inside
Pillars
21
Store top files, states (formulas), templates, custom modules, pillars, etc. on
‣  Local filesystems
‣  Git Repositories
‣  SVN Repositories
‣  Mercurial Repositories
‣  MinionFS (distributed over several hosts)
‣  Amazon S3
Separate them by
‣  Environments/ teams
‣  Projects
‣  Pillars
‣  …
SaltStack Inside
Fileserver Backends
22
Access data by:
‣  Pillars: {{ salt[‘pillar.get’](‘inet_protocols’, [‘ipv4’, ‘ipv6’]) }}
‣  Grains: {{ salt[‘grains.get’](‘os_family’) }}
‣  Peer Publish: {{ salt[‘publish.publish’](‘web*’, ‘grains.item’, ‘fqdn’) }}
‣  Mine: {{ salt[‘pillar.item’](‘mine_functions:network.interfaces’) }}
‣  Local env variables: {% set foo = ‘bar’ %} {{ foo }}
‣  Deserializing: load_json(‘file.json’) / load_yaml(‘file.yaml’) / …
‣  …
These are available in:
‣  Top Files
‣  State Files
‣  Template Files
‣  Pillar Files
‣  …
SaltStack Inside
Data Access
23
One tool to rule them all:
‣  $ salt ‘*’ state.sls ferm saltenv=prod
‣  $ salt ‘*’ state.highstate test=False
‣  $ salt ‘*’ gem.install foreman_provision
‣  $ salt ‘*’ hadoop.dfs ls /
‣  $ salt ‘*’ lxc.unfreeze bigfoot
‣  $ salt ‘*’ network.traceroute inovex.de
‣  $ salt ‘*’ pkg.install openssl refresh=True
$ salt ‘*’ service.restart nginx
‣  $ salt ‘*’ dockerio.pull index.docker.io:MyRepo/image foo
‣  $ salt ‘*’ tomcat.deploy_war salt://application.war /api yes http://localhost:8080/
‣  $ salt –C ‘I@role:mailserver and (P@os:Debian or S@192.168.42.0/24)’ …
SaltStack Inside
Configuration Management + Remote Execution
24
feweb1.domain.local:
----------
ID: ferm
Function: pkg.installed
Result: True
Comment: All specified packages are already
installed.
Changes:
----------
ID: ferm
Function: file.managed
Name: /etc/ferm/ferm.conf
Result: True
Comment: File /etc/ferm/ferm.conf updated
Changes:
----------
diff:
SaltStack Inside
Configuration Management + Remote Execution (2)
---
@@ -1,33 +1,31 @@
...
----------
ID: ferm
Function: service.running
Result: True
Comment: Service restarted
Changes:
----------
ferm:
True
Summary
------------
Succeeded: 3
Failed: 0
------------
Total: 3
25
Conclusions
Configuration Management with SaltStack
Part 4
26
1.  Choose the CMS which fits to your project, everyone is different
2.  If you spend more time creating automation instead of saving it, something is wrong
3.  Salt can help you managing large and complex infrastructures
4.  SaltStack can do even more than CM: Salt-Cloud, Salt-Virt, Salt SSH, Salt Proxy, …
5.  Salt can help you making your customers and yourself happy
Conclusions
IMHO
27
Basic configuration:
‣  /bechtoldt/network-formula
‣  /bechtoldt/time-formula
DNS/ DHCP:
‣  /bechtoldt/binddns-formula
‣  /bechtoldt/iscdhcp-formula
Lifecycle Management (physical + virtual servers):
‣  Foreman: /bechtoldt/foreman-formula
Cloud management:
‣  OpenNebula: /bechtoldt/opennebula-formula
‣  OpenStack: /EntropyWorks/salt-openstack/tree/formula
Showcase/ Walkthrough
Code at Github.com
28
Github.com/bechtoldt – Github.com/saltstack-formulas – talks.arbe.io
Thank You
Questions?
Contact
Arnold Bechtoldt
Linux-Systems Engineer
inovex GmbH
Office Karlsruhe
Ludwig-Erhard-Allee 6
D-76131 Karlsruhe
+49 (0)173 31 81 117
arnold.bechtoldt@inovex.de
„Wir nutzen Technologien, um unsere Kunden
glücklich zu machen. Und uns selbst.“

Mais conteúdo relacionado

Mais procurados

Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV FeaturesRaul Leite
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)skalaivanibutp
 
RIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinarRIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinarMen and Mice
 
RHCE FINAL Questions and Answers
RHCE FINAL Questions and AnswersRHCE FINAL Questions and Answers
RHCE FINAL Questions and AnswersRadien software
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMAlexander Shopov
 
Ansible ex407 and EX 294
Ansible ex407 and EX 294Ansible ex407 and EX 294
Ansible ex407 and EX 294IkiArif1
 
Install elasticsearch, logstash and kibana
Install elasticsearch, logstash and kibana Install elasticsearch, logstash and kibana
Install elasticsearch, logstash and kibana Chanaka Lasantha
 
Configure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation WorkshopConfigure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation WorkshopNovell
 
MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016Wagner Bianchi
 
J Ruby On Rails Presentation
J Ruby On Rails PresentationJ Ruby On Rails Presentation
J Ruby On Rails Presentationrailsconf
 
Keeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitKeeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitMen and Mice
 
Présentation "Docker + Kubernetes" @ Pastis.tech #2
Présentation "Docker + Kubernetes" @ Pastis.tech #2Présentation "Docker + Kubernetes" @ Pastis.tech #2
Présentation "Docker + Kubernetes" @ Pastis.tech #2Blue Forest
 
Raw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on LinuxRaw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on LinuxDevin Olson
 
Filesystem Showdown: What a Difference a Decade Makes
Filesystem Showdown: What a Difference a Decade MakesFilesystem Showdown: What a Difference a Decade Makes
Filesystem Showdown: What a Difference a Decade MakesPerforce
 
Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!All Things Open
 
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...The Linux Foundation
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsRaul Leite
 

Mais procurados (20)

Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV Features
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)
 
RIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinarRIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinar
 
Ex200
Ex200Ex200
Ex200
 
RHCE FINAL Questions and Answers
RHCE FINAL Questions and AnswersRHCE FINAL Questions and Answers
RHCE FINAL Questions and Answers
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPM
 
Ansible ex407 and EX 294
Ansible ex407 and EX 294Ansible ex407 and EX 294
Ansible ex407 and EX 294
 
Install elasticsearch, logstash and kibana
Install elasticsearch, logstash and kibana Install elasticsearch, logstash and kibana
Install elasticsearch, logstash and kibana
 
Configure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation WorkshopConfigure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation Workshop
 
Nginx2
Nginx2Nginx2
Nginx2
 
MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016
 
J Ruby On Rails Presentation
J Ruby On Rails PresentationJ Ruby On Rails Presentation
J Ruby On Rails Presentation
 
Keeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitKeeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runit
 
OTRS
OTRSOTRS
OTRS
 
Présentation "Docker + Kubernetes" @ Pastis.tech #2
Présentation "Docker + Kubernetes" @ Pastis.tech #2Présentation "Docker + Kubernetes" @ Pastis.tech #2
Présentation "Docker + Kubernetes" @ Pastis.tech #2
 
Raw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on LinuxRaw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on Linux
 
Filesystem Showdown: What a Difference a Decade Makes
Filesystem Showdown: What a Difference a Decade MakesFilesystem Showdown: What a Difference a Decade Makes
Filesystem Showdown: What a Difference a Decade Makes
 
Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!
 
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOps
 

Destaque

Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalteninovex GmbH
 
Software-defined networking
Software-defined networkingSoftware-defined networking
Software-defined networkinginovex GmbH
 
A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...inovex GmbH
 
A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...inovex GmbH
 
Deep Dive into dockerized Microservices
Deep Dive into dockerized MicroservicesDeep Dive into dockerized Microservices
Deep Dive into dockerized Microservicesinovex GmbH
 
SaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution ToolSaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution Toolinovex GmbH
 
Top ten security considerations when setting up your open nebula cloud
Top ten security considerations when setting up your open nebula cloudTop ten security considerations when setting up your open nebula cloud
Top ten security considerations when setting up your open nebula cloudinovex GmbH
 
Kanban Paper Airplanes
Kanban Paper AirplanesKanban Paper Airplanes
Kanban Paper Airplanesinovex GmbH
 
Definition of almost done
Definition of almost doneDefinition of almost done
Definition of almost doneinovex GmbH
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppetinovex GmbH
 
Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...
Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...
Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...inovex GmbH
 
repositor.io - Simple Repository Management
repositor.io - Simple Repository Managementrepositor.io - Simple Repository Management
repositor.io - Simple Repository Managementinovex GmbH
 
Agile Data Analytics
Agile Data AnalyticsAgile Data Analytics
Agile Data Analyticsinovex GmbH
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersinovex GmbH
 
Sling sitebuilder and Sling CMS
Sling sitebuilder and Sling CMSSling sitebuilder and Sling CMS
Sling sitebuilder and Sling CMSinovex GmbH
 
Application configuration in containers
Application configuration in containersApplication configuration in containers
Application configuration in containersinovex GmbH
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentinovex GmbH
 
Integration in der Cloud mit Camel, Karaf und Cellar
Integration in der Cloud mit Camel, Karaf und CellarIntegration in der Cloud mit Camel, Karaf und Cellar
Integration in der Cloud mit Camel, Karaf und Cellarinovex GmbH
 
Puppet: Designing modules & repositories
Puppet: Designing modules & repositoriesPuppet: Designing modules & repositories
Puppet: Designing modules & repositoriesinovex GmbH
 

Destaque (20)

Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
 
Software-defined networking
Software-defined networkingSoftware-defined networking
Software-defined networking
 
Big Data Basics
Big Data BasicsBig Data Basics
Big Data Basics
 
A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...
 
A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...A system architect guide - ten ways to ruin your cloud experience ...and how ...
A system architect guide - ten ways to ruin your cloud experience ...and how ...
 
Deep Dive into dockerized Microservices
Deep Dive into dockerized MicroservicesDeep Dive into dockerized Microservices
Deep Dive into dockerized Microservices
 
SaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution ToolSaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution Tool
 
Top ten security considerations when setting up your open nebula cloud
Top ten security considerations when setting up your open nebula cloudTop ten security considerations when setting up your open nebula cloud
Top ten security considerations when setting up your open nebula cloud
 
Kanban Paper Airplanes
Kanban Paper AirplanesKanban Paper Airplanes
Kanban Paper Airplanes
 
Definition of almost done
Definition of almost doneDefinition of almost done
Definition of almost done
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppet
 
Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...
Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...
Bootstrapping Forman with Vagrant - Setting up a local Provision & Deployment...
 
repositor.io - Simple Repository Management
repositor.io - Simple Repository Managementrepositor.io - Simple Repository Management
repositor.io - Simple Repository Management
 
Agile Data Analytics
Agile Data AnalyticsAgile Data Analytics
Agile Data Analytics
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
 
Sling sitebuilder and Sling CMS
Sling sitebuilder and Sling CMSSling sitebuilder and Sling CMS
Sling sitebuilder and Sling CMS
 
Application configuration in containers
Application configuration in containersApplication configuration in containers
Application configuration in containers
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Integration in der Cloud mit Camel, Karaf und Cellar
Integration in der Cloud mit Camel, Karaf und CellarIntegration in der Cloud mit Camel, Karaf und Cellar
Integration in der Cloud mit Camel, Karaf und Cellar
 
Puppet: Designing modules & repositories
Puppet: Designing modules & repositoriesPuppet: Designing modules & repositories
Puppet: Designing modules & repositories
 

Semelhante a Configuration Management with Saltstack

Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Cosimo Streppone
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudJung-Hong Kim
 
Oracle11g On Fedora14
Oracle11g On Fedora14Oracle11g On Fedora14
Oracle11g On Fedora14kmsa
 
OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...
OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...
OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...NETWAYS
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKYoungHeon (Roy) Kim
 
Sharing-Knowledge-OAM-3G-Ericsson .ppt
Sharing-Knowledge-OAM-3G-Ericsson   .pptSharing-Knowledge-OAM-3G-Ericsson   .ppt
Sharing-Knowledge-OAM-3G-Ericsson .pptwafawafa52
 
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetDevOpsDaysJKT
 
JUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinderJUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrindermarekgoldmann
 
AIX Advanced Administration Knowledge Share
AIX Advanced Administration Knowledge ShareAIX Advanced Administration Knowledge Share
AIX Advanced Administration Knowledge Share.Gastón. .Bx.
 
Android 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation reportAndroid 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation reporthidenorly
 
Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3David Pasek
 
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your IcingaOSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your IcingaNETWAYS
 
Continuous delivery with docker
Continuous delivery with dockerContinuous delivery with docker
Continuous delivery with dockerJohan Janssen
 

Semelhante a Configuration Management with Saltstack (20)

Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Rac on NFS
Rac on NFSRac on NFS
Rac on NFS
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
 
Oracle11g On Fedora14
Oracle11g On Fedora14Oracle11g On Fedora14
Oracle11g On Fedora14
 
Oracle11g on fedora14
Oracle11g on fedora14Oracle11g on fedora14
Oracle11g on fedora14
 
OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...
OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...
OSMC 2019 | Use Cloud services & features in your redundant Icinga2 Environme...
 
Basic Linux kernel
Basic Linux kernelBasic Linux kernel
Basic Linux kernel
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELK
 
Sharing-Knowledge-OAM-3G-Ericsson .ppt
Sharing-Knowledge-OAM-3G-Ericsson   .pptSharing-Knowledge-OAM-3G-Ericsson   .ppt
Sharing-Knowledge-OAM-3G-Ericsson .ppt
 
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
 
JUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinderJUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinder
 
AIX Advanced Administration Knowledge Share
AIX Advanced Administration Knowledge ShareAIX Advanced Administration Knowledge Share
AIX Advanced Administration Knowledge Share
 
Android 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation reportAndroid 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation report
 
Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3
 
Freeradius edir
Freeradius edirFreeradius edir
Freeradius edir
 
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your IcingaOSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
 
Continuous delivery with docker
Continuous delivery with dockerContinuous delivery with docker
Continuous delivery with docker
 
App container rkt
App container rktApp container rkt
App container rkt
 

Mais de inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mais de inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Último

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 

Último (20)

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 

Configuration Management with Saltstack

  • 1. Configuration Management with SaltStack Act II Arnold Bechtoldt Berlin, 14.05.14
  • 2. 2 1.  Configuration Management Systems 2.  SaltStack Fundamentals 3.  SaltStack Inside 4.  Conclusions 5.  Showcase/ Walkthrough Topics
  • 3. 3 ‣  Linux-Systems Engineer at inovex GmbH ‣  Develop lots of features for (Open Source) Datacenter Management ‣  Provisioning of physical & virtual infrastructure ‣  SaltStack user since December, 2012 (~ v0.10.x) About me arnold.bechtoldt@inovex.de
  • 4. 4 ‣  Provides a wide set of IT services: §  Application Development §  Mobile Development §  Business Intelligence §  IT Engineering & Operations §  Consulting §  Trainings ‣  Cool projects with great Open Source Software ‣  Teams of high-experienced engineers ‣  We have excellent job offers in Karlsruhe, Cologne, Munich and Pforzheim! About inovex inovex.de
  • 5. 5 Configuration Management Systems (a.k.a. CMS) Configuration Management with SaltStack Part 1
  • 6. 6 ‣  Support building a defined infrastructure ‣  Support managing a defined infrastructure ‣  Definition of infrastructure in code (“Infrastructure as code”) ‣  Configuration Management requires Software Development Configuration Management Systems Definition
  • 7. 7 1.  Create a user (if needed): postfix 2.  Install a package (or more): postfix, postfix-pcre 3.  Create or change a file (configure a service): /etc/postfix/main.cf 4.  Enable and start the service: chkconfig postfix on; service postfix start Configuration Management Systems Traditional
  • 8. 8 1.  User Management 2.  Package Management 3.  File Management 4.  Service Management What if we need m o r e ? Configuration Management Systems Limitations
  • 10. 10 Salt … 1.  … is extremely flexible. 2.  … is very easy to use. 3.  … has lots of exciting features. 4.  … is fast. 5.  … makes sysadmin’s life easier. SaltStack Fundamentals Why Salt?
  • 11. 11 ‣  It’s all about (simple) data ‣  Central place for configuration ‣  Asynchronous (send commands to 10,000 server at a time in seconds) ‣  Configuration management ‣  Remote execution ‣  Core functions are available as execution modules ‣  Hundreds of state + execution modules ‣  Easy to extend ‣  Separate data and code easily with pillars SaltStack Fundamentals Why Salt? (2)
  • 13. 13 Different software, different names: ‣  Minion: The client itself ‣  Master: Manages minions ‣  Grains: Standard set of client system information ‣  Pillars: User-defined set of information ‣  State: User-defined description of a state of a file, package, … ‣  Formulas: Collection of user-defined states ‣  State Module: Set of state functions for files, packages, LVM, MySQL, … ‣  Execution Module: Predefined commands executed on the minions ‣  Jinja: Default template renderer SaltStack Inside Terminology
  • 15. 15 You specify minion targeting to apply states, pillars or commands to a desired set of minions: ‣  Globbing: feweb*.domain.local, *.domain.local, feweb[1-3].domain.local ‣  PCRE: fe(web|mail)1.domain.local ‣  Grains: ‘os:CentOS’, ‘saltversion:2014.1.1’ ‣  Pillars: ‘role:mailserver’, ‘cluster_name:fehomepage’ ‣  Lists: feweb1.domain…, feweb2.domain…, feweb3.domain… ‣  Nodegroups: Predefined list of minions ‣  Compound (Mix): Mix of the above targeting types (operators: and, or, not) ‣  Batch Size: 4, 10% (execute on X minions at a time) SaltStack Inside Minion Targeting
  • 16. 16 Components using a top file: ‣  States ‣  Pillars What they do: ‣  Map minions with states ‣  Map minions with pillars ‣  Map minions with environments SaltStack Inside The Top Files
  • 17. 17 Top of States dev: 'mailserver*dev*': - postfix.satellite qa: 'mailserver*qa*': - postfix.satellite prod: 'mailserver*prod*': - postfix.satellite - monitoring SaltStack Inside The Top Files (2) Top of Pillars dev: 'mailserver*dev*': - postfix.dev qa: 'mailserver*qa*': - postfix.qa prod: 'mailserver*prod*': - postfix.prod - monitoring.prod
  • 18. 18 SaltStack Inside States postfix: pkg: - installed - names: - postfix - postfix-pcre service: - running - watch: - file: /etc/postfix/main.cf Dict/ Hash: State ID List/ Array: State Module Any: Parameters
  • 19. 19 SaltStack Inside States (2) /etc/postfix/main.cf: file: - managed - source: salt://postfix/files/satellite.main.cf - user: root - group: postfix - mode: 640 - template: jinja
  • 20. postscreen_dnsbl_sites: - zen.spamhaus.org*2 - ix.dnsbl.manitu.net*2 - dnsbl.sorbs.net=127.0.0.[2;3;5;6;7;9;10] - list.dnswl.org=127.0.[0..255].0*-1 - list.dnswl.org=127.0.[0..255].[2..3]*-3 any: generic: list: - foo: oof bar: rab 20 type: satellite relayhost: smtp.domain.local inet_protocols: - ipv4 soft_bounce: True postscreen: - greylisting - pregreet - dnsbl mynetworks: 127.0.0.0/8 [::ffff:127... SaltStack Inside Pillars
  • 21. 21 Store top files, states (formulas), templates, custom modules, pillars, etc. on ‣  Local filesystems ‣  Git Repositories ‣  SVN Repositories ‣  Mercurial Repositories ‣  MinionFS (distributed over several hosts) ‣  Amazon S3 Separate them by ‣  Environments/ teams ‣  Projects ‣  Pillars ‣  … SaltStack Inside Fileserver Backends
  • 22. 22 Access data by: ‣  Pillars: {{ salt[‘pillar.get’](‘inet_protocols’, [‘ipv4’, ‘ipv6’]) }} ‣  Grains: {{ salt[‘grains.get’](‘os_family’) }} ‣  Peer Publish: {{ salt[‘publish.publish’](‘web*’, ‘grains.item’, ‘fqdn’) }} ‣  Mine: {{ salt[‘pillar.item’](‘mine_functions:network.interfaces’) }} ‣  Local env variables: {% set foo = ‘bar’ %} {{ foo }} ‣  Deserializing: load_json(‘file.json’) / load_yaml(‘file.yaml’) / … ‣  … These are available in: ‣  Top Files ‣  State Files ‣  Template Files ‣  Pillar Files ‣  … SaltStack Inside Data Access
  • 23. 23 One tool to rule them all: ‣  $ salt ‘*’ state.sls ferm saltenv=prod ‣  $ salt ‘*’ state.highstate test=False ‣  $ salt ‘*’ gem.install foreman_provision ‣  $ salt ‘*’ hadoop.dfs ls / ‣  $ salt ‘*’ lxc.unfreeze bigfoot ‣  $ salt ‘*’ network.traceroute inovex.de ‣  $ salt ‘*’ pkg.install openssl refresh=True $ salt ‘*’ service.restart nginx ‣  $ salt ‘*’ dockerio.pull index.docker.io:MyRepo/image foo ‣  $ salt ‘*’ tomcat.deploy_war salt://application.war /api yes http://localhost:8080/ ‣  $ salt –C ‘I@role:mailserver and (P@os:Debian or S@192.168.42.0/24)’ … SaltStack Inside Configuration Management + Remote Execution
  • 24. 24 feweb1.domain.local: ---------- ID: ferm Function: pkg.installed Result: True Comment: All specified packages are already installed. Changes: ---------- ID: ferm Function: file.managed Name: /etc/ferm/ferm.conf Result: True Comment: File /etc/ferm/ferm.conf updated Changes: ---------- diff: SaltStack Inside Configuration Management + Remote Execution (2) --- @@ -1,33 +1,31 @@ ... ---------- ID: ferm Function: service.running Result: True Comment: Service restarted Changes: ---------- ferm: True Summary ------------ Succeeded: 3 Failed: 0 ------------ Total: 3
  • 26. 26 1.  Choose the CMS which fits to your project, everyone is different 2.  If you spend more time creating automation instead of saving it, something is wrong 3.  Salt can help you managing large and complex infrastructures 4.  SaltStack can do even more than CM: Salt-Cloud, Salt-Virt, Salt SSH, Salt Proxy, … 5.  Salt can help you making your customers and yourself happy Conclusions IMHO
  • 27. 27 Basic configuration: ‣  /bechtoldt/network-formula ‣  /bechtoldt/time-formula DNS/ DHCP: ‣  /bechtoldt/binddns-formula ‣  /bechtoldt/iscdhcp-formula Lifecycle Management (physical + virtual servers): ‣  Foreman: /bechtoldt/foreman-formula Cloud management: ‣  OpenNebula: /bechtoldt/opennebula-formula ‣  OpenStack: /EntropyWorks/salt-openstack/tree/formula Showcase/ Walkthrough Code at Github.com
  • 28. 28 Github.com/bechtoldt – Github.com/saltstack-formulas – talks.arbe.io Thank You Questions? Contact Arnold Bechtoldt Linux-Systems Engineer inovex GmbH Office Karlsruhe Ludwig-Erhard-Allee 6 D-76131 Karlsruhe +49 (0)173 31 81 117 arnold.bechtoldt@inovex.de „Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.“