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