forked from ungleich-public/cdist
8da1c44081
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
242 lines
4.8 KiB
TeX
242 lines
4.8 KiB
TeX
% first presentation about cmtp
|
|
\pdfminorversion=4
|
|
%\documentclass[ucs]{beamer}
|
|
\documentclass{beamer}
|
|
%\documentclass[utf8]{beamer}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{german}
|
|
\usepackage{graphicx}
|
|
\usepackage{beamerthemesplit}
|
|
\setbeamercovered{dynamic}
|
|
\usetheme{Malmoe}
|
|
\usecolortheme{crane}
|
|
|
|
\title{cdist - nutzbare Konfigurationsverwaltung}
|
|
\subtitle{Cosin 2011}
|
|
|
|
\author{Nico -telmich- Schottelius}
|
|
|
|
\date{25. Juni 2011}
|
|
|
|
\begin{document}
|
|
\frame{\titlepage}
|
|
|
|
%\section[Outline]{}
|
|
\frame{\tableofcontents}
|
|
|
|
\section{Einleitung}
|
|
\frame
|
|
{
|
|
\frametitle{Was ist das Problem?}
|
|
\begin{itemize}
|
|
\item Einmal konfigurieren = toll
|
|
\item Zweimal konfigurieren = naja, ...
|
|
\item Neue Sachen machen mehr Spass als alte wiederholen
|
|
\item Viele Rechner = viel Mühe?
|
|
\end{itemize}
|
|
}
|
|
|
|
\frame
|
|
{
|
|
\frametitle{Das ist nicht neu...}
|
|
\begin{itemize}
|
|
\item cfengine
|
|
\item Puppet
|
|
\item bcfg2
|
|
\item chef
|
|
\item ...
|
|
\end{itemize}
|
|
}
|
|
|
|
\frame
|
|
{
|
|
\frametitle{Warum cdist?}
|
|
\begin{itemize}
|
|
\item Klein
|
|
\item Unix
|
|
\item Leicht zu bedienen
|
|
\item ... zu erweitern
|
|
\item Shell
|
|
\item Weil es Spaß macht!
|
|
\end{itemize}
|
|
}
|
|
|
|
\section{Installieren}
|
|
\frame
|
|
{
|
|
\frametitle{Vorraussetzungen}
|
|
\begin{itemize}
|
|
\item sshd
|
|
\item root login via sshd
|
|
\item Besser: ssh-pubkey konfiguriert (PermitRootLogin without-password)
|
|
\item git
|
|
\item Asciidoc für dia manpages
|
|
\end{itemize}
|
|
}
|
|
|
|
\frame
|
|
{
|
|
\frametitle{Installation}
|
|
\begin{center}
|
|
git clone git://git.schottelius.org/cdist
|
|
\end{center}
|
|
}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Erstellen der Manpages}
|
|
|
|
\begin{verbatim}
|
|
# Braucht asciidoc / a2x
|
|
./build.sh man
|
|
\end{verbatim}
|
|
\end{frame}
|
|
|
|
\section{Nutzen}
|
|
\begin{frame}[fragile]
|
|
\frametitle{Vorbereitung PATH und MANPATH}
|
|
|
|
\begin{verbatim}
|
|
cd cdist
|
|
eval `./bin/cdist-env`
|
|
echo $PATH
|
|
echo $MANPATH
|
|
\end{verbatim}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Nun los}
|
|
\begin{verbatim}
|
|
# Fangen wir bei uns an
|
|
cdist-deploy-to localhost
|
|
\end{verbatim}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Der Einstiegspunkt}
|
|
\begin{small}
|
|
\begin{verbatim}
|
|
cat << eof > conf/manifest/init
|
|
__file /etc/cdist-configured
|
|
|
|
case "$__target_host" in
|
|
localhost)
|
|
__link /tmp/cdist-testfile \
|
|
--source /etc/cdist-configured \
|
|
--type symbolic
|
|
__addifnosuchline /tmp/cdist-welcome \
|
|
--line "Welcome to cdist"
|
|
;;
|
|
esac
|
|
eof
|
|
# Muss ausführbar sein
|
|
chmod u+x conf/manifest/init
|
|
|
|
\end{verbatim}
|
|
\end{small}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Nun los}
|
|
\begin{verbatim}
|
|
# Nun läuft es!
|
|
cdist-deploy-to localhost
|
|
\end{verbatim}
|
|
\end{frame}
|
|
|
|
\frame
|
|
{
|
|
\frametitle{Funktionalität zusammenfassen}
|
|
\begin{itemize}[<+->]
|
|
\item "`Typen"' (types)
|
|
\item conf/type/*
|
|
\item \_\_ vor jedem Namen (Shell-Umgebung)
|
|
\item z.B. Netzseite, Mailserver, Wiki, ...
|
|
\end{itemize}
|
|
}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Ein neuer Typ}
|
|
\begin{small}
|
|
\begin{verbatim}
|
|
% mkdir conf/type/__my_mailserver
|
|
% cat << eof > conf/type/__my_mailserver/manifest
|
|
# Dieser Typ konfiguriert meinen Mailserver
|
|
require="__package/nullmailer" \
|
|
__file /etc/nullmailer/remotes \
|
|
--source "$__type/files/remotes"
|
|
|
|
# Reihenfolge spielt keine Rolle
|
|
__package nullmailer --state installed
|
|
eof
|
|
\end{verbatim}
|
|
\end{small}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Ein neuer Typ (2)}
|
|
\begin{small}
|
|
\begin{verbatim}
|
|
# Wichtig: Wird ausgeführt
|
|
% chmod u+x conf/type/__my_mailserver/manifest
|
|
|
|
# Darf nur einmal verwendet werden pro Rechner
|
|
% touch conf/type/__my_mailserver/singleton
|
|
|
|
# Nullmailer Konfiguration
|
|
% mkdir conf/type/__my_mailserver/files
|
|
% echo my.fancy.smart.host > \
|
|
conf/type/__my_mailserver/files/remotes
|
|
\end{verbatim}
|
|
\end{small}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Neuen Typ nutzen}
|
|
\begin{small}
|
|
\begin{verbatim}
|
|
% $EDITOR conf/manifest/init
|
|
|
|
case "$__target_host" in
|
|
localhost)
|
|
...
|
|
__my_mailserver
|
|
...
|
|
;;
|
|
\end{verbatim}
|
|
\end{small}
|
|
\end{frame}
|
|
|
|
\section{Aktualisieren}
|
|
\begin{frame}[fragile]
|
|
\frametitle{Versionen}
|
|
\begin{itemize}[<+->]
|
|
\item x.y: Stabile Version
|
|
\item master: Entwicklung
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Stabile Version auswählen}
|
|
\begin{center}
|
|
git checkout -b 1.7 origin/1.7
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Aktualisieren}
|
|
\begin{center}
|
|
git pull
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\frame
|
|
{
|
|
\frametitle{Ende}
|
|
\begin{block}{Das war's}
|
|
Viel Spaß - Mehr Infos gibt's auf http://www.nico.schottelius.org/software/cdist/\\
|
|
und http://l.schottelius.org/pipermail/cdist
|
|
\end{block}
|
|
}
|
|
|
|
|
|
\end{document}
|