![Page 1: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/1.jpg)
Thorsten Kramm | Berlin Juni 2015
Saltstack
![Page 2: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/2.jpg)
![Page 3: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/3.jpg)
![Page 4: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/4.jpg)
Thorsten Kramm | Berlin Juni 2015
![Page 5: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/5.jpg)
Kreativität Innovation
Trail & Error Prototyping
![Page 6: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/6.jpg)
Präzision Reproduzierbarkeit
Geschwindigkeit Automation
![Page 7: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/7.jpg)
Thorsten Kramm | Berlin Juni 2015
Computersysteme
EinheitOrdnung
Automatisierung
![Page 8: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/8.jpg)
Thorsten Kramm | Berlin Juni 2015
Was macht Saltstack?
Einer beherrscht sie alle.root@salt-‐master:# full-‐controll
![Page 9: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/9.jpg)
Thorsten Kramm | Berlin Juni 2015
Was macht Saltstack?
Einer beherrscht sie alle.
Befehle parallel ausführen. Systeme und Software installieren. Systemstatus sicher stellen. Konfigurationen erzeugen und bearbeiten.
root@salt-‐master:# full-‐controll
!
!
!
!
![Page 10: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/10.jpg)
Thorsten Kramm | Berlin Juni 2015
Warum Saltstack?… es gibt doch schon
PuppetcfEngineChefansible…
![Page 11: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/11.jpg)
Thorsten Kramm | Berlin Juni 2015
KISS
einfach zu lernen einfach zu installieren einfach zu pflegen
!
!
!
![Page 12: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/12.jpg)
Saltstack ist einfach …
… aber nicht beschränkt!
![Page 13: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/13.jpg)
Thorsten Kramm | Berlin Juni 2015
Salt-Master installierenHinzufügen des Saltstack Software Repositories
# /etc/apt/sources.list.d/saltstack.list deb http://debian.saltstack.com/debian jessie-saltstack main
!
Importieren des Schlüsselswget -q -O- "http://debian.saltstack.com/debian-salt-team-
joehealy.gpg.key" | apt-key add -
!
Master installieren
apt-get update && apt-get install salt-master
!
![Page 14: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/14.jpg)
Thorsten Kramm | Berlin Juni 2015
Minions installierenFüge DNS- oder Hosts-Eintrag hinzu
root@minion2:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 minion2.lab4.org minion2
10.129.163.163 salt.lab4.org salt
!
Minion installieren
apt-get update && apt-get install salt-minion
!
![Page 15: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/15.jpg)
Thorsten Kramm | Berlin Juni 2015
„Master, ich will der folgen“
![Page 16: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/16.jpg)
Thorsten Kramm | Berlin Juni 2015
„Du gehörst mir!“
![Page 17: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/17.jpg)
Thorsten Kramm | Berlin Juni 2015
„Seit ihr alle da?“
![Page 18: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/18.jpg)
AES"
AES"
AES"Minion 2
Minion 3
Minion 1
bidirektionale Kommunikation
hinter den Kulissen
Salt-Master
TCP 4506 ZeroM
Q M
essaging
![Page 19: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/19.jpg)
Thorsten Kramm | Berlin Juni 2015
Befehlen - Salt Module
![Page 20: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/20.jpg)
Thorsten Kramm | Berlin Juni 2015
Ein Befehl - mehrere „Sprachen“
Debian/ Ubuntu: apt-get update && apt-get -y upgrade
CentOS/ RedHat: yum update
![Page 21: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/21.jpg)
Thorsten Kramm | Berlin Juni 2015
Beispiel: Benutzer anlegen
salt * user.add thorsten
! Benutzer auf allen Systemen anlegen
salt '*' ssh.set_auth_key thorsten AAAAB3NzaC1y…p8cow==
enc='rsa' comment='[email protected]‘
! Einen öffentlichen SSH-Schlüssel hinterlegen
salt '*' user.chshell thorsten /bin/bash
! Standard-Shell ändern
![Page 22: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/22.jpg)
289 Module
![Page 23: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/23.jpg)
Thorsten Kramm | Berlin Juni 2015
Salt ModulesSalt-Master
Abstraktionsschicht mit einheitlichen Kommandos
Arch Linux Debian Fedora Gentoo
RHEL & Clones Solaris Ubuntu SUSE
Windows OS X FreeBSD
!
!
!
!
!
!
!
!
!
!
!
![Page 24: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/24.jpg)
Thorsten Kramm | Berlin Juni 2015
Minions adressieren
Grain (Oberflächenbild)
![Page 25: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/25.jpg)
unter der Oberfläche
![Page 26: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/26.jpg)
Thorsten Kramm | Berlin Juni 2015
States definieren# /etc/salt/master
![Page 27: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/27.jpg)
Thorsten Kramm | Berlin Juni 2015
Die Kommandobrücke: top.sls/srv/salt/top.sls
![Page 28: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/28.jpg)
Thorsten Kramm | Berlin Juni 2015
Benutzer verwalten/srv/salt/create_user.sls
![Page 29: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/29.jpg)
Thorsten Kramm | Berlin Juni 2015
Push & PullMinions holen sich alle States ab:
Master schickt einen State:
root@master:~# salt minion1.lab4.org state.sls create_user
#
root@minion2:~# salt-call state.highstate
# Pull
Master schickt alle Sates (top.sls):
root@master:~# salt minion1.lab4.org state.highstate
#
Push
![Page 30: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/30.jpg)
![Page 31: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/31.jpg)
![Page 32: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/32.jpg)
dynamische Dateien mit Jinja
{% set domain = 'example.com' %}
gw:
host.present:
- ip: 192.168.152.10
- names:
- gw
- gw.{{domain}}
mail:
host.present:
- ip: 192.168.152.7
- names:
- mail.{{domain}}
etc-hosts.sls
![Page 33: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/33.jpg)
Thorsten Kramm | Berlin Juni 2015
dynamische Dateien mit Jinja
{% for usr in 'moe','larry','curly' %}
{{ usr }}:
group:
- present
user:
- present
- gid_from_name: True
- require:
- group: {{ usr }}
{% endfor %}
users.sls
![Page 34: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/34.jpg)
Thorsten Kramm | Berlin Juni 2015
dynamische Dateien mit Jinja
apache:
pkg.installed:
{% if grains['os'] == 'RedHat' %}
- name: httpd
{% elif grains['os'] == 'Ubuntu' %}
- name: apache2
{% endif %}
apache.sls
![Page 35: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/35.jpg)
Thorsten Kramm | Berlin Juni 2015
Dateien zentral verwalten
burp:
pkg:
- installed
/etc/burp/burp.conf:
file.managed:
- source: salt://files/all/etc/burp/burp.conf
- mode: 0600
- user: root
- group: root
- requiere: burp
burp-backup.sls
![Page 36: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/36.jpg)
cname = {{ grains['fqdn'] }}
Dateien kopieren & bearbeitenburp:
pkg:
- installed
/etc/burp/cname.conf:
file.managed:
- source: salt://burp-backup/files/cname.conf
- template: jinja
- mode: 0600
- user: root
- group: root
- requiere: burp
burp-backup.sls
![Page 37: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/37.jpg)
Thorsten Kramm | Berlin Juni 2015
Pillars: der Datenspeicher
pillar_roots:
base:
- /srv/pillar
Aktivieren Sie Pillars in /etc/salt/master:!
Legen Sie eine top.sls base:
'*':
- static
- packages
!
![Page 38: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/38.jpg)
Thorsten Kramm | Berlin Juni 2015
Pillars definieren Variablen
statisch
# /srv/pillar/static.sls
company : Meine Firma
smtp_relay: 192.168.4.100
dynamisch
# /srv/pillar/packages.sls
{% if grains['os'] == 'RedHat' %}
apache: httpd
git: git
{% elif grains['os'] == 'Debian' %}
apache: apache2
git: git-core
![Page 39: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/39.jpg)
Thorsten Kramm | Berlin Juni 2015
Pillars in States verwenden
# /srv/sates/linux/apache.sls
apache:
pkg.installed:
- name: {{ pillar['apache'] }}
apt-get install apache2
yum install httpd
![Page 40: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/40.jpg)
Thorsten Kramm | Berlin Juni 2015
Virtuelle Maschinen und die Cloud
apt-get install salt-cloud
Cloud-Verwaltung installieren!
salt-cloud -p debian@digitalocean vm4711.cloud
virtuelle Maschinen erzeugen!
![Page 41: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/41.jpg)
Thorsten Kramm | Berlin Juni 2015
voilà!
![Page 42: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/42.jpg)
Thorsten Kramm | Berlin Juni 2015
Hinter den Wolken
![Page 43: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/43.jpg)
Thorsten Kramm | Berlin Juni 2015
Unterstütze Plattformen
Joyent Linode Rackspace SoftLayer Vexxhost Scaleway
OpenStack Parallels Proxmox VMWare LXC
Aliyun Azure DigitalOcean EC2 GoGrid Google Compute HP Cloud
Public Privat
!!!!!!!
!!!!!
!!!!!
!
![Page 44: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/44.jpg)
Thorsten Kramm | Berlin Juni 2015
Wolken konfigurieren
Zugangsdaten zu einem Cloud-Provider eintragen
# /etc/salt/cloud.providers.d/digital_ocean.conf
digital_ocean_cfg:
provider: digital_ocean
personal_access_token: XYZ
ssh_key_file: /root/.ssh/id_rsa
ssh_key_names: my_salt_master,Thorsten Kramm
location: ams2
!
![Page 45: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/45.jpg)
Thorsten Kramm | Berlin Juni 2015
Wolken konfigurieren
VM-Templates auf Angebote „mappen“
# /etc/salt/cloud.profiles.d/digital_ocean.conf
debian@digitalocean:
provider: digital_ocean_cfg
image: debian-8-x64
size: 512MB
location: ams2
private_networking: False
!
![Page 46: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/46.jpg)
Thorsten Kramm | Berlin Juni 2015
Versionskontrolle mit git
Warum man ein VCS nutzen sollte: Änderungen protokollieren Arbeiten im Team ermöglichen Rollouts kontrollieren Qualitätssicherung „vorschalten“
!
!
!
!
![Page 47: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/47.jpg)
Thorsten Kramm | Berlin Juni 2015
Arbeiten mit VCS Version 1
Salt-Master/srv/salt/states /srv/salt/pillar
commit svn git …
deploy
$ssh + vi
ups…vergessen.
![Page 48: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/48.jpg)
Thorsten Kramm | Berlin Juni 2015
Arbeiten mit VCS Version 2
Salt-Master/srv/salt/states /srv/salt/pillar
deploy
$git push -u origin master
![Page 49: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/49.jpg)
Thorsten Kramm | Berlin Juni 2015
Arbeiten mit VCS Version 3
Salt-Master/srv/salt/states /srv/salt/pillar
deploy
$
%$
Pullrequest
Fork Merge to Master
![Page 50: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/50.jpg)
Thorsten Kramm | Berlin Juni 2015
Salt-Gitfs
![Page 51: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/51.jpg)
Thorsten Kramm | Berlin Juni 2015
Salt-Sates & Gitfs # /etc/salt/master
fileserver_backend:
- git
gitfs_remotes:
- [email protected]:getsalted/salt-states.git:
- user: getsalted
- pubkey: /root/.ssh/id_rsa.pub
- privkey: /root/.ssh/id_rsa
- root: states
![Page 52: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/52.jpg)
Thorsten Kramm | Berlin Juni 2015
Salt-Pillar & Gitfs # /etc/salt/master
pillar_roots:
base:
- /srv/salt/pillar-empty
ext_pillar:
- git: master https://user:[email protected]/getsalted/salt-
states.git root=pillar
Authentifizierung per SSH-Key leider noch nicht möglich.
![Page 53: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/53.jpg)
Thorsten Kramm | Berlin Juni 2015
Update von Konfiguration per Curl
curl http://salt:2379/v2/keys/my_key/\
-XPUT -d value="some data"
# /etc/salt/master
my_etcd_config:
etcd.host: 127.0.0.1
etcd.port: 2379
ext_pillar:
- etcd: my_etcd_config
dynamische Pillars
![Page 54: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/54.jpg)
Thorsten Kramm | Berlin Juni 2015
Beispiel: Webcluster1 Loadbalancer
N Backends
&1 Salt-Master
![Page 55: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/55.jpg)
Thorsten Kramm | Berlin Juni 2015
Last der Backends überwachen
salt-master:~# salt '*.backends.local' status.loadavg
!
Neue VM erzeugen
salt-master:~# salt-cloud -p lxc-ubuntu 4.backends.local
!
Mache die neue VM zum Backend
salt-master:~# salt 4.backends.local state.sls web-backend
!
Schwitz! Die Last ist zu hoch.
![Page 56: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/56.jpg)
Thorsten Kramm | Berlin Juni 2015
nginx: service.running: -‐ enable: True -‐ reload: True -‐ watch: -‐ file: loadbalancer.conf
nginx.sls
http { upstream myapp1 { {% for key, value in pillar['backends'].iteritems() %} server {{key}}; {% end for %}
}
loadbalancer.conf
Master aktualisiert die Loadbalancer-Konfiguration
salt-master:~# salt loadbalancer.local state.sls nginx
!
Neues Backend klinkt sich in Cluster ein
4.backends:~# curl http://salt:2379/v2/keys/backends/\ $(hostname -f) -XPUT -d value="online"
!
![Page 57: Saltstack - Heinlein Support › sites › default › ... · Thorsten Kramm | Berlin Juni 2015 Warum Saltstack? … es gibt doch schon Puppet cfEngine Chef ansible …](https://reader033.vdokument.com/reader033/viewer/2022060210/5f04977d7e708231d40ebb36/html5/thumbnails/57.jpg)
Thorsten Kramm [email protected]