\documentclass{beamer}
\usepackage[spanish]{babel}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{subcaption}

\usetheme{Frankfurt}

\title{Administración de OpenBSD}
\author{Nicolás A. Ortega Froysa}
\institute{CEU San Pablo}
\date{\today}

\begin{document}
\begin{frame}
	\titlepage
\end{frame}

\begin{frame}{Tabla de Contenidos}
	\tableofcontents
\end{frame}

\section{Introducción}

\begin{frame}{Introducción}
	\begin{itemize}
		\item {\em No es} una distribución de Linux, sino de {\em BSD}.
		\item Su enfoque principal es la seguridad.
		\item No usa {\tt apt}, sino los llamados {\it OpenBSD package tools}.
		\item No usa {\it Systemd}, sino {\it rc init}.
	\end{itemize}

	\hfill

	\begin{figure}
		\includegraphics[width=0.3\textwidth]{imgs/OpenBSD.png}
		\caption{{\it Puffy}, la mascota de {\it OpenBSD}.}
	\end{figure}
\end{frame}

\section{Instalación}

\begin{frame}{Instalación}
	\begin{itemize}
		\item {\em No} es gráfico.
		\item Opciones para instalar:
			\begin{itemize}
				\item {\tt (I)nstall}: instalar por medio de un {\it prompt} en shell.
				\item {\tt (U)pgrade}: actualizar un OpenBSD que ya tienes instalado.
				\item {\tt (A)utoinstall}: auto-instalar, tomando todos los valores por
					defecto.
				\item {\tt (S)hell}: entrar en un {\it shell} e instalar todo de forma
					manual.
			\end{itemize}
	\end{itemize}
\end{frame}

\begin{frame}{{\it File Sets}}
	\begin{itemize}
		\item {\tt bsd}: {\it kernel} de BSD ({\bf obligatorio}).
		\item {\tt bsd.mp}: {\it kernel} multi-procesador.
		\item {\tt bsd.rd}: {\it kernel} de uso en memoria.
		\item {\tt base72.tgz}: sistema base o {\it userland} ({\bf obligatorio}).
		\item {\tt comp72.tgz}: colección de compiladores.
		\item {\tt man72.tgz}: páginas de manual.
		\item {\tt game72.tgz}: juegos de consola (modo texto).
		\item {\tt xbase72.tgz}: librerías y utilidades básicas para X11.
		\item {\tt xfont72.tgz}: fuentes utilizadas para X11.
		\item {\tt xserv72.tgz}: los servidores X de X11.
		\item {\tt xshare72.tgz}: las páginas de manual, configuración, e {\it
			includes} de X11.
	\end{itemize}
\end{frame}

\begin{frame}{Primer Arranque}
	\begin{figure}
		\centering
		\includegraphics[width=0.75\textwidth]{imgs/00-initial-load.png}
		\caption{Primer arranque de OpenBSD.}
		\label{fig:initial-load}
	\end{figure}
\end{frame}

\section{Gestión de Paquetes}

\begin{frame}{Gestión de Paquetes}
	\begin{itemize}
		\item {\tt pkg\_add}: instalar y actualizar.
		\item {\tt pkg\_delete}: eliminar/desinstalar.
		\item {\tt pkg\_info}: buscar información.
		\item {\tt pkglocate}: encontrar paquetes por archivo (en el paquete {\tt
			pkglocatedb}).
	\end{itemize}
\end{frame}

\begin{frame}{Encontrar Paquetes}
	\begin{itemize}
		\item {\tt pkg\_info -Q <pkgname>}: encontrar un paquete que tenga el
			nombre {\tt <pkgname>}.
		\item {\tt pkglocate <filename>}: encontrar los paquetes que puedan
			contener un archivo con el nombre {\tt <filename>}.
	\end{itemize}
\end{frame}

\section{Gestión y Configuración de Servicios}

\begin{frame}{{\it RC Init}}
	\begin{itemize}
		\item {\tt rcctl start}: iniciar un servicio.
		\item {\tt rcctl stop}: parar un servicio.
		\item {\tt rcctl restart}: reiniciar el servicio.
		\item {\tt rcctl enable}: habilitar un servicio para iniciarse al arrancar
			la máquina.
		\item {\tt rcctl disable}: deshabilitar un servicio para que no se inicie
			cuando arranque la máquina.
		\item {\tt rcctl check}: mostrar el estado de un servicio.
		\item {\tt rcctl ls}: mostrar una lista de los servicios.
	\end{itemize}

	Los subcomandos {\tt start}, {\tt stop}, {\tt restart}, {\tt enable}, {\tt
	disable}, y {\tt check} se pueden correr desde los archivos en {\tt
	/etc/rc.d/} (e.g.\ {\tt /etc/rc.d/nginx restart})
\end{frame}

\begin{frame}{Servicios Configurados}

	Servicios instalados y configurados:
	\begin{itemize}
		\item NGinx: servidor web.
		\item MariaDB: servidor de base de datos.
		\item RSyncd: servidor de archivos.
	\end{itemize}

\end{frame}

\begin{frame}{NGinx}
	\begin{itemize}
		\item Instalación: {\tt pkg\_add nginx}
		\item Inicialización: {\tt rcctl start nginx; rcctl enable nginx}
		\item Arch. Conf.: {\tt /etc/nginx/nginx.conf}
		\item Logs: {\tt /etc/nginx/logs/}
	\end{itemize}
\end{frame}

\begin{frame}{MariaDB}
	\begin{itemize}
		\item Instalación: {\tt pkg\_add mariadb-server mariadb-client}
		\item Inicialización: {\tt rcctl start mysqld; rcctl enable mysqld}
		\item Arch. Conf.: {\tt /etc/my.cnf}
		\item Logs: {\tt /var/db/mysql/}
	\end{itemize}
\end{frame}

\begin{frame}{RSyncd}
	\begin{itemize}
		\item Instalación: {\tt pkg\_add rsync}
		\item Inicialización: {\tt rcctl start rsyncd; rcctl enable rsyncd}
		\item Arch. Conf.: {\tt /etc/rsyncd.conf}
		\item Logs: {\tt /var/log/rsyncd.log}
	\end{itemize}
\end{frame}

\section{Prueba de {\it Stress}}

\begin{frame}{Test de NGinx}

	\begin{center}
		Usando {\tt wrk} a 50 conexiones en 10 hilos distintos sobre el servidor.
	\end{center}

	\begin{figure}
		\centering
		\includegraphics[width=0.95\textwidth]{imgs/02-load-wrk-test.png}
		\caption{Test de NGinx.}
	\end{figure}
\end{frame}

\begin{frame}{Test de RSyncd}

	\begin{center}
		Descargando varios ISO del servidor RSync, utilizando compresión para
		facilitar la transferencia.
	\end{center}

	\begin{figure}
		\centering
		\includegraphics[width=0.95\textwidth]{imgs/03-load-rsyncd.png}
		\caption{Test de RSyncd.}
	\end{figure}

\end{frame}

\section{Fin}

\begin{frame}{Fin}

	\begin{center}
		Hecho con \LaTeX
	\end{center}

	\hfill

	Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa
	<nicolas@ortegas.org>

	\hfill

	Este documento se distribuye bajo los términos y condiciones de la licencia
	Creative Commons Attribution No Derivatives 4.0 International.
\end{frame}

\end{document}
