forked from ungleich-public/cdist
		
	add tex sources of first two cdist specches
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								4265b0ebc3
							
						
					
				
			
			
				commit
				
					
						0b57d84d66
					
				
			
		
					 2 changed files with 449 additions and 0 deletions
				
			
		
							
								
								
									
										210
									
								
								doc/speeches/2011-03-18_hacker_erwachen.tex
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								doc/speeches/2011-03-18_hacker_erwachen.tex
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,210 @@
 | 
			
		|||
% 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{Hacker Erwachen 2011}
 | 
			
		||||
 | 
			
		||||
\author{Nico -telmich- Schottelius}
 | 
			
		||||
 | 
			
		||||
\date{18. März 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 (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
 | 
			
		||||
  make 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}
 | 
			
		||||
  # So wird es laufen...
 | 
			
		||||
  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
 | 
			
		||||
   __package nullmailer --state installed
 | 
			
		||||
 | 
			
		||||
   require="__package/nullmailer" \
 | 
			
		||||
       __file /etc/nullmailer/remotes \
 | 
			
		||||
          --source "$__type/files/remotes"
 | 
			
		||||
   eof
 | 
			
		||||
   chmod u+x conf/type/__my_mailserver/manifest
 | 
			
		||||
 | 
			
		||||
   mkdir conf/type/__my_mailserver/files
 | 
			
		||||
   echo my.fancy.smart.host > \
 | 
			
		||||
       conf/type/__my_mailserver/files/remotes
 | 
			
		||||
   \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.2 origin/1.2
 | 
			
		||||
  \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/
 | 
			
		||||
  \end{block}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
\end{document}
 | 
			
		||||
							
								
								
									
										239
									
								
								doc/speeches/2011-04-27_sans.tex
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								doc/speeches/2011-04-27_sans.tex
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,239 @@
 | 
			
		|||
% first presentation about cmtp
 | 
			
		||||
\documentclass{beamer}
 | 
			
		||||
% \usepackage{german}
 | 
			
		||||
\usepackage{graphicx}
 | 
			
		||||
\usepackage{beamerthemesplit}
 | 
			
		||||
\setbeamercovered{dynamic}
 | 
			
		||||
\usepackage[utf8]{inputenc}
 | 
			
		||||
\usetheme{Malmoe}
 | 
			
		||||
\usecolortheme{crane}
 | 
			
		||||
 | 
			
		||||
% \usepackage{minted}
 | 
			
		||||
 | 
			
		||||
% grahpic!
 | 
			
		||||
\usepackage[dvips]{epsfig}
 | 
			
		||||
 | 
			
		||||
\title{cdist configuration management}
 | 
			
		||||
\subtitle{History and current status at ETH Zurich}
 | 
			
		||||
\author{Nico -telmich- Schottelius}
 | 
			
		||||
\date{\today}
 | 
			
		||||
 | 
			
		||||
\begin{document}
 | 
			
		||||
\frame{\titlepage}
 | 
			
		||||
\section[Outline]{}
 | 
			
		||||
\frame{\tableofcontents}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
\section{Introduction}
 | 
			
		||||
\frame
 | 
			
		||||
{
 | 
			
		||||
  \frametitle{Outline}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
      \item From configuration management
 | 
			
		||||
      \item to puppet and existing products
 | 
			
		||||
      \item to cdist development, design and status
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\frame
 | 
			
		||||
{
 | 
			
		||||
  \frametitle{Why Configuration Management?}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
      \item Needed for automatisation
 | 
			
		||||
      \item Removes burden on reinstallation
 | 
			
		||||
      \item Helps to scale to a big number of hosts
 | 
			
		||||
      \item Has documentation character
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\frame
 | 
			
		||||
{
 | 
			
		||||
  \frametitle{Why cdist?}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
      \item Stopped using puppet (mostly due to bugs and non-intuitive configuration)
 | 
			
		||||
      \item Cfengine2 is more complicated
 | 
			
		||||
      \item Cfengine3 spams into your logfiles
 | 
			
		||||
      \item Did not investitage to deep into chef (based on puppet) or bcfg2
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\section{cdist}
 | 
			
		||||
\begin{frame}
 | 
			
		||||
   \frametitle{Features}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
\item Simplicity:  There is only one type to extend cdist called type
 | 
			
		||||
\item Design:  Type and core cleanly seperated
 | 
			
		||||
\item Design:  Sticks completly to the KISS (keep it simple and stupid) paradigma
 | 
			
		||||
\item Design:  Meaningful error messages - do not lose time debugging error messages
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\begin{frame}
 | 
			
		||||
   \frametitle{Features (2)}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
\item Design:  Consistency in behaviour, naming and documentation
 | 
			
		||||
\item Design:  No surprise factor: Only do what is obviously clear, no magic
 | 
			
		||||
\item Design:  Define target state, do not focus on methods or scripts
 | 
			
		||||
\item Design:  Push architecture: Instantly apply your changes
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
   \frametitle{Features (3)}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
\item Small core: cdist's core is very small - less code, less bugs
 | 
			
		||||
\item Fast development: Focus on straightforwardness of type creation is a main development objective
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
\end{frame}
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
   \frametitle{Features (4)}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
\item Requirements, Scalability: No central server needed, cdist operates in push mode and can be run from any computer
 | 
			
		||||
\item Requirements, Scalability, Upgrade: cdist only needs to be updated on the master, not on the target hosts
 | 
			
		||||
\item Requirements, Security: Uses well-know SSH as transport protocol
 | 
			
		||||
\item Requirements, Simplicity:  Requires only shell and SSH server on the target
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\begin{frame}
 | 
			
		||||
   \frametitle{Features (5)}
 | 
			
		||||
   \begin{itemize}
 | 
			
		||||
\item UNIX: Reuse of existing tools like cat, find, mv, ...
 | 
			
		||||
\item UNIX, familar environment, documentation: Is available as manpages and HTML
 | 
			
		||||
\item UNIX, simplicity, familar environment: cdist is written in POSIX shell
 | 
			
		||||
\item UNIX, simplicity, familar environment: cdist is configured in POSIX shell
 | 
			
		||||
   \end{itemize}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\subsection{Installation}
 | 
			
		||||
\frame
 | 
			
		||||
{
 | 
			
		||||
  \frametitle{Installation}
 | 
			
		||||
  \begin{center}
 | 
			
		||||
  git clone git://git.schottelius.org/cdist
 | 
			
		||||
  \end{center}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Documentation: Manpages}
 | 
			
		||||
 | 
			
		||||
  \begin{verbatim}
 | 
			
		||||
  # Requires asciidoc / a2x
 | 
			
		||||
  make man
 | 
			
		||||
  \end{verbatim}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\subsection{Using}
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Setup PATH and MANPATH}
 | 
			
		||||
 | 
			
		||||
  \begin{verbatim}
 | 
			
		||||
  cd cdist
 | 
			
		||||
  eval `./bin/cdist-env`
 | 
			
		||||
  echo $PATH
 | 
			
		||||
  echo $MANPATH
 | 
			
		||||
  \end{verbatim}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Deploying configuration to a host}
 | 
			
		||||
  \begin{verbatim}
 | 
			
		||||
  # So wird es laufen...
 | 
			
		||||
  cdist-deploy-to localhost
 | 
			
		||||
  \end{verbatim}
 | 
			
		||||
\end{frame}
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Initial manifest}
 | 
			
		||||
  \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
 | 
			
		||||
   # Needs to be executable
 | 
			
		||||
   chmod u+x conf/manifest/init
 | 
			
		||||
 | 
			
		||||
  \end{verbatim}
 | 
			
		||||
  \end{small}
 | 
			
		||||
\end{frame}
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Now with working initial manifest}
 | 
			
		||||
  \begin{verbatim}
 | 
			
		||||
  cdist-deploy-to localhost
 | 
			
		||||
  \end{verbatim}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\frame
 | 
			
		||||
{
 | 
			
		||||
  \frametitle{Combine functionality}
 | 
			
		||||
  % \begin{itemize}[<+->]
 | 
			
		||||
  \begin{itemize}
 | 
			
		||||
     \item Types
 | 
			
		||||
     \item conf/type/*
 | 
			
		||||
     \item \_\_ prefixed (do not clash with other stuff in \$PATH)
 | 
			
		||||
     \item i.e. webserver, mailserver, desktop, ...
 | 
			
		||||
  \end{itemize}
 | 
			
		||||
}
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
   \frametitle{Creating a new type}
 | 
			
		||||
   \begin{small}
 | 
			
		||||
   \begin{verbatim}
 | 
			
		||||
   mkdir conf/type/__my_mailserver
 | 
			
		||||
   cat << eof > conf/type/__my_mailserver/manifest
 | 
			
		||||
   __package nullmailer --state installed
 | 
			
		||||
 | 
			
		||||
   require="__package/nullmailer" \
 | 
			
		||||
       __file /etc/nullmailer/remotes \
 | 
			
		||||
          --source "$__type/files/remotes"
 | 
			
		||||
   eof
 | 
			
		||||
   chmod u+x conf/type/__my_mailserver/manifest
 | 
			
		||||
 | 
			
		||||
   mkdir conf/type/__my_mailserver/files
 | 
			
		||||
   echo my.fancy.smart.host > \
 | 
			
		||||
       conf/type/__my_mailserver/files/remotes
 | 
			
		||||
   \end{verbatim}
 | 
			
		||||
   \end{small}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\subsection{Update}
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Versions}
 | 
			
		||||
  \begin{itemize}
 | 
			
		||||
     \item x.y: Stable version
 | 
			
		||||
     \item master: Development
 | 
			
		||||
  \end{itemize}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Checkout and stay on stable version}
 | 
			
		||||
  \begin{center}
 | 
			
		||||
  git checkout -b 1.6 origin/1.6
 | 
			
		||||
  \end{center}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\begin{frame}[fragile]
 | 
			
		||||
  \frametitle{Update to latest}
 | 
			
		||||
  \begin{center}
 | 
			
		||||
  git pull
 | 
			
		||||
  \end{center}
 | 
			
		||||
\end{frame}
 | 
			
		||||
 | 
			
		||||
\frame
 | 
			
		||||
{
 | 
			
		||||
  \frametitle{End}
 | 
			
		||||
  \begin{block}{That's it!}
 | 
			
		||||
  Have fun! - More information: http://www.nico.schottelius.org/software/cdist/
 | 
			
		||||
  \end{block}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
\end{document}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue