konfigurationsmanagement mit chef - pixel group · 2019-05-22 · konfigurationsmanagement mit chef...

27
IT-Services & Consulting solutions & more NETexpress GmbH, 08.03.2018 Konfigurationsmanagement mit Chef

Upload: others

Post on 25-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

IT-Services & Consulting

solutions & more

NETexpress GmbH, 08.03.2018

Konfigurationsmanagement mit Chef

Page 2: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 2

I Grundlagen

I Administration mit Chef• Testing• Module• Cookbooks

I Chef vs. Puppet

I Demo

Inhalt

Page 3: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 3

1. Installation eines Servers

2. Kunde bemerkt Fehler

3. Fehlerbehebung, eine Zeile in Konfiguration vergessen

4. Kunde bemerkt weiteren Fehler

5. Fehlerbehebung, oben geänderte Zeile nicht 100%ig korrekt

6. Kunde bemerkt wieder Fehler…

Grundlagen

Page 4: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 4

Lösung:

I Configuration Management/Continuous Delivery/Deployment

I Ziel: Infrastructure as Code, Idempotenz, Reproduzierbarkeit

Opscode Chef:

I OpenSource

I Läuft unter Linux, Unix, MacOS, Windows

I Client/Server-Modus (hosted/selfhosted) oder Standalone

I Ruby

I Alternativen: Puppet, Salt, Ansible, CFEngine

Grundlagen

Page 5: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 5

Vorteile:

I Benötigte Zeit für Installation/Konfiguration/Tests wird auf Dauer reduziert

I Änderungen auf vielen Systemen sind eine Sache von Minuten

I CMDB (lt. ITIL) ist bei einem Chef-Server enthalten (OHAI ermittelt die Konfiguration des Systems)

I Dokumentation kann auf ein Minimum beschränkt werden

I Prinzipiell reicht ein Backup der Userdaten

I Fehler werden während des Lifecycles der verwalteten Systeme im Optimalfall einmal begangen

Grundlagen

Page 6: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 6

I Applikationen installieren/konfigurieren

I Services starten/stoppen

I Cronjobs anlegen

I Benutzer verwalten

I …..

Grundlagen

Page 7: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 7

I Zugriff auf Registry und Umgebungsvariablen

I Benutzen der Powershell (-> DSC)

I Aufrufen von MSI-Installern

I ACLs setzen

I Microsoft Azure Cloud steuern

I Beispiel:

Grundlagen

registry_key "HKLM\\Software\\MyApp\\MyConfig" dovalues [{

:name => "Testkey",:type => :multi_string;:data => linux\0ist\0beste\0

}]architecture :x86_64action :createnot_if do ::File.exists?('c:/pleasenot') end

End

Page 8: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 8

Grundlagen

Heisst jetzt „Chef Server“

Page 9: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 9

Andere haben sich vielleicht schon den Kopf über das Problem zerbrochen!

Grundlagen

Page 10: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 10

I Lokal

I Vagrant (manuell)(Volle) Tests auf „Wegwerf-VMs“

I Test kitchen (automatisch)Volle Tests via Vagrant, Docker, LXC

I FoodcriticLINT-Check (Code style, Syntax, häufige Fehler)

I ChefSpecAusführung

Administration mit Chef - Testing

Page 11: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 11

I Verwaltung von virtuellen (Test-)Maschinen (VMWare, VirtualBox, LXC..)

I Vordefinierte „Wegwerf-VMs“

Administration mit Chef - Testing

Page 12: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 12

Administration mit Chef - Komponenten

I WorkstationEigener Rechner, zur Verwaltung der Infrastruktur

I ServerZentraler Chef-Server, der die Konfiguration zentral im Netzwerk zur Verfügung stellt

I ClientNodes die von Chef gemanaged werden

Page 13: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 13

I knifeZugriff auf die API (RESTful JSON), „Admintool“

I ohaiSammeln von Systeminformationen (RAM, CPU…), speichern in Databag

I chef-clientKonfiguriert Zielmaschinen lt. Spezifikation

I chef-shellDebugging

[

Chef serverZentrale Verwaltung

chef-applyEinzelne RECIPES ausführen testen

]

Administration mit Chef - Module

Page 14: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 14

Administration mit Chef - Modul Server

Page 15: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 15

I Sammeln von Systeminformationen des RechnersCPU, Netzwerk, Arbeitsspeicher, Dateisysteme, OS, FQDN, PHP/Python-Version, SSH-Host-Key...

I Erweiterbar durch (eigene) Plugins

I Aktualisierung bei jedem Chef-Run

Administration mit Chef - Modul OHAI

Page 16: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 16

I Führt Konfigurationsaufgaben auf Nodes aus

I Läuft nicht automatisch (cronjob)

Administration mit Chef - Modul chef

Page 17: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 17

Cookbook Metadata

Recipe

Attributes

Template

Resourceprovider

Library

I Cookbook

Administration mit Chef - Cookbooks

Page 18: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 18

I Metadata = Abhängigkeiten, Author, Changelog…

I Recipe = Installations/Konfigurationsanweisungen

I Template = Vorlage (z.B. Konfigurationsdatei)

I File = Statische Datei (z.B. Readme)

I Resource provider = Resources erweitern (Chef DSL)

I Library = Eigene Resources hinzufügen (Ruby)

I Attribute = Eigenschaften von Nodes

Administration mit Chef - Cookbooks

Cookbook

Page 19: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 19

[

I Runlist = Nach Ausführungszeitpunkt sortierte Liste mit Roles/Recipes

I Environment = dev/stage/prod sauber Trennbar

I Data bag = Globale Variablen, gespeichert als JSON (können optional verschlüsselt werden)

]

Administration mit Chef - Cookbooks

Page 20: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 20

I Resources sind „Anweisungen“ für Aktionen, Verwaltung von:• Verzeichnissen,• Paketen,• User/Gruppen,• Netzwerk,• Software-RAIDs,• Routen,• Services,• Cronjobs• …..

I Änderungen nur wenn nötig

Administration mit Chef - Cookbooks

Page 21: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 21

Beispiel:

Resource / Name / Parameter

Administration mit Chef - Cookbooks Recipes

include_recipe postfix::connector

%w{epel-release httpd php5 mysql-client}.each do |pkg|package pkg do

action :installend

end

service “httpd“ dosupports :restart => true, :reload => trueaction [:enable, :start]

end

hostnames = search("node", "role:webserver")case node['platform_family']when 'debian‘

template “/etc/httpd/httpd.conf“ dosource “httpd_conf.erb“owner “root“group “root“mode “0755“notifies :restart, “service[httpd]“, :delayedvariables(

:hostname => hostnames,:port => ‚443‘

)end

when 'rhel'Chef::Log.info('Hey I'm #{node[:

Page 22: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 22

I Resources plattformunabhängig (Provider)

I Es kann mit Ruby-Code gearbeitet werden!

I Ein Cookbook kann mehrere Recipes haben (Client/Server-Config)

I Cookbooks können Databags bearbeiten

Administration mit Chef - Cookbooks Recipes

pack

age

„http

d“ yum install httpd

apt-get install httpd

pacman sync httpd

pkg_add -r httpd

Page 23: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 23

I Cookbook (Chef) vs. Manifest (Puppet)

I Festlegen der Reihenfolge im Cookbook (Chef), imperativ vs. Soll-Zustand in Manifest beschreiben (Puppet), deklarativ

I Verschlüsselte Data bags (Chef) vs. Drittanbieterplugin notwenig(Puppet)

I Konfigurationsdateien „überbügeln“ (Chef) vs. Konfigurationsdateien anpassen (Puppet)

I Tools für Test-driven Development mitgeliefert (Chef) vs. Plugins nötig (Puppet)

Chef vs. Puppet

Page 24: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 24

Egal welches Tool, Konfigurationsmanagement lohnt sich!

Chef vs. Puppet

Page 25: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 25

Chef run:

I Apache Webserver

I Virtual Host für www.netexpress.de

I www.netexpress.de Dateien

I Firewalld-Konfiguration

Demo

Page 26: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 26

Learn Chef (kostenfreie Test-VMs für Tutorials)

https://learn.chef.io/

Just enough Ruby for Chefhttps://docs.chef.io/ruby.html

Chef Resourceshttps://docs.chef.io/resources.html

Vagranthttps://www.vagrantup.com/

Vagrant Baseboxeshttp://www.vagrantbox.es

NixOShttp://nixos.org/

Chef – Mehr?

Page 27: Konfigurationsmanagement mit Chef - PIXEL GROUP · 2019-05-22 · Konfigurationsmanagement mit Chef 2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - Folie 2 I Grundlagen I

NETexpress Network Solutions GmbHLochhamer Schlag 17D-82166 Gräfelfing

Tel.: +49/89/8 98 68-400Fax: +49/89/8 98 68-444

[email protected]

© 2018 NETexpress GmbHEin Unternehmen der PIXEL Group