Post on 25-May-2020
IT-Services & Consulting
solutions & more
NETexpress GmbH, 08.03.2018
Konfigurationsmanagement mit Chef
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
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
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
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
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
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
2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 8
Grundlagen
Heisst jetzt „Chef Server“
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
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
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
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
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
2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 14
Administration mit Chef - Modul Server
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
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
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
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
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
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
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[:
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
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
2018 NETexpress GmbH - Ein Unternehmen der PIXEL Group - www.netexpress.de Folie 24
Egal welches Tool, Konfigurationsmanagement lohnt sich!
Chef vs. Puppet
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
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?
NETexpress Network Solutions GmbHLochhamer Schlag 17D-82166 Gräfelfing
Tel.: +49/89/8 98 68-400Fax: +49/89/8 98 68-444
info@netexpress.dewww.netexpress.de
© 2018 NETexpress GmbHEin Unternehmen der PIXEL Group