Opscode Chef - Grundlagen

2.587 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Opscode Chef - Grundlagen

  1. 1. Enterprise Hosting Workshop Einführung in Opscode Chef Julian Fischer fischer@enterprise-rails.de http://www.enterprise-rails.de
  2. 2. Chef
  3. 3. ChefInstallationsautomatisierung
  4. 4. ChefArchitektur
  5. 5. Chef Basics
  6. 6. Chef BasicsBegriffe und Konzepte
  7. 7. Begriffe und Konzepte Nodes
  8. 8. Nodes @railshoster
  9. 9. Nodes‣ Auf Nodes wird der chef-client ausgeführt. @railshoster
  10. 10. Nodes‣ Auf Nodes wird der chef-client ausgeführt.‣ Ein Node hat eine runlist. @railshoster
  11. 11. Nodes‣ Auf Nodes wird der chef-client ausgeführt.‣ Ein Node hat eine runlist.‣ Ein Node hat Attributes. @railshoster
  12. 12. Nodes‣ Auf Nodes wird der chef-client ausgeführt.‣ Ein Node hat eine runlist.‣ Ein Node hat Attributes. ‣ Verschachtelte key/value Paare. @railshoster
  13. 13. 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
  14. 14. Begriffe und Konzepte Die Runlist
  15. 15. Die Runlist @railshoster
  16. 16. Die Runlist‣ Zählt auszuführende Rezepte (Recipes) auf. @railshoster
  17. 17. Die Runlist‣ Zählt auszuführende Rezepte (Recipes) auf. ‣ Achtung: die Reihenfolge ist wichtig. @railshoster
  18. 18. Die Runlist‣ Zählt auszuführende Rezepte (Recipes) auf. ‣ Achtung: die Reihenfolge ist wichtig. ‣ Rezeptabhängigkeiten werden automatisch aufgelöst. @railshoster
  19. 19. Die Runlist @railshoster
  20. 20. Die Runlist‣ Eine Runlist kann Rollen (Roles) enthalten. @railshoster
  21. 21. Die Runlist‣ Eine Runlist kann Rollen (Roles) enthalten.‣ Rollen werden zu einer Liste von Rezepten expandiert. @railshoster
  22. 22. Begriffe und Konzepte Roles
  23. 23. Roles @railshoster
  24. 24. Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. @railshoster
  25. 25. Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. ‣ App Server @railshoster
  26. 26. Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. ‣ App Server ‣ DB Slave Server @railshoster
  27. 27. Roles‣ Rollen werden verwendet, um gleichartige Nodes zu verwalten. ‣ App Server ‣ DB Slave Server ‣ Worker Nodes @railshoster
  28. 28. Roles @railshoster
  29. 29. Roles‣ Rollen haben eine Node-artige Struktur. @railshoster
  30. 30. Roles‣ Rollen haben eine Node-artige Struktur. ‣ Haben eine Runlist. @railshoster
  31. 31. Roles‣ Rollen haben eine Node-artige Struktur. ‣ Haben eine Runlist. ‣ Haben Attribute. @railshoster
  32. 32. 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
  33. 33. Node Konfiguration
  34. 34. Node Konfiguration Cookbooks
  35. 35. „Most of the time you are using Chef,you are writing cookbooks.“ http://wiki.opscode.com/display/chef/Chef+Basics
  36. 36. Cookbooks @railshoster
  37. 37. Cookbooks‣ Ein Kochbuch kann bestehen aus: @railshoster
  38. 38. Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes @railshoster
  39. 39. Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions @railshoster
  40. 40. Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes @railshoster
  41. 41. Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes ‣ Libraries @railshoster
  42. 42. Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes ‣ Libraries ‣ Templates @railshoster
  43. 43. Cookbooks‣ Ein Kochbuch kann bestehen aus: ‣ Recipes ‣ Resource Definitions ‣ Attributes ‣ Libraries ‣ Templates ‣ Cookbook Files @railshoster
  44. 44. Cookbooks @railshoster
  45. 45. Cookbooks‣ Syntaktisch gesehen ist ein Cookbook eine Sammlung von Dateien und Verzeichnissen. @railshoster
  46. 46. Cookbooks‣ Syntaktisch gesehen ist ein Cookbook eine Sammlung von Dateien und Verzeichnissen.‣ Für gewöhnlichen beschreibt ein Cookbook einen einzelnen Dienst. @railshoster
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. Cookbooks sind das Werkzeugzur Wiederverwendung Ihres Chef-Quellcodes.
  51. 51. Node Konfiguration Recipes
  52. 52. Recipes @railshoster
  53. 53. Recipes‣ Ein Rezept beschreibt eine Ressource (Resource). @railshoster
  54. 54. Recipes‣ Ein Rezept beschreibt eine Ressource (Resource). ‣ In den Rezepten befindet sich der Großteil des Verhaltens eines Cookbooks. @railshoster
  55. 55. 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
  56. 56. Node Konfiguration Cookbook Metadata
  57. 57. Cookbook Metadaten berschreiben die Abhängigkeiten eines Cookbooks.
  58. 58. Cookbook Metadata @railshoster
  59. 59. Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks @railshoster
  60. 60. Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer @railshoster
  61. 61. Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email @railshoster
  62. 62. Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email‣ License @railshoster
  63. 63. Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email‣ License‣ Version @railshoster
  64. 64. Cookbook Metadata‣ Abhängigkeiten zu anderen Cookbooks‣ Maintainer‣ Maintainer‘s email‣ License‣ Version‣ ... @railshoster
  65. 65. Node Konfiguration Resources
  66. 66. Resources @railshoster
  67. 67. Resources‣ Repräsentier die zu konfigurierende Entität. @railshoster
  68. 68. Resources‣ Repräsentier die zu konfigurierende Entität.‣ Abstrahiert vom eingesetzten Betriebsystem. @railshoster
  69. 69. Resources‣ Repräsentier die zu konfigurierende Entität.‣ Abstrahiert vom eingesetzten Betriebsystem.‣ Werden in Recipes und Definitions deklariert. @railshoster
  70. 70. 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
  71. 71. Resources @railshoster
  72. 72. Resources‣ Bespiele @railshoster
  73. 73. Resources‣ Bespiele ‣ Resource „Package“ @railshoster
  74. 74. Resources‣ Bespiele ‣ Resource „Package“ ‣ Ubuntu: apt-get @railshoster
  75. 75. Resources‣ Bespiele ‣ Resource „Package“ ‣ Ubuntu: apt-get ‣ CentOS: YUM @railshoster
  76. 76. Node Konfiguration Provider
  77. 77. Providers @railshoster
  78. 78. Providers‣ Provider sind plattformspezifische Implementierungen einer Ressource. @railshoster
  79. 79. Providers‣ Provider sind plattformspezifische Implementierungen einer Ressource. ‣ Package Resource on CentOS > YUM Package Provider @railshoster
  80. 80. Providers @railshoster
  81. 81. Providers‣ Sichern die Idempotenz der Chef- Aktionen ab. @railshoster
  82. 82. Providers‣ Sichern die Idempotenz der Chef- Aktionen ab. ‣ Zweimaliges Aufrufen einer Aktion > Einmaliges Ausführen @railshoster
  83. 83. 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
  84. 84. Providers @railshoster
  85. 85. Providers‣ Ein Node wählt einen Provider für eine bestimmte Ressource per Default. @railshoster
  86. 86. Providers‣ Ein Node wählt einen Provider für eine bestimmte Ressource per Default.‣ Eine Resource kann ihren Provider aber auch explizit festlegen. @railshoster
  87. 87. Meistens macht man sich keine Gedanken über Provider. Sie sind einfach da.
  88. 88. Data Bags
  89. 89. „Data bags provide an arbitrary store ofglobally available JSON data.“ http://wiki.opscode.com/display/chef/Data+Bags
  90. 90. Data Bags @railshoster
  91. 91. Data Bags‣ Sind nicht direkt mit Node oder Role Attributen verbunden. @railshoster
  92. 92. 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
  93. 93. 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
  94. 94. Data Bags @railshoster
  95. 95. Data Bags‣ Rezepte können auf Daten aus den Data Bags zugreifen. @railshoster
  96. 96. 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
  97. 97. Speichern Sie keine sensiblenDaten in gewöhnlichen Data Bags!
  98. 98. Verwenden Sieverschlüsselte Data Bags!
  99. 99. Encrypted Data Bags @railshoster
  100. 100. Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. @railshoster
  101. 101. Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. ‣ Passwords @railshoster
  102. 102. Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. ‣ Passwords ‣ Access Keys @railshoster
  103. 103. Encrypted Data Bags‣ Gut zur Speicherung sensibler Informationen, wie z.B. ‣ Passwords ‣ Access Keys ‣ Andere Credentials @railshoster
  104. 104. Encrypted Data Bags @railshoster
  105. 105. Encrypted Data Bags‣ Wenn Chef kompromitiert würde > Bleibt so der Schaden gering. @railshoster
  106. 106. 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
  107. 107. Encrypted Data Bags @railshoster
  108. 108. Encrypted Data Bags‣ Data Bag keys werden. unverschlüsselt. So kann nach ihnen gesucht bleiben @railshoster
  109. 109. Encrypted Data Bags‣ Data Bag keys werden. unverschlüsselt. So kann nach ihnen gesucht bleiben‣ Values werden verschlüsselt und sind somit sicher. @railshoster
  110. 110. 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
  111. 111. 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
  112. 112. Encrypted Data Bags @railshoster
  113. 113. Encrypted Data Bags‣ Rezepte können also transparent auf verschlüsselte Data Bags zugreifen. Sie merken nichts von der Verschlüsselung. @railshoster
  114. 114. 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
  115. 115. Chef Suche
  116. 116. Chef Suche @railshoster
  117. 117. Chef Suche‣ Nur in Verbindung mit Chef-Server. @railshoster
  118. 118. Chef Suche‣ Nur in Verbindung mit Chef-Server. ‣ Nicht im Kontext von Chef-Solo. @railshoster
  119. 119. Chef Suche‣ Nur in Verbindung mit Chef-Server. ‣ Nicht im Kontext von Chef-Solo.‣ Liefert eine Volltextsuche. @railshoster
  120. 120. Chef Suche‣ Nur in Verbindung mit Chef-Server. ‣ Nicht im Kontext von Chef-Solo.‣ Liefert eine Volltextsuche.‣ Basiert auf Apache Solr. @railshoster
  121. 121. Chef Suche @railshoster
  122. 122. Chef Suche‣ Daten werden in einem Solr Index abgelegt @railshoster
  123. 123. Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags @railshoster
  124. 124. Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients @railshoster
  125. 125. Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients ‣ Nodes @railshoster
  126. 126. Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients ‣ Nodes ‣ Roles @railshoster
  127. 127. Chef Suche‣ Daten werden in einem Solr Index abgelegt ‣ Data Bags ‣ API Clients ‣ Nodes ‣ Roles ‣ ... @railshoster
  128. 128. Chef Search @railshoster
  129. 129. Chef Search‣ Abfragen werden durch den Chef-Server erzeugt. @railshoster
  130. 130. Chef Search‣ Abfragen werden durch den Chef-Server erzeugt.‣ Erlaubt den Abruf von Informationen über sämtliche Knoten sowie die restliche Inftrastruktur. @railshoster
  131. 131. Chef Search @railshoster
  132. 132. Chef Search‣ Methoden zur Verwendung der Chef- Suche @railshoster
  133. 133. Chef Search‣ Methoden zur Verwendung der Chef- Suche ‣ Verwendung des search Kommandos in Rezepten. @railshoster
  134. 134. Chef Search‣ Methoden zur Verwendung der Chef- Suche ‣ Verwendung des search Kommandos in Rezepten. ‣ Verwendung des knive search Kommandos an der Kommandozeile. @railshoster
  135. 135. Chef Suche @railshoster
  136. 136. Chef Suche‣ Sehr wichtig für die Erstellung von Rezepten. @railshoster
  137. 137. Chef Suche‣ Sehr wichtig für die Erstellung von Rezepten. ‣ App Server Rezept kann search Verwenden, um die zugehörige Datenbank zu finden. @railshoster
  138. 138. Chef Suche @railshoster
  139. 139. Chef Suche‣ Knive search Beispiele @railshoster
  140. 140. Chef Suche‣ Knive search Beispiele ‣ knife search role "name:production*" @railshoster
  141. 141. Chef Suche‣ Knive search Beispiele ‣ knife search role "name:production*" ‣ knife search node "name:app*" @railshoster
  142. 142. Chef Suche‣ Knive search Beispiele ‣ knife search role "name:production*" ‣ knife search node "name:app*" ‣ knife search client "name:c*" @railshoster
  143. 143. Chef Suche @railshoster
  144. 144. Chef Suche‣ Verwendung von Databagnamen zur Suche von Databags: @railshoster
  145. 145. Chef Suche‣ Verwendung von Databagnamen zur Suche von Databags: ‣ knife search my_bag "key:value" @railshoster
  146. 146. Chef Run
  147. 147. Chef RunKonvergenz
  148. 148. Konvergenz @railshoster
  149. 149. Konvergenz‣ Chef Run = Konvergenz @railshoster
  150. 150. Konvergenz‣ Chef Run = Konvergenz‣ Das System konvergiert mit jedem Lauf und jeder Aktion hin zum gewünschten Systemzustand. @railshoster
  151. 151. 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
  152. 152. Konvergenz @railshoster
  153. 153. Konvergenz‣ Chef erneut zu starten, nach dem Chef- Lauf fehlgeshclagen ist, sollte das System näher zu seinem Zielzustand bringen > Konvergenz @railshoster
  154. 154. Chef RunDer Run Prozess
  155. 155. Der Run Prozess @railshoster
  156. 156. Der Run Prozess1. Erstelle, registere, authentifizere den Node @railshoster
  157. 157. Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks @railshoster
  158. 158. Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks3. Kompiliere die Resource Collection @railshoster
  159. 159. Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks3. Kompiliere die Resource Collection4. Konfigure die Nodes @railshoster
  160. 160. Der Run Prozess1. Erstelle, registere, authentifizere den Node2. Synchronisiere die Cookbooks3. Kompiliere die Resource Collection4. Konfigure die Nodes5. Führe notification Handler aus @railshoster
  161. 161. Der Run Prozess1/5 Build, Register,Authenticate Node
  162. 162. Build the Node
  163. 163. Build the Node @railshoster
  164. 164. Build the Node‣ Zuerst erzeugt Chef einen Node @railshoster
  165. 165. Build the Node‣ Zuerst erzeugt Chef einen Node ‣ Ohai discovery der OS Details. @railshoster
  166. 166. Build the Node‣ Zuerst erzeugt Chef einen Node ‣ Ohai discovery der OS Details. ‣ Hole Infos über den Node vom Chef-Server (! Solo). @railshoster
  167. 167. 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
  168. 168. 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
  169. 169. Register @ Chef-Server
  170. 170. Register @ Chef-Server @railshoster
  171. 171. Register @ Chef-Server‣ Überprüfe die private key Datei in /etc/chef/ client.pem @railshoster
  172. 172. Register @ Chef-Server‣ Überprüfe die private key Datei in /etc/chef/ client.pem‣ Gehe von einem neuen Knoten aus, falls nicht. @railshoster
  173. 173. 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
  174. 174. 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
  175. 175. The run process2/5 Synchronize Cookbooks
  176. 176. Synchronize Cookbooks @railshoster
  177. 177. Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: @railshoster
  178. 178. Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries @railshoster
  179. 179. Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes @railshoster
  180. 180. Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes ‣ Definitions @railshoster
  181. 181. Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes ‣ Definitions ‣ Recipes in all Cookbooks @railshoster
  182. 182. Synchronize Cookbooks‣ Chef-Client > Chef-Server > Abrufen von: ‣ Libraries ‣ Attributes ‣ Definitions ‣ Recipes in all Cookbooks‣ Lokales Caching! @railshoster
  183. 183. The run process3/5 Compile Resource Collection
  184. 184. Compile Res. Collection @railshoster
  185. 185. Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten @railshoster
  186. 186. Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten ‣ Load Libraries @railshoster
  187. 187. Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten ‣ Load Libraries ‣ Load Attributes @railshoster
  188. 188. Compile Res. Collection‣ Zusammensetzen der Ressourcen für den Knoten ‣ Load Libraries ‣ Load Attributes ‣ Load Definitions @railshoster
  189. 189. Compile Res. Collection @railshoster
  190. 190. Compile Res. Collection‣ Assemble resources for the Node @railshoster
  191. 191. Compile Res. Collection‣ Assemble resources for the Node ‣ Lade Rezepte @railshoster
  192. 192. Compile Res. Collection‣ Assemble resources for the Node ‣ Lade Rezepte ‣ Erzeuge eine Resource Collection @railshoster
  193. 193. Compile Res. Collection‣ Assemble resources for the Node ‣ Lade Rezepte ‣ Erzeuge eine Resource Collection ‣ Evaluiere Ruby Code (außerhalb von Resources) @railshoster
  194. 194. Der Run Prozess4/5 Configure Node
  195. 195. Configure Node @railshoster
  196. 196. Configure Node‣ Bereit zur Systemkonfiguration @railshoster
  197. 197. Configure Node‣ Bereit zur Systemkonfiguration‣ Konvergenz Pseudo Code: resource_collection.map do |resource| find_provider(resource) end @railshoster
  198. 198. 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
  199. 199. The run process5/5 Run Notification Handlers
  200. 200. Execute Exeption Handlers
  201. 201. Talk Resources @railshoster
  202. 202. Talk Resources ‣ Article about Chef Basics http://wiki.opscode.com/display/chef/ Chef+Basics @railshoster
  203. 203. Talk Resources ‣ Article about Chef Basics http://wiki.opscode.com/display/chef/ Chef+Basics ‣ Opscode Hosted Chef http://www.opscode.com/hosted-chef/ @railshoster

×