Präsentation starten

15 Jahre Hostsharing / 05.03.2016
page/pages

Hostsharing Play#

Anwendungen reproduzierbar in die
Hostsharing Infrastruktur konfigurieren#


Peter Hormanns
Informatikbüro Hormanns & Wenz, Krefeld
Hostmaster der Hostsharing eG

Peter Hormanns#

Profession#

  • Java Coder
  • DevOps
  • Hostsharer

Other#

  • Gospel
  • Free Software

Agenda#

  • Überblick Ansible
    • Einordnung
    • Funktionalität
    • Begriffe
  • Hostsharing Playbooks
    • Ansible Module
    • Wordpress als Beispiel
    • komplexes Setup

Managed Server#

als Alternative zur "Cloud" und zum eigenen Server

SaaS Anwendungen der Genossen
PaaS Hostsharing Plattform
IaaS Hostsharing-Hardware
Sinma Netzwerkanbindung
Cloud
"anderer Leute Computer"
Unsere Infrastruktur
Auftragsdatenverarbeitung

Ansible Steckbrief#

  • Automatisierung
  • Configuration Management
  • Service Orchestration
  • Dokumentation

Ansible Alternativen#

  • CF Engine
  • Chef
  • Puppet
  • SaltStack
  • Ansible

Ansible Funktionsweise (1)#


Playbook

Inventory
Versionierte Dokumente
V V
> > Ansible
Management
Node
< < Workstation
oder Jenkins
V
Ansible
Managed
Server
verwaltete Server
oder Dienste

Ansible Funktionsweise (2)#

  • Push über ssh (kein Agent)
  • YAML Syntax für Playbook
  • Jinja Template Engine
  • Idempotenz
  • Deplarativ

Einfaches Playbook (1)#

--- 
- hosts: wordpress 
  vars: 
    version: 4.0 
  tasks: 
  - name: extract tarball 
    sudo: yes 
    sudo_user: "{{user}}"  
    unarchive: > 
      copy=no 
      src="/tmp/wordpress.tgz"  
      dest="/home/{{user}}/wordpress
...

Einfaches Playbook (2)#

...
  - name: move to www
    sudo: yes 
    sudo_user: "{{user}}"  
    command: > 
      rm -rf www && mv wordpress www
      chdir="/home/{{user}}/wordpress"
  - name: upload wp-config.php
    sudo: yes 
    sudo_user: "{{user}}"  
    template: > 
      src="templates/wordpress/wp-config.php"
      mode=0600
      dest="/home/{{user}}/wordpress/www/wp-config.php"

Ansible "Playbook"#

Beschreibung eines Soll-Zustands
der Infrastruktur

Ansible "Modul"#

Befehle oder besser Zusicherungen
in den Playbooks

  • ca. 130 Module im Core
  • ca. 270 "Extra"-Module
  • eigene Module in jeder Skript-Sprache möglich
  • Module für Hostsharing-Infrastruktur

Ansible "Inventory"#

[appserver]
apps01.example.com
apps02.example.com
apps03.example.com

[frontend]
www.example.com ansible_sudo_user=haproxy

[appserver:vars]
frontend=www.example.com
ansible_sudo_user=tomcat7

Ansible "Variablen"#

  • im Inventory
  • in Playbooks
  • aus inkludierten Dateien
  • von der Kommandozeile

Ansible "Rollen", "Handler"#

roles/gitblit/ 
roles/gitblit/files 
roles/gitblit/files/logo120x45.png 
roles/gitblit/handlers 
roles/gitblit/handlers/main.yml 
roles/gitblit/meta 
roles/gitblit/meta/main.yml 
roles/gitblit/tasks 
roles/gitblit/tasks/main.yml
roles/gitblit/templates 
roles/gitblit/templates/context.xml 
roles/gitblit/vars 
roles/gitblit/vars/main.yml

"Orchestrierung"#

  • Rollen
  • Delegation
  • abhängige Rollen

Zusammenfassung#

  • Modul - Skript zur Zustandsumsetzung für ein Objekt
  • Inventory - Aufzählung der Infrastruktur
  • Playbook - Beschreibung einer Soll-Zustands
  • Template - Vorlage für (Konfigurations-)Datei

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-7) was last changed on 04-Mar-2016 12:09 by Peter Hormanns