• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Opscode Chef - Grundlagen
 

Opscode Chef - Grundlagen

on

  • 1,599 views

Einführung in die Grundlagen und Terminologie von Opscode Chef, einer in Ruby geschriebenen Software zu automatisierten Installation von Servern.

Einführung in die Grundlagen und Terminologie von Opscode Chef, einer in Ruby geschriebenen Software zu automatisierten Installation von Servern.

Statistics

Views

Total Views
1,599
Views on SlideShare
1,597
Embed Views
2

Actions

Likes
0
Downloads
37
Comments
0

2 Embeds 2

http://www.slashdocs.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Example: cookboos > database > libraries > resource_database.rb\n
  • Example: cookboos > database > libraries > resource_database.rb\n
  • Example: cookboos > database > libraries > resource_database.rb\n
  • Example: cookboos > database > libraries > resource_database.rb\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • You can search through data bags similar to node attributes.\n
  • You can search through data bags similar to node attributes.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Demonstration: invoke ohoi command.\n
  • Demonstration: invoke ohoi command.\n
  • Demonstration: invoke ohoi command.\n
  • Demonstration: invoke ohoi command.\n
  • Demonstration: invoke ohoi command.\n
  • \n
  • chef-validator-client identity = special purpose idendity to register new nodes\n
  • chef-validator-client identity = special purpose idendity to register new nodes\n
  • chef-validator-client identity = special purpose idendity to register new nodes\n
  • chef-validator-client identity = special purpose idendity to register new nodes\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Libraries = language extensions, ruby classes\nAttributes > Updates node attributes and Recipes\nDefinition > must be loaded before Recipes because they create pseude-resources\n
  • Libraries = language extensions, ruby classes\nAttributes > Updates node attributes and Recipes\nDefinition > must be loaded before Recipes because they create pseude-resources\n
  • Libraries = language extensions, ruby classes\nAttributes > Updates node attributes and Recipes\nDefinition > must be loaded before Recipes because they create pseude-resources\n
  • Libraries = language extensions, ruby classes\nAttributes > Updates node attributes and Recipes\nDefinition > must be loaded before Recipes because they create pseude-resources\n
  • Recipes will be evaluted. Take Resources > Resource Collection . No action execution.\nRessource Collection = Array of evaluated Resources\nRuby Block Resource = Execute Ruby Code with Resources, It‘s p\n
  • Recipes will be evaluted. Take Resources > Resource Collection . No action execution.\nRessource Collection = Array of evaluated Resources\nRuby Block Resource = Execute Ruby Code with Resources, It‘s p\n
  • Recipes will be evaluted. Take Resources > Resource Collection . No action execution.\nRessource Collection = Array of evaluated Resources\nRuby Block Resource = Execute Ruby Code with Resources, It‘s p\n
  • Recipes will be evaluted. Take Resources > Resource Collection . No action execution.\nRessource Collection = Array of evaluated Resources\nRuby Block Resource = Execute Ruby Code with Resources, It‘s p\n
  • \n
  • Converge: resource_collection.map { |resource| find_provider(resource) }\n
  • Converge: resource_collection.map { |resource| find_provider(resource) }\n
  • Converge: resource_collection.map { |resource| find_provider(resource) }\n
  • \n
  • Converge: resource_collection.map { |resource| find_provider(resource) }\n
  • \n
  • \n

Opscode Chef - Grundlagen Opscode Chef - Grundlagen Presentation Transcript

  • Enterprise Hosting Workshop Einführung in Opscode Chef Julian Fischer fischer@enterprise-rails.de http://www.enterprise-rails.de
  • Chef
  • ChefInstallationsautomatisierung
  • ChefArchitektur
  • Chef Basics
  • Chef BasicsBegriffe und Konzepte
  • Begriffe und Konzepte Nodes
  • Nodes @railshoster
  • Nodes‣ Auf Nodes wird der chef-client ausgeführt. @railshoster
  • Nodes‣ Auf Nodes wird der chef-client ausgeführt.‣ Ein Node hat eine runlist. @railshoster
  • Nodes‣ Auf Nodes wird der chef-client ausgeführt.‣ Ein Node hat eine runlist.‣ Ein Node hat Attributes. @railshoster
  • Nodes‣ Auf Nodes wird der chef-client ausgeführt.‣ Ein Node hat eine runlist.‣ Ein Node hat Attributes. ‣ Verschachtelte key/value Paare. @railshoster
  • Nodes‣ Auf Nodes wird der chef-client ausgeführt.‣ Ein Node hat eine runlist.‣ Ein Node hat Attributes. ‣ Verschachtelte key/value Paare. ‣ z.B. Versionsnummern, Pfade, ... @railshoster
  • Begriffe und Konzepte Die Runlist
  • Die Runlist @railshoster
  • Die Runlist‣ Zählt auszuführende Rezepte (Recipes) auf. @railshoster
  • Die Runlist‣ Zählt auszuführende Rezepte (Recipes) auf. ‣ Achtung: die Reihenfolge ist wichtig. @railshoster
  • Die Runlist‣ Zählt auszuführende Rezepte (Recipes) auf. ‣ Achtung: die Reihenfolge ist wichtig. ‣ Rezeptabhängigkeiten werden automatisch aufgelöst. @railshoster
  • Die Runlist @railshoster
  • Die Runlist‣ Eine Runlist kann Rollen (Roles) enthalten. @railshoster
  • Die Runlist‣ Eine Runlist kann Rollen (Roles) enthalten.‣ Rollen werden zu einer Liste von Rezepten expandiert. @railshoster
  • Begriffe und Konzepte Roles
  • Roles @railshoster
  • Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. @railshoster
  • Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. ‣ App Server @railshoster
  • Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. ‣ App Server ‣ DB Slave Server @railshoster
  • Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. ‣ App Server ‣ DB Slave Server ‣ Worker Nodes @railshoster
  • Roles @railshoster
  • Roles‣ Rollen haben eine Node-artige Struktur. @railshoster
  • Roles‣ Rollen haben eine Node-artige Struktur. ‣ Haben eine Runlist. @railshoster
  • Roles‣ Rollen haben eine Node-artige Struktur. ‣ Haben eine Runlist. ‣ Haben Attribute. @railshoster
  • Roles‣ Rollen haben eine Node-artige Struktur. ‣ Haben eine Runlist. ‣ Haben Attribute.‣ Jede Rolle wird in eine Liste von auszuführenden Rezepten aufgelöst. @railshoster
  • Node Konfiguration
  • Node Konfiguration Cookbooks
  • „Most of the time you are using Chef,you are writing cookbooks.“ http://wiki.opscode.com/display/chef/Chef+Basics
  • Cookbooks @railshoster
  • Cookbooks‣ Ein Kochbuch kann bestehen aus: @railshoster
  • Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes @railshoster
  • Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions @railshoster
  • Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes @railshoster
  • Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes ‣ Libraries @railshoster
  • Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes ‣ Libraries ‣ Templates @railshoster
  • Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes ‣ Libraries ‣ Templates ‣ Cookbook Files @railshoster
  • Cookbooks @railshoster
  • Cookbooks‣ Syntaktisch gesehen ist ein Cookbook eine Sammlung von Dateien und Verzeichnissen. @railshoster
  • Cookbooks‣ Syntaktisch gesehen ist ein Cookbook eine Sammlung von Dateien und Verzeichnissen.‣ Für gewöhnlichen beschreibt ein Cookbook einen einzelnen Dienst. @railshoster
  • Cookbooks‣ Syntaktisch gesehen ist ein Cookbook eine Sammlung von Dateien und Verzeichnissen.‣ Für gewöhnlichen beschreibt ein Cookbook einen einzelnen Dienst. ‣ Ruby on Rails Application @railshoster
  • Cookbooks‣ Syntaktisch gesehen ist ein Cookbook eine Sammlung von Dateien und Verzeichnissen.‣ Für gewöhnlichen beschreibt ein Cookbook einen einzelnen Dienst. ‣ Ruby on Rails Application ‣ MySQL Service, Redis Service @railshoster
  • Cookbooks‣ Syntaktisch gesehen ist ein Cookbook eine Sammlung von Dateien und Verzeichnissen.‣ Für gewöhnlichen beschreibt ein Cookbook einen einzelnen Dienst. ‣ Ruby on Rails Application ‣ MySQL Service, Redis Service ‣ ... @railshoster
  • Cookbooks sind das Werkzeugzur Wiederverwendung Ihres Chef-Quellcodes.
  • Node Konfiguration Recipes
  • Recipes @railshoster
  • Recipes‣ Ein Rezept beschreibt eine Ressource (Resource). @railshoster
  • Recipes‣ Ein Rezept beschreibt eine Ressource (Resource). ‣ In den Rezepten befindet sich der Großteil des Verhaltens eines Cookbooks. @railshoster
  • Recipes‣ Ein Rezept beschreibt eine Ressource (Resource). ‣ In den Rezepten befindet sich der Großteil des Verhaltens eines Cookbooks. ‣ Ein Rezept kann beliebigen Ruby Code enthalten. @railshoster
  • Node Konfiguration Cookbook Metadata
  • Cookbook Metadaten berschreiben die Abhängigkeiten eines Cookbooks.
  • Cookbook Metadata @railshoster
  • Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks @railshoster
  • Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer @railshoster
  • Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email @railshoster
  • Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email‣ License @railshoster
  • Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email‣ License‣ Version @railshoster
  • Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email‣ License‣ Version‣ ... @railshoster
  • Node Konfiguration Resources
  • Resources @railshoster
  • Resources‣ Repräsentier die zu konfigurierende Entität. @railshoster
  • Resources‣ Repräsentier die zu konfigurierende Entität.‣ Abstrahiert vom eingesetzten Betriebsystem. @railshoster
  • Resources‣ Repräsentier die zu konfigurierende Entität.‣ Abstrahiert vom eingesetzten Betriebsystem.‣ Werden in Recipes und Definitions deklariert. @railshoster
  • Resources‣ Repräsentier die zu konfigurierende Entität.‣ Abstrahiert vom eingesetzten Betriebsystem.‣ Werden in Recipes und Definitions deklariert.‣ Sind die elementaren Einheiten in Chef. @railshoster
  • Resources @railshoster
  • Resources‣ Bespiele @railshoster
  • Resources‣ Bespiele ‣ Resource „Package“ @railshoster
  • Resources‣ Bespiele ‣ Resource „Package“ ‣ Ubuntu: apt-get @railshoster
  • Resources‣ Bespiele ‣ Resource „Package“ ‣ Ubuntu: apt-get ‣ CentOS: YUM @railshoster
  • Node Konfiguration Provider
  • Providers @railshoster
  • Providers‣ Provider sind plattformspezifische Implementierungen einer Ressource. @railshoster
  • Providers‣ Provider sind plattformspezifische Implementierungen einer Ressource. ‣ Package Resource on CentOS > YUM Package Provider @railshoster
  • Providers @railshoster
  • Providers‣ Sichern die Idempotenz der Chef- Aktionen ab. @railshoster
  • Providers‣ Sichern die Idempotenz der Chef- Aktionen ab. ‣ Zweimaliges Aufrufen einer Aktion > Einmaliges Ausführen @railshoster
  • Providers‣ Sichern die Idempotenz der Chef- Aktionen ab. ‣ Zweimaliges Aufrufen einer Aktion > Einmaliges Ausführen ‣ 2 x Installiere Paket „git-core“ > Das Paket wird nur 1x installiert @railshoster
  • Providers @railshoster
  • Providers‣ Ein Node wählt einen Provider für eine bestimmte Ressource per Default. @railshoster
  • Providers‣ Ein Node wählt einen Provider für eine bestimmte Ressource per Default.‣ Eine Resource kann ihren Provider aber auch explizit festlegen. @railshoster
  • Meistens macht man sich keine Gedanken über Provider. Sie sind einfach da.
  • Data Bags
  • „Data bags provide an arbitrary store ofglobally available JSON data.“ http://wiki.opscode.com/display/chef/Data+Bags
  • Data Bags @railshoster
  • Data Bags‣ Sind nicht direkt mit Node oder Role Attributen verbunden. @railshoster
  • Data Bags‣ Sind nicht direkt mit Node oder Role Attributen verbunden.‣ Data Bags werden auf dem Chef- Server gespeichert. Bei Chef-Solo auf dem Node. @railshoster
  • Data Bags‣ Sind nicht direkt mit Node oder Role Attributen verbunden.‣ Data Bags werden auf dem Chef- Server gespeichert. Bei Chef-Solo auf dem Node.‣ Data Bags werden von der Chef-Suche indiziert. @railshoster
  • Data Bags @railshoster
  • Data Bags‣ Rezepte können auf Daten aus den Data Bags zugreifen. @railshoster
  • Data Bags‣ Rezepte können auf Daten aus den Data Bags zugreifen.‣ Rezepte können über die Chef-Suche Data Bags durchsuchen ->Service Discovery in der Installationsautomatisierung. @railshoster
  • Speichern Sie keine sensiblenDaten in gewöhnlichen Data Bags!
  • Verwenden Sieverschlüsselte Data Bags!
  • Encrypted Data Bags @railshoster
  • Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. @railshoster
  • Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. ‣ Passwords @railshoster
  • Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. ‣ Passwords ‣ Access Keys @railshoster
  • Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. ‣ Passwords ‣ Access Keys ‣ Andere Credentials @railshoster
  • Encrypted Data Bags @railshoster
  • Encrypted Data Bags‣ Wenn Chef kompromitiert würde > Bleibt so der Schaden gering. @railshoster
  • Encrypted Data Bags‣ Wenn Chef kompromitiert würde > Bleibt so der Schaden gering.‣ Isolieren unterschiedlicher „Groups of Trust“ durch getrennte encr. Data Bags. z.B. in dem unterschiedliche Dienste unterschiedlicher Teams unterschiedliche Data Bags erhalten. @railshoster
  • Encrypted Data Bags @railshoster
  • Encrypted Data Bags‣ Data Bag keys werden. unverschlüsselt. So kann nach ihnen gesucht bleiben @railshoster
  • Encrypted Data Bags‣ Data Bag keys werden. unverschlüsselt. So kann nach ihnen gesucht bleiben‣ Values werden verschlüsselt und sind somit sicher. @railshoster
  • Encrypted Data Bags‣ Data Bag keys werden. unverschlüsselt. So kann nach ihnen gesucht bleiben‣ Values werden verschlüsselt und sind somit sicher.‣ Shared Schlüssel. Eine Kopie liegt aufFür jedes encrypted Data Bag gibt es einen Key Encryption. dem Server, eine auf dem Rechner, der die Daten entschlüsseln möchte. @railshoster
  • Encrypted Data Bags‣ Data Bag keys werden. unverschlüsselt. So kann nach ihnen gesucht bleiben‣ Values werden verschlüsselt und sind somit sicher.‣ Shared Schlüssel. Eine Kopie liegt aufFür jedes encrypted Data Bag gibt es einen Key Encryption. dem Server, eine auf dem Rechner, der die Daten entschlüsseln möchte.‣ Der shared Key wird als Datei auf die Nodes gelegt. Die Entschlüsselung erfolgt dann transparent durch Chef. @railshoster
  • Encrypted Data Bags @railshoster
  • Encrypted Data Bags‣ Rezepte können also transparent auf verschlüsselte Data Bags zugreifen. Sie merken nichts von der Verschlüsselung. @railshoster
  • Encrypted Data Bags‣ Rezepte können also transparent auf verschlüsselte Data Bags zugreifen. Sie merken nichts von der Verschlüsselung.‣ Knife kan verschlüsselte Data Bags verwenden, in dem die --secret und --secret-file Optionen angegeben werden. @railshoster
  • Chef Suche
  • Chef Suche @railshoster
  • Chef Suche‣ Nur in Verbindung mit Chef-Server. @railshoster
  • Chef Suche‣ Nur in Verbindung mit Chef-Server. ‣ Nicht im Kontext von Chef-Solo. @railshoster
  • Chef Suche‣ Nur in Verbindung mit Chef-Server. ‣ Nicht im Kontext von Chef-Solo.‣ Liefert eine Volltextsuche. @railshoster
  • Chef Suche‣ Nur in Verbindung mit Chef-Server. ‣ Nicht im Kontext von Chef-Solo.‣ Liefert eine Volltextsuche.‣ Basiert auf Apache Solr. @railshoster
  • Chef Suche @railshoster
  • Chef Suche‣ Daten werden in einem Solr Index abgelegt @railshoster
  • Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags @railshoster
  • Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients @railshoster
  • Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients ‣ Nodes @railshoster
  • Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients ‣ Nodes ‣ Roles @railshoster
  • Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients ‣ Nodes ‣ Roles ‣ ... @railshoster
  • Chef Search @railshoster
  • Chef Search‣ Abfragen werden durch den Chef-Server erzeugt. @railshoster
  • Chef Search‣ Abfragen werden durch den Chef-Server erzeugt.‣ Erlaubt den Abruf von Informationen über sämtliche Knoten sowie die restliche Inftrastruktur. @railshoster
  • Chef Search @railshoster
  • Chef Search‣ Methoden zur Verwendung der Chef- Suche @railshoster
  • Chef Search‣ Methoden zur Verwendung der Chef- Suche ‣ Verwendung des search Kommandos in Rezepten. @railshoster
  • Chef Search‣ Methoden zur Verwendung der Chef- Suche ‣ Verwendung des search Kommandos in Rezepten. ‣ Verwendung des knive search Kommandos an der Kommandozeile. @railshoster
  • Chef Suche @railshoster
  • Chef Suche‣ Sehr wichtig für die Erstellung von Rezepten. @railshoster
  • Chef Suche‣ Sehr wichtig für die Erstellung von Rezepten. ‣ App Server Rezept kann search Verwenden, um die zugehörige Datenbank zu finden. @railshoster
  • Chef Suche @railshoster
  • Chef Suche‣ Knive search Beispiele @railshoster
  • Chef Suche‣ Knive search Beispiele ‣ knife search role "name:production*" @railshoster
  • Chef Suche‣ Knive search Beispiele ‣ knife search role "name:production*" ‣ knife search node "name:app*" @railshoster
  • Chef Suche‣ Knive search Beispiele ‣ knife search role "name:production*" ‣ knife search node "name:app*" ‣ knife search client "name:c*" @railshoster
  • Chef Suche @railshoster
  • Chef Suche‣ Verwendung von Databagnamen zur Suche von Databags: @railshoster
  • Chef Suche‣ Verwendung von Databagnamen zur Suche von Databags: ‣ knife search my_bag "key:value" @railshoster
  • Chef Run
  • Chef RunKonvergenz
  • Konvergenz @railshoster
  • Konvergenz‣ Chef Run = Konvergenz @railshoster
  • Konvergenz‣ Chef Run = Konvergenz‣ Das System konvergiert mit jedem Lauf und jeder Aktion hin zum gewünschten Systemzustand. @railshoster
  • Konvergenz‣ Chef Run = Konvergenz‣ Das System konvergiert mit jedem Lauf und jeder Aktion hin zum gewünschten Systemzustand.‣ Ziel ist das ein einzelner Chef-Run das System in seinen Zielzustand überführt! Das ist das Designziel bei der Erstellung von Cookbooks und Runlists. @railshoster
  • Konvergenz @railshoster
  • Konvergenz‣ Chef erneut zu starten, nach dem Chef- Lauf fehlgeshclagen ist, sollte das System näher zu seinem Zielzustand bringen > Konvergenz @railshoster
  • Chef RunDer Run Prozess
  • Der Run Prozess @railshoster
  • Der Run Prozess1. Erstelle, registere, authentifizere den Node @railshoster
  • Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks @railshoster
  • Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks3. Kompiliere die Resource Collection @railshoster
  • Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks3. Kompiliere die Resource Collection4. Konfigure die Nodes @railshoster
  • Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks3. Kompiliere die Resource Collection4. Konfigure die Nodes5. Führe notification Handler aus @railshoster
  • Der Run Prozess1/5 Build, Register,Authenticate Node
  • Build the Node
  • Build the Node @railshoster
  • Build the Node‣ Zuerst erzeugt Chef einen Node @railshoster
  • Build the Node‣ Zuerst erzeugt Chef einen Node ‣ Ohai discovery der OS Details. @railshoster
  • Build the Node‣ Zuerst erzeugt Chef einen Node ‣ Ohai discovery der OS Details. ‣ Hole Infos über den Node vom Chef-Server (! Solo). @railshoster
  • Build the Node‣ Zuerst erzeugt Chef einen Node ‣ Ohai discovery der OS Details. ‣ Hole Infos über den Node vom Chef-Server (! Solo). ‣ Füge JSON Attributes oder Recipes hinzu @railshoster
  • Build the Node‣ Zuerst erzeugt Chef einen Node ‣ Ohai discovery der OS Details. ‣ Hole Infos über den Node vom Chef-Server (! Solo). ‣ Füge JSON Attributes oder Recipes hinzu ‣ Füge Ohai Attributes hinzu @railshoster
  • Register @ Chef-Server
  • Register @ Chef-Server @railshoster
  • Register @ Chef-Server‣ Überprüfe die private key Datei in /etc/chef/ client.pem @railshoster
  • Register @ Chef-Server‣ Überprüfe die private key Datei in /etc/chef/ client.pem‣ Gehe von einem neuen Knoten aus, falls nicht. @railshoster
  • Register @ Chef-Server‣ Überprüfe die private key Datei in /etc/chef/ client.pem‣ Gehe von einem neuen Knoten aus, falls nicht. ‣ Verwende die chef-validator-client identity um einen neuen Knoten zu registrieren. > Generiert eine client.pem @railshoster
  • Register @ Chef-Server‣ Überprüfe die private key Datei in /etc/chef/ client.pem‣ Gehe von einem neuen Knoten aus, falls nicht. ‣ Verwende die chef-validator-client identity um einen neuen Knoten zu registrieren. > Generiert eine client.pem‣ Register @ Chef-Server using client.pem @railshoster
  • The run process2/5 Synchronize Cookbooks
  • Synchronize Cookbooks @railshoster
  • Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: @railshoster
  • Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries @railshoster
  • Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes @railshoster
  • Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes ‣ Definitions @railshoster
  • Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes ‣ Definitions ‣ Recipes in all Cookbooks @railshoster
  • Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes ‣ Definitions ‣ Recipes in all Cookbooks‣ Lokales Caching! @railshoster
  • The run process3/5 Compile Resource Collection
  • Compile Res. Collection @railshoster
  • Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten @railshoster
  • Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten ‣ Load Libraries @railshoster
  • Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten ‣ Load Libraries ‣ Load Attributes @railshoster
  • Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten ‣ Load Libraries ‣ Load Attributes ‣ Load Definitions @railshoster
  • Compile Res. Collection @railshoster
  • Compile Res. Collection‣ Assemble resources for the Node @railshoster
  • Compile Res. Collection‣ Assemble resources for the Node ‣ Lade Rezepte @railshoster
  • Compile Res. Collection‣ Assemble resources for the Node ‣ Lade Rezepte ‣ Erzeuge eine Resource Collection @railshoster
  • Compile Res. Collection‣ Assemble resources for the Node ‣ Lade Rezepte ‣ Erzeuge eine Resource Collection ‣ Evaluiere Ruby Code (außerhalb von Resources) @railshoster
  • Der Run Prozess4/5 Configure Node
  • Configure Node @railshoster
  • Configure Node‣ Bereit zur Systemkonfiguration @railshoster
  • Configure Node‣ Bereit zur Systemkonfiguration‣ Konvergenz Pseudo Code: resource_collection.map do |resource| find_provider(resource) end @railshoster
  • Configure Node‣ Bereit zur Systemkonfiguration‣ Konvergenz Pseudo Code: resource_collection.map do |resource| find_provider(resource) end‣ Speichere den Node state auf die Platte oder auf dem chef-server (=> index) @railshoster
  • The run process5/5 Run Notification Handlers
  • Execute Exeption Handlers
  • Talk Resources @railshoster
  • Talk Resources ‣ Article about Chef Basics http://wiki.opscode.com/display/chef/ Chef+Basics @railshoster
  • Talk Resources ‣ Article about Chef Basics http://wiki.opscode.com/display/chef/ Chef+Basics ‣ Opscode Hosted Chef http://www.opscode.com/hosted-chef/ @railshoster