67
Frankfurter Entwicklertage 2016 Ansible für Entwickler Sandra Parsick [email protected] @SandraParsick

Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Embed Size (px)

Citation preview

Page 1: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Frankfurter Entwicklertage 2016

Ansible für Entwickler

Sandra [email protected]

@SandraParsick

Page 2: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Zur meiner Person

● Freiberufliche Softwareentwickler und Consultant im Java-Umfeld

● Schwerpunkte:

– Java Enterprise Anwendungen

– Agile Methoden

– Software Craftmanship

– Automatisierung von Entwicklungsprozessen● Softwerkskammer Dortmund

Page 3: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Agenda

1. Ansible – Was ist das?

2. Warum ist es für Entwickler interessant?

3. Einführung in Ansible

4. Wie unterscheidet sich Ansible zur seiner Konkurrenz?

5. Weitere Einsatzszenarien aus Entwicklersicht

Page 4: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Ansible Was ist das?

Page 5: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Ansible

● Software für

– Konfigurationsmanagement,– Softwareverteilung und– Ad-hoc-Kommando-Ausführung

Page 6: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Konfigurationsmanagement (KM)

„Das KM umfasst alle technischen, organisatorischen und beschlussfassenden Maßnahmen und Strukturen, die sich mit der Konfiguration (Spezifikation) eines Produkts befassen.“https://www.projektmagazin.de/glossarterm/konfigurationsmanagement

Page 7: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Konfigurationsmanagement (KM)

● Softwarekonfiguration● Hardwarekonfiguration● Dienstleistungskonfiguration● Systemkonfiguration

Page 8: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration - „Infrastructure As Code“

Page 9: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration - „Infrastructure As Code“

Ansible

Page 10: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Warum ist es für Entwickler interessant?

Page 11: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Organisatorische AusgangslageWunsch

Page 12: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Organisatorische AusgangslageRealität

Page 13: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Prozess zwischen Development und Operation

Page 14: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Lösungidee mit Ansible

Page 15: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Einführung in Ansible

Page 16: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Ansible

● Software für

– Konfigurationsmanagement,– Softwareverteilung und– Ad-hoc-Kommando-Ausführung

● Sprache: Python● Ansible Skripte: YAML

Page 17: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Funktionsweise

Page 18: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Exkurs: YAML

YAML JSON

Page 19: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Ansible Beispiel

Page 20: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Application Server Playbook

Page 21: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Application Server

Page 22: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Inventories

Production Test

Page 23: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Inventories

Page 24: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Application Server

Page 25: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Templates

● setenv.sh.j2

Page 26: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Templates - Jinja2

● Templating engine für Python

● Mehr Information unter http://jinja.pocoo.org/docs/dev/

Page 27: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Application Server Playbook

Page 28: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Database Server Playbook

Page 29: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet
Page 30: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Database Server Playbook

Page 31: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Database Server Playbook

Page 32: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Application Server

Page 33: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Application Server

Page 34: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet
Page 35: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Roles

Page 36: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Setup Playbooks mit Roles

● Setup Application Server

● Setup Database Server

Page 37: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Java Webapplikation Deployment

Page 38: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Deploy Application Playbook

Page 39: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

deploy-on-tomcat Role

Page 40: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

deploy-on-tomcat Role

Page 41: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

deploy-on-tomcat Role

Page 42: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

deploy-on-tomcat Role

Page 43: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

deploy-on-tomcat Role

Page 44: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

deploy-on-tomcat Role

Page 45: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Deploy Application Playbook

Page 46: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Ad-hoc-Kommando

Page 47: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Warum Roles?

Page 48: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Warum Roles?

Page 49: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Warum Roles?

Page 50: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Ansible Infrastruktur

Page 51: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Ansible Tower

Page 52: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Wie werden Ansible Skripte getestet?

● ansible-playbook --check

● ansible-playbook --syntax-check

● Jenkins + Vagrant● Rspec tests

Page 53: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

ServerSpec Tests

Page 54: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

ServerSpec Tests

Page 55: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Wie unterscheidet sich Ansible zu seiner Konkurrenz?

Page 56: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

VergleichAnsible

● Orchestrierung über SSH

● Benötigt keine Rootrechte auf Zielsystem

● Konfigurationsmgmt + Applikationsdeployment

● Monitoringtool nur in der Enterprise Variante

● Skripte mehr imperativ

● Windows-Support rudimentär

● Skripte OS- bzw. Distrobutions-spezifisch

Puppet

● Client-Server Architektur

● Für komfortables Arbeiten benötigt es Rootrechte

● Konfigurationsmgmt

● Monitoringtools Open Source

● Skripte mehr deklarativ

● Windows-Support

● Skripte können OS-unspezifisch sein

Page 57: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Vergleich

Puppet Ansible

Page 58: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Weitere Einsatzszenarien aus Entwicklersicht

Page 59: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Organisatorische AusgangslageRealität

Page 60: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Prozess zwischen Development und Operation

Page 61: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Lösungidee mit Ansible

Page 62: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Variante - Prozess zwischen Development und Operation

Page 63: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Lösungsvariante

Page 64: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für Entwickler

Produktionsserver sind beim externen Hoster

Page 65: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Systemkonfiguration für EntwicklerLösungsidee

Page 66: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

Weitere Informationen

http://docs.ansible.com/

Page 67: Ansible für Entwickler - Karlsruher und Frankfurter ... · Agenda 1. Ansible – Was ist das? 2. Warum ist es für Entwickler interessant? 3. Einführung in Ansible 4. Wie unterscheidet

@[email protected]

Fragen?