chef: erb-Template eingefügt

This commit is contained in:
Jörg Thalheim 2014-03-23 23:40:13 +01:00
parent 15b4587fe4
commit 6622f07302
3 changed files with 77 additions and 36 deletions

View File

@ -23,6 +23,29 @@
\usepackage[utf8]{inputenc}
\usepackage{ucs}
% directory listing im Chefabschnitt
\usepackage{chngcntr}
\newcounter{treeline}
\newcommand{\treeroot}[1]{% Title
\node[above] at (0,0) {#1};%
\setcounter{treeline}{0}
}
\newcommand{\treeentry}[2]{% Title, Level
\draw[->] (#2-1,-\value{treeline}/2) -- (#2-1,-\value{treeline}/2-0.5) --
(#2+0.5,-\value{treeline}/2-0.5) node[right] {#1};
\stepcounter{treeline}
}
\newcommand{\altentry}[2]{% Title, Level
\draw[->] (#2-1,-\value{treeline}/2) -- (#2-1,-\value{treeline}/2-0.5) --
(#2+0.5,-\value{treeline}/2-0.5) node[right] {#1};
\foreach \x in {1,...,#2}
{ \draw (\x-1,-\value{treeline}/2) -- (\x-1,-\value{treeline}/2-0.5);
}
\stepcounter{treeline}
}
\RequirePackage{mymacros}
@ -44,7 +67,6 @@
\title{LCTP Praktikum Wintersemester 2013 / 2014}
\begin{document}
\input{hardware}
\input{cluster-layout}

View File

@ -47,38 +47,38 @@ Es gibt mehrere Möglichkeiten \emph{Chef} zu betreiben:
Hier ist die Ordnerstruktur des Cookbook
\href{https://github.com/opscode-cookbooks/apt}{apt} dargestellt:
\begin{lstlisting}
> apt-2.3.4/
> attributes/
default.rb
> files/
> default/
apt-proxy-v2.conf
> libraries/
helpers.rb
network.rb
> providers/
preference.rb
repository.rb
> recipes/
cacher-client.rb
cacher-ng.rb
default.rb
> resources/
preference.rb
repository.rb
> templates/
> debian-6.0/
> default/
01proxy.erb
acng.conf.erb
> ubuntu-10.04/
acng.conf.erb
CHANGELOG.md
metadata.json
metadata.rb
README.md
\end{lstlisting}
\begin{tikzpicture}
\treeroot{apt-2.3.4}
\altentry{attributes}{1}
\altentry{default.rb}{2}
\altentry{files}{1}
\altentry{default}{2}
\treeentry{apt-proxy-v2.conf}{3}
\altentry{libraries}{1}
\altentry{helpers.rb}{2}
\altentry{network.rb}{2}
\altentry{providers}{1}
\altentry{preference.rb}{2}
\altentry{repository.rb}{2}
\altentry{recipes}{1}
\altentry{cacher-client.rb}{2}
\altentry{cacher-ng.rb}{2}
\altentry{default.rb}{2}
\altentry{resources}{1}
\altentry{preference.rb}{2}
\altentry{repository.rb}{2}
\altentry{templates}{1}
\altentry{debian-6.0}{2}
\altentry{default}{2}
\altentry{01proxy.erb}{3}
\altentry{acng.conf.erb}{3}
\altentry{ubuntu-10.04}{2}
\treeentry{acng.conf.erb}{3}
\altentry{CHANGELOG}{1}
\altentry{metadata.json}{1}
\altentry{metadata.rb}{1}
\altentry{README.md}{1}
\end{tikzpicture}
Die Verzeichnisnamen sind fest vorgeben. Jedes Verzeichnis hat seine eigene
Funktion. Dies hat den Vorteil, das man sich schnell in neuen Cookbooks zurecht
@ -124,6 +124,25 @@ findet. Hier nochmal die einzelnen Verzeichnisse im Überblick:
eine Beschreibung sowie Abhängigkeiten zu anderen Cookbooks angeben werden.
\end{description}
Beispiel ERB-Template:
\begin{lstlisting}
Diese Zeile wird beim Render ohne Aenderung uebernommen
<%# Ein Kommentar%>
Diese Node heisst: <%= @node.name %>
<% if node[:platform] == "ubuntu" -%> <%# Bedingte Anweisung %>
Diese Zeile erscheint auf Ubuntu-basierten Nodes.
<% else %>
Diese Zeile erscheint auf nicht Ubuntu-basierten Nodes.
<% end -%>
<%# Listet in einer Schleife alle Blockdevices der Node auf %>
<% @node.block_device.each do |block_device, attributes| %>
<%= block_device %>: <%= attributes.join(", ") %>
<% end %>
\end{lstlisting}
\textbf{Ablauf einer Provisonierung}
\label{ablauf_einer_provisionierung}

View File

@ -48,7 +48,7 @@ unerlässlich.
Der folgende Test wurde aus dem NTP-Cookbook
(~\ref{ssub:einrichtung-der-netzwerkdienste}) entnommen.
\begin{lstlisting}
\begin{lstlisting}[language=Ruby]
require_relative '../spec_helper'
describe 'ntp::default' do
@ -102,7 +102,7 @@ werden. Minitest Handler durchsucht beim Durchlauf in jedem anderen cookbook, in
den Unterordnern in \emph{files/} nach dem Verzeichnis \emph{test} und lädt
alle Tests aus diesem Verzeichnis. Über die Beschreibungszeile:
\begin{lstlisting}
\begin{lstlisting}[language=Ruby]
describe_recipe "ntp::default" do #
#...
end
@ -115,7 +115,7 @@ ebenfalls ausgeführt. Minitest Handler erweitert Rspec um nützliche Methoden u
den Status des Systems zu überprüfen. Hier ein Beispiel aus dem bind cookbook,
welches in Abschnitt~\ref{ssub:einrichtung-der-netzwerkdienste} erwähnt wurde:
\begin{lstlisting}
\begin{lstlisting}[language=Ruby]
describe_recipe 'bind::default' do
it "starts the named daemon" do
service("bind9").must_be_running