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[utf8]{inputenc}
\usepackage{ucs} \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} \RequirePackage{mymacros}
@ -44,7 +67,6 @@
\title{LCTP Praktikum Wintersemester 2013 / 2014} \title{LCTP Praktikum Wintersemester 2013 / 2014}
\begin{document} \begin{document}
\input{hardware} \input{hardware}
\input{cluster-layout} \input{cluster-layout}

View File

@ -47,38 +47,38 @@ Es gibt mehrere Möglichkeiten \emph{Chef} zu betreiben:
Hier ist die Ordnerstruktur des Cookbook Hier ist die Ordnerstruktur des Cookbook
\href{https://github.com/opscode-cookbooks/apt}{apt} dargestellt: \href{https://github.com/opscode-cookbooks/apt}{apt} dargestellt:
\begin{lstlisting} \begin{tikzpicture}
> apt-2.3.4/ \treeroot{apt-2.3.4}
> attributes/ \altentry{attributes}{1}
default.rb \altentry{default.rb}{2}
> files/ \altentry{files}{1}
> default/ \altentry{default}{2}
apt-proxy-v2.conf \treeentry{apt-proxy-v2.conf}{3}
> libraries/ \altentry{libraries}{1}
helpers.rb \altentry{helpers.rb}{2}
network.rb \altentry{network.rb}{2}
> providers/ \altentry{providers}{1}
preference.rb \altentry{preference.rb}{2}
repository.rb \altentry{repository.rb}{2}
> recipes/ \altentry{recipes}{1}
cacher-client.rb \altentry{cacher-client.rb}{2}
cacher-ng.rb \altentry{cacher-ng.rb}{2}
default.rb \altentry{default.rb}{2}
> resources/ \altentry{resources}{1}
preference.rb \altentry{preference.rb}{2}
repository.rb \altentry{repository.rb}{2}
> templates/ \altentry{templates}{1}
> debian-6.0/ \altentry{debian-6.0}{2}
> default/ \altentry{default}{2}
01proxy.erb \altentry{01proxy.erb}{3}
acng.conf.erb \altentry{acng.conf.erb}{3}
> ubuntu-10.04/ \altentry{ubuntu-10.04}{2}
acng.conf.erb \treeentry{acng.conf.erb}{3}
CHANGELOG.md \altentry{CHANGELOG}{1}
metadata.json \altentry{metadata.json}{1}
metadata.rb \altentry{metadata.rb}{1}
README.md \altentry{README.md}{1}
\end{lstlisting} \end{tikzpicture}
Die Verzeichnisnamen sind fest vorgeben. Jedes Verzeichnis hat seine eigene Die Verzeichnisnamen sind fest vorgeben. Jedes Verzeichnis hat seine eigene
Funktion. Dies hat den Vorteil, das man sich schnell in neuen Cookbooks zurecht 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. eine Beschreibung sowie Abhängigkeiten zu anderen Cookbooks angeben werden.
\end{description} \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} \textbf{Ablauf einer Provisonierung}
\label{ablauf_einer_provisionierung} \label{ablauf_einer_provisionierung}

View File

@ -48,7 +48,7 @@ unerlässlich.
Der folgende Test wurde aus dem NTP-Cookbook Der folgende Test wurde aus dem NTP-Cookbook
(~\ref{ssub:einrichtung-der-netzwerkdienste}) entnommen. (~\ref{ssub:einrichtung-der-netzwerkdienste}) entnommen.
\begin{lstlisting} \begin{lstlisting}[language=Ruby]
require_relative '../spec_helper' require_relative '../spec_helper'
describe 'ntp::default' do 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 den Unterordnern in \emph{files/} nach dem Verzeichnis \emph{test} und lädt
alle Tests aus diesem Verzeichnis. Über die Beschreibungszeile: alle Tests aus diesem Verzeichnis. Über die Beschreibungszeile:
\begin{lstlisting} \begin{lstlisting}[language=Ruby]
describe_recipe "ntp::default" do # describe_recipe "ntp::default" do #
#... #...
end 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, 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: welches in Abschnitt~\ref{ssub:einrichtung-der-netzwerkdienste} erwähnt wurde:
\begin{lstlisting} \begin{lstlisting}[language=Ruby]
describe_recipe 'bind::default' do describe_recipe 'bind::default' do
it "starts the named daemon" do it "starts the named daemon" do
service("bind9").must_be_running service("bind9").must_be_running