salt–ascalablesystems … · salt–introduction...

47
Salt – A Scalable Systems Management Solution for Datacenters Open Source Data Center Conference April 26-28, 2016 Sebastian Meyer Linux Consultant & Trainer B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Upload: dinhdat

Post on 28-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Salt – A Scalable SystemsManagement Solution for DatacentersOpen Source Data Center Conference April 26-28, 2016

Sebastian MeyerLinux Consultant & Trainer

B1 Systems [email protected]

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Page 2: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Introducing B1 Systems

founded in 2004operating both nationally and internationallynearly 100 employeesprovider for IBM, SUSE, Oracle & HPvendor-independent (hardware and software)focus:

consultingsupportdevelopmenttrainingoperationssolutions

B1 Systems GmbH Salt – Scalable Systems Management 2 / 47

Page 3: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Areas of Expertise

B1 Systems GmbH Salt – Scalable Systems Management 3 / 47

Page 4: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Salt – Introduction

B1 Systems GmbH Salt – Scalable Systems Management 4 / 47

Page 5: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Yet Another Systems Management Solution?

takes inspiration from Puppet, Chef or Ansiblefocuses on the entire system life cycleeasily scalable to a few thousand systemsconvenient and easy to learnconfiguration management and remote execution

B1 Systems GmbH Salt – Scalable Systems Management 5 / 47

Page 6: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Salt – Concept

B1 Systems GmbH Salt – Scalable Systems Management 6 / 47

Page 7: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Master & Minions

B1 Systems GmbH Salt – Scalable Systems Management 7 / 47

Page 8: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Scalability: Masters, Syndics & Minions

B1 Systems GmbH Salt – Scalable Systems Management 8 / 47

Page 9: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

High Availability: Multiple Masters& Minions

B1 Systems GmbH Salt – Scalable Systems Management 9 / 47

Page 10: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Salt Modes

minions pull from mastermaster pushes to Minionsminions apply states locallymaster applies states on minions via SSH

B1 Systems GmbH Salt – Scalable Systems Management 10 / 47

Page 11: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Remote Execution System

B1 Systems GmbH Salt – Scalable Systems Management 11 / 47

Page 12: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Salt Command

B1 Systems GmbH Salt – Scalable Systems Management 12 / 47

Page 13: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Grains

B1 Systems GmbH Salt – Scalable Systems Management 13 / 47

Page 14: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Configuration Management

B1 Systems GmbH Salt – Scalable Systems Management 14 / 47

Page 15: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

States

ID:module.function:

- name: name- argument1: value- argument2:

- value1- value2

B1 Systems GmbH Salt – Scalable Systems Management 15 / 47

Page 16: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Top File

base:’*’:

- monitoring- ssh- syslog

’*lan*’:- ntp.lan

’*dmz*’:- ntp.dmz- firewall

all servers:monitoringssh configsyslog

servers in LAN:ntp config

servers in DMZ:ntp configfirewall

B1 Systems GmbH Salt – Scalable Systems Management 16 / 47

Page 17: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Pillars

B1 Systems GmbH Salt – Scalable Systems Management 17 / 47

Page 18: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Pillar Data

Pillar Examplentp:

{% if grains[’id’].startswith(’myntpserver’) %}ntpservers: ["0.us.pool.ntp.org","1.us.pool.ntp.org"]comment: ’’{% else %}ntpservers: ["10.1.1.20","10.1.1.21"]comment: ’myinternalservers’{% endif %}

Source: https://github.com/saltstack-formulas/ntp-formula/blob/master/pillar.example

B1 Systems GmbH Salt – Scalable Systems Management 18 / 47

Page 19: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Pillars and States

States top.slsbase:

’*’:- monitoring- ssh- syslog- ntp

’*dmz*’:- firewall

Pillar top.slsbase:

’*’:- monitoring- ssh- syslog

’*lan*’:- ntp.lan

’*dmz*’:- ntp.dmz- firewall

B1 Systems GmbH Salt – Scalable Systems Management 19 / 47

Page 20: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Deploying the State

Master pushes to minionssalt ’*’ state.highstatesalt ’*’ state.sls mystate

Minions pull from mastersalt-call state.highstatesalt-call state.sls mystate

B1 Systems GmbH Salt – Scalable Systems Management 20 / 47

Page 21: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Reusing States: Formulas

reusing existing coderoughly the same as Puppet modules/Ansible rolescollection of States and filesgithub.com/saltstack-formulas/ for "official" formulas

B1 Systems GmbH Salt – Scalable Systems Management 21 / 47

Page 22: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Using Formulas

directly from VCS or localextendable via includeconfigurable via Pillar datavariables mapped via Jinja maprequirements across Formulas possible

B1 Systems GmbH Salt – Scalable Systems Management 22 / 47

Page 23: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Demo

B1 Systems GmbH Salt – Scalable Systems Management 23 / 47

Page 24: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Returners

salt ’*’ disk.usage --return redis_return

B1 Systems GmbH Salt – Scalable Systems Management 24 / 47

Page 25: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Salts Event Driven Infrastructure

B1 Systems GmbH Salt – Scalable Systems Management 25 / 47

Page 26: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Overview

actions trigger eventsevents are communicated via the event busreactors execute trigger actions responding to events

B1 Systems GmbH Salt – Scalable Systems Management 26 / 47

Page 27: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Event Bus

B1 Systems GmbH Salt – Scalable Systems Management 27 / 47

Page 28: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Actions & Events

master# salt ’salt-minion-01’ disk.percent /srvsalt-minion-01:

11%

B1 Systems GmbH Salt – Scalable Systems Management 28 / 47

Page 29: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Actions & Events20160422163250339970 {

[...]}salt/job/20160422163250339970/new {

"_stamp": "2016-04-22T14:32:50.340357","arg": [ "/srv" ],"fun": "disk.percent","jid": "20160422163250339970","minions": [ "salt-minion-01" ],"tgt": "salt-minion-01","tgt_type": "glob","user": "root"

}

B1 Systems GmbH Salt – Scalable Systems Management 29 / 47

Page 30: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Actions & Events

salt/job/20160422163250339970/ret/salt-minion-01 {"_stamp": "2016-04-22T14:32:50.536877","cmd": "_return","fun": "disk.percent","fun_args": [ "/srv" ],"id": "salt-minion-01","jid": "20160422163250339970","retcode": 0,"return": "11%","success": true

}

B1 Systems GmbH Salt – Scalable Systems Management 30 / 47

Page 31: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Events in a State

b1/mystate/status/update:event.send:

- data:status: "Installation done!"

B1 Systems GmbH Salt – Scalable Systems Management 31 / 47

Page 32: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Beacons

hook into system on minioncreate eventsinotify, diskusage, load, journald ...

B1 Systems GmbH Salt – Scalable Systems Management 32 / 47

Page 33: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Beacons - Example

inotify Beaconbeacons:

inotify:/etc/motd:

mask:- modify

B1 Systems GmbH Salt – Scalable Systems Management 33 / 47

Page 34: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Reactors

B1 Systems GmbH Salt – Scalable Systems Management 34 / 47

Page 35: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Calling Reactors on Events

Reactor Examplereactor:

- ’salt/minion/*/start’:- /srv/reactor/start.sls

- ’b1/mystate/status/*’:- salt://reactor/status.sls

B1 Systems GmbH Salt – Scalable Systems Management 35 / 47

Page 36: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Demo

B1 Systems GmbH Salt – Scalable Systems Management 36 / 47

Page 37: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Use Cases?

load-balancingjob automationalerting

B1 Systems GmbH Salt – Scalable Systems Management 37 / 47

Page 38: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Salt Cloud

B1 Systems GmbH Salt – Scalable Systems Management 38 / 47

Page 39: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Overview

B1 Systems GmbH Salt – Scalable Systems Management 39 / 47

Page 40: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Providers

Amazon EC2 Provider Examplemy-ec2:

driver: ec2id: ’MYEC2ID’key: ’adsfrf453fMYKEYasdsadg43’private_key: /etc/salt/my_key.pemkeyname: my_keysecuritygroup: defaultminion:

master: saltmaster.example.com

B1 Systems GmbH Salt – Scalable Systems Management 40 / 47

Page 41: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Profiles

profile nameproviderimage or templateoptions for the instanceminion options

B1 Systems GmbH Salt – Scalable Systems Management 41 / 47

Page 42: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Profiles

LXC Profile Examplemyfancyprofile:

provider: lxc-host01lxc_profile:

template: ubuntuoptions:

release: trustypassword: test123

B1 Systems GmbH Salt – Scalable Systems Management 42 / 47

Page 43: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Maps

Mapfileprofile1:

- instance_name_1- instance_name_2

profile2:- instance_name_3:

grains:mykey: myvalue

- instance_name_4

Execute Mapfilesalt-cloud -m /path/to/mapfile

B1 Systems GmbH Salt – Scalable Systems Management 43 / 47

Page 44: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Bootstrapping a New Salt Environment

Mapfileprofile1:

- instance_name_1:make_master: Trueminion:

master: myoldmasterlocal_master: True

- instance_name_2- instance_name_3- instance_name_4

...

B1 Systems GmbH Salt – Scalable Systems Management 44 / 47

Page 45: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Saltify Existing Machines 1/2

Saltify Providersaltify-all-machines:

driver: saltifyminion:

master: mysaltmaster

Saltify Profilesalt-machine:

provider: saltify-all-machinesssh_username: rootkey_filename: ’/etc/salt/pki/master/ssh/salt-ssh.rsa’

B1 Systems GmbH Salt – Scalable Systems Management 45 / 47

Page 46: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Saltify Existing Machines 2/2

Mapfilesalt-machine:

- first-machine:ssh_host: 1.2.3.4

- second-machine:ssh_host: 1.2.3.5

- third-machine:ssh_host: 1.2.3.6

B1 Systems GmbH Salt – Scalable Systems Management 46 / 47

Page 47: Salt–AScalableSystems … · Salt–Introduction B1SystemsGmbHSalt–ScalableSystemsManagement4/47. YetAnotherSystemsManagementSolution? ... github.com/saltstack-formulas/for"official"formulas

Thank You!

For more information, refer to [email protected] +49 (0)8457 - 931096

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development