Puppet, Salt oder Ansible

Ähnliche Dokumente
Ansible Grundlagen / 26

Einführung in Ansible

Ansible für Entwickler

Bootstrapping Ansible. Bengt Giger Informatikdienste ETH Zürich Client Delivery

Con guration as Code Über Ansible Ansible Grundlagen Live Demo Weitere Informationen

Automatisieren mit Ansible Ernst Leber NRW Regio Day Ratingen

Ansible Orchestrierung einfach gemacht

Konfigurationsmanagement und Deployment mit Ansible. DI (FH) René Koch Freelancer Grazer Linuxtage,

Ansible Einführung und Hands-on. Michael Kraus Meetup Ansible im Monitoring-Umfeld / München, 27. Juli 2016

Automatisierte Serververwaltung mit Hilfe von Puppet

Systemmanagement mit Puppet und Foreman

KONFIGURATIONSMANAGEMENT MIT PUPPET TIM SCHMELING. 4b:65:72:73:74:69:6e:2c:20:69:63:68:20:6c:69:65:62:65:20:64:69:63:68:21

Management von grossen IT Umgebungen mit Open Source Tools

Play with Ansible - Provisioning von Weblogic mit Ansible

Zentrales Konfigurationsmanagement mit Puppet

Red Hat Satellite mehr als nur ein Content Delivery und Subscription Management System

Zentrales Konfigurationsmanagement mit Puppet

Saltstack Thorsten Kramm Berlin Juni 2015

puppet, the foreman and everything Opensource Tools für das Datacenter Management Nils Domrose Köln, 24. Juni- 2014

Server mit Ansible verwalten

Automatisierte Entwickler VMs works on my machine zählt nicht mehr ;-)

KOHA Server Installation und Wartung mit Hilfe von Ansible und Ansible Tower

Konfigurationsmanagement mit Chef

Brownbag Zieht den Helm auf

Ansible in der (Datenbank) Administration Ernst Leber

Konfigurationsmanagement mit Chef

Hilfe bei der Automatisierung warum Ansible für DevOps eine gute Wahl ist

Puppet konfiguriert Nagios automatisch

The Foreman. Felix Massem und Jan-Frederic Markert

Saltstack. Martin Bracher Trivadis AG Bern / Zürich. Schlüsselworte Konfigurationsmanagement, Standardisierung, Remote Execution, Oracle Insallation

Pragmatische Einblicke in Deployment- & Konfigurations- Management Tools

Platform as a Service (PaaS) & Containerization

Neue Wege mit Contao 4

Best Practices in der IT-Administration, Version Michael Prokop, am #glt18

Containerplattform. Lego für DevOps. Dr. Jonas Trüstedt

Icinga 2 Einführung und Übersicht

Das ANTS-Framework Ansible im Pull-Mode für mobile Clients. Balz Aschwanden & Jan Welker,

Möglichkeiten von Cloud Computing für Entwicklung und Test. Michael Eichenberger SBB Informatik Developer Day 10. Dezember 2013

HERSTELLERUNABHÄNGIGE FIREWALL AUTOMATISIERUNG

Container als Immutable Infrastructure. John M. Hutchison

Serveradministration mit Ansible

ict-infrastruktur für bildungsaufgaben Sommersemester 2015 Juni 25, 2015

Puppet. Modul Guide. Alexander Pacnik Karlsruhe,

puppetserver installieren

Linux Tag Puppet. Umgebungen, Daten & Code, Abhängigkeiten. Alexander Pacnik Karlsruhe,

Systemmanagement mit Puppet und Foreman

Keine Angst vor Puppet 4. Secure Linux Administration Conference 2015 Martin Alfke

Data Center Automation mit Puppet

Konfigurationsmanagement mit Puppet

Ansible Gatewayadministration

Powershell DSC Desired State Configuration

Puppet 4 Solaris Thomas Rübensaal T-Systems International GmbH Bamberg

Config-Management mit Ansible

Powershell DSC Desired State Configuration

Satellite 6. Next Generation System Provisioning, Configuration and Patch Management

Lab Management mit TFS Thomas Schissler artiso AG

Bachelorarbeit Patrick Steinhauer Bachelorarbeit Realisierung einer Infrastr Pa uc trick

Anleitung zur Integration der /data.mill API in SAP Java Applikationen

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim,

Puppet Konfigurationsmanagement. Ulrich Habel

Continuous Integration mit GitLab CI Christine Koppelt Open-Source-Treffen, 26. Januar 2018

Die Überwachung lokaler Server Parameter durch den Local Check erfordert die Installation eines Monitoring Agents auf dem überwachten Server.

In diesem Beispiel verwende ich einen Raspberry Pi 3 (wg. Ethernetanschluss) mit einem MMDVM Hat Klon.

TFS 2013 Upgrade. Thomas Trotzki - artiso AG

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

Build Management Tool

Anlegen von Entwicklungsumgebungen per Vagrant & Chef

PUPPENSPIELE IN DER WOLKE HOW TO BRING A NON-CLOUD APP INTO THE SKY

Puppet Kickstart. Nürnberg, Referent: Thomas Gelf

OpenShift auf AWS. Ein Erfahrungsbericht. DB Systel GmbH Holger Koch I.LVD

Puppet und SVN für das Configuration- und Changemanagement

Use AMW to deploy to OpenShift

Günter Kraemer. Adobe Acrobat Connect Die Plattform für Kollaboration und Rapid Training. Business Development Manager Adobe Systems

Ansible-Kochbuch. Jörg Kastning. 17. Dezember Rezepte für die Verwendung von Ansible

Continuous Everything

Isolierte Umgebungen für Python Anwendungen Teil 2. Christine Koppelt, Jürgen Schackmann, Stefan Seelmann

Basislizenz. verfügbar. möglich. möglich. unbegrenzt. unbegrenzt. möglich. möglich. Basislizenz. verfügbar. möglich. möglich. unbegrenzt.

Solaris 11 Deployment mit Puppet Thomas Rübensaal T-Systems International GmbH Bamberg Schlüsselworte Einleitung Puppet Was ist das?

DevOps with AWS. Software Development und IT Operation Hand in Hand. Matthias Imsand CTO Amanox Solutions AG

Transkript:

Puppet, Salt oder Ansible Welches Tool ist das Richtige? Andy Wirtz, Dr. Jonas Trüstedt 27. November 2018

Tätigkeiten im Rechenzentrum Typische Aufgaben des Systemadministrators: einen Host erstellen Host mit Applikationen provisionieren Applikationen updaten

Konfigurationsmanagement Eine Applikation muss: installiert werden konfiguriert werden gestartet werden

Beispiel ntp Verwendung imperativer Shell-Befehle für unterschiedliche Betriebssysteme: yum apt zypper install -y ntp vi /etc/ntp.conf systemctl start ntpd ntp ntpd systemctl enable ntpd ntp ntpd

Manuelle Konfiguration Imperative einzelne Konfiguration: zu aufwändig zu zeitintensiv zu fehleranfällig Die Anzahl Instanzen steigt mit der Zeit, die Anzahl Mitarbeiter nicht

Automatisches Konfigurationsmanagement Verwendung eines Konfigurationsmanagement-Tools: Deklarative Formulierung der Infrastruktur Abstraktion der einzelnen Ressourcen Infrastruktur einfach skalierbar und reproduzierbar

Kernpunkte Idempotenz: Mehrmaliges Ausführen möglich Nur bei Änderungen wird angepasst Code als Dokumentation: Code lesbar Dokumentation als Code/Parameterset Trennung von Parametern und Code: Code mehrfach verwendbar Parameter als spezifische Konfiguration

Vorteile von Konfigurationsmanagement Infrastructure as Code : Standardisierung Automatisierung Änderungen an vielen/allen Hosts einfacher zentrale Versionskontrolle Effizientere Verwaltung der Infrastruktur Parameters Config Targethost Code

Tools von Red Hat seit 2015, IBM seit 2018: Release: 2012 Basis: Python von puppetlabs: Release: 2005 Basis: Ruby von Saltstack: Release: 2011 Basis: Python

Terminologie Ansible Salt Puppet System Facts Modules Grains Modules Facts Resources Code Tasks Roles Playbook States Formulas Roles Classes Modules Roles/Profiles Parameters Inventory Top-file + Pillar Hiera

Ansible - allgemein SSH Verbindung zu Hosts (sshkeys) Kein Client nötig Abbildung der Infrastruktur in einem Inventar Community-roles in Ansible Galaxy Inventory Host + Vars Ansible-Host Playbook Role Role Host1 Host2 Host3

Ansible - Beispiel ntp.yaml: tasks: - name: install ntp package: name: ntp state: present - name: Generate ntp. conf template: src: ntp. conf.j2 dest: / etc/ ntp. conf - name: Ensure NTP is running service: name: ntpd state: started enabled: yes Ausschnitt aus ntp.conf.j2: [...] {% for item in ntp_servers %} server {{ item }} {% endfor %} [...] Inventory.yaml (ini-file or yaml): base: hosts: host1. example. com host2. example. com vars: ntp_servers: - ntp1. server. org - ntp2. server. org

Puppet - allgemein Clientbasiert Hiera common Master (Profiles) Module Periodische Durchläufe (Standard: alle 30 min) os host1 Module Module Module Community-Module auf Puppet Forge Hiera zur Verwaltung von Parametern Host1 Host2 Host3 Puppet-Agents

Puppet - Beispiel ntp: init.pp: package{ ntp: ensure => latest, } file { / etc/ ntp. conf: ensure => present, content => epp(' ntp/ ntp. conf.epp '), } Ausschnitt aus ntp.conf.epp: [...] <% $ntp:: servers. each $server {-%> server <%= $server %> <% } -%> [...] service{ 'ntpd ': ensure => running, enable => true }

Puppet - Beispiel common.yaml: classes: - ntp ntp:: servers: - ntp1. server. org - ntp2. server. org host5.example.com.yaml: ntp:: servers: - ntp1. test. server. com - ntp2. test. server. com Hiera-config hiera.yaml: hierarchy: - name: "Per - node_data" path: "nodes/%{trusted. certname}. yaml" - name: "Per - OS_defaults" path: "os/%{facts.os. family}. yaml" - name: " Common_data" path: " common. yaml"

Salt - allgemein Master Clientbasiert & SSH-Variante Eventbasierte Auslöser (Reactor) Periodische Durchläufe möglich Infrastruktur aufgeteilt in: top.sls Pillars State State Top.sls (wie Inventory) Pillars (ausgelagerte Parameter) Wenig Community-Formulas Host1 Host2 Host3 Minions

Salt - Beispiel ntp.sls: ntp: pkg. installed: - name: ntp ntp_conf: file. managed: - name: / etc/ ntp. conf - template: jinja - source: salt:// ntp/ntp - client. conf Ausschnitt aus ntp-client.conf: [...] {% set ntpservers = salt[' pillar.get ']('ntp: servers ') %} {% for ntpserver in ntpservers -%} server {{ ntpserver }} {% endfor %} [...] ntp_running: service. running: - name: ntpd - enable: True

Salt - Beispiel top.sls: base: '*': - ntp 'webserver ': - httpd Ausschnitt aus pillar ntp: [...] ntp: servers: [' ntp1. example. com ',' ntp2. example.com ',' ntp3. example.com '] [...] Salt-SSH mit Roster-File für Targets: Minion1: host: host1. example. com Minion2: host: host2. example. com

AdHoc-Befehle/Community Einzelne Befehle direkt auf Hosts ausführen: Puppet: Bolt/Tasks Ansible: AdHoc-Commands Salt: AdHoc-Commands Fertige Bausteine aus der Community: Puppet Forge: ~5800 Module Ansible Galaxy: ~17000 Roles Salt Formulas (Github): ~300 Formulas

Integration in anderen Produkten Beispiele: Als Installer: Red Hat Openshift Ansible Suse CaaSP Salt Foreman-Installer Puppet Foreman/orcharhino/Satellite: Puppet Ansible Salt

Einsatzmöglichkeiten Basiskonfiguration für Infrastruktur: Spezielle Konfigurationen Admin-User inkl. ssh-keys Anbinden an Logging/Monitoring Installer für Software/Umgebungen: Serverspezifische Konfigurationen Spezielle Anwendungen Clusterumgebungen wie Kubernetes/Openshift Orchestrierung: Containerhosts Anwendungen mit mehreren Instanzen

Welches Tool ist das Richtige? Allgemeine Antwort: Kommt drauf an Fast alles kann mit jedem Tool irgendwie umgesetzt werden

Welches Tool ist das Richtige? Basiskonfiguration User mit Systemzugriff Nein Ja nur Anfangskonfiguration User dürfen Konfiguration ändern Nein Ja Alle Varianten Ja Nein ssh-basiert (Ansible, Salt) Client-basiert (Puppet, Salt)

Welches Tool ist das Richtige? Installer/Orchestrierung Konfiguration statisch Nein Ja ssh-basiert (Ansible, Salt) Client-basiert (Puppet, Salt)

Welches Tool ist das Richtige? Einführen von Configmgmt Standardanwendungen Ja Nein Puppet oder Ansible Trigger auf Monitorparameter Ja Nein Salt (Reactor) Alle Varianten

Client-based vs ssh-based Client-basiert: Fokus auf Stabilität/Persistenz Infrastructure as Code Zentrale Verwaltung Höhere Abstraktion Heterogene Systeme Stärken bei persistenten Konfigurationen ssh-basiert: Fokus auf Flexibilität Verwaltung je Anwendung/Umgebung Verwendung mit Userrechten Einfache Remote-Ausführung Stärken bei Orchestrierung/ Deployment

Kombination von Tools Kombination unterschiedlicher Tools möglich Mehrfache Verwendung von gleichen Client-based Tools Mehrere Puppet-/Saltmaster technisch schwierig Workflows für die zentrale Verwaltung nötig Mehrfache Verwendung von gleichen ssh-based Tools In eigenen Inventories möglich Verwaltung pro Abteilung möglich Geeignete Wahl der Tools pro Abteilung/Anwendung möglich

Zusammenfassung Arbeitserleichterung durch Configurationmanagement Zentrale Verwaltung von Servern/Anwendungen Reproduzierbarkeit 3 Tools mit vielen Gemeinsamkeiten: Ansible Puppet Saltstack Häufig Kombination der Tools Wahl des Tools je nach Einsatzzweck

Training/Schulung @ ATIX www.atix.de