From 2f372c8db9abb850adf621ec0fb735aa87d9c522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sat, 15 Feb 2014 17:36:34 +0100 Subject: [PATCH] presentation: directory structure of a cookbook --- presentation/presentation.md | 54 ++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/presentation/presentation.md b/presentation/presentation.md index 980483d..ecbb5c0 100644 --- a/presentation/presentation.md +++ b/presentation/presentation.md @@ -147,12 +147,54 @@ Note: ### Chef-Einführung: Aufbau eines Cookbook - - Attribute - - Recipes - - Templates - - Definitions - - Providers - - Resources + +```bash +▾ modules-0.2.0/ + ▾ attributes/ + default.rb + ▾ files/ + ▾ default/ + modules-load.conf + modules-load_header + ▸ libraries/ + ▾ providers/ + default.rb + multi.rb + ▾ recipes/ + config.rb + default.rb + install_attributes.rb + ▾ resources/ + default.rb + multi.rb + ▾ templates/ + ▾ default/ + modules.conf.erb + metadata.json + metadata.rb + Rakefile + README.md +``` + +Note: + - Hier ein Beispiel, wie ein cookbook aufgebaut ist. + - modules cookbook: Linux Kernel Module nachladen, maintained auf github + - Verzeichnisstruktur vorgeben - Vorteil man findet sich in neuen Cookbooks + sofort zu recht + - Für das entwickeln: Editor mit Verzeichnisfunktion empfohlen + - hier nochmal kurz ein paar wichtige Verzeichnisse: + - attributes: setzt Standartwerte für das Cookbook, können von Roles/Nodes + oder anderen Cookbooks überschrieben werden + - resourcen & providers: Chef liefert schon eine Menge sinnvoller Resourcen + mit, man kann in seinem cookbooks weitere erstellen, in diesem Fall - + modules resource mit der man in anderen cookbooks bestimmte kernel module laden + kann + - recipies: enthält die genannten Recipies, wenn man nichts an gibt wirdei + default.rb geladen + - files: Im files-Verzeichnis kann man statische Konfigurations-Dateien ablegen + - templates: meistens jedoch will Konfigurationsdateien dynamisch + generieren - in templates kann man mithilfe von ERB generieren, + vergleichbar mit erzeugen von Webseiten, gleich ein Beispiel dazu ### Chef-Einführung: Code-Beispiel