cdist configuration management Latest manual: https://www.cdi.st/manual/latest/ Home page: https://www.cdi.st
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

242 lines
4.8 KiB

% 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}