%
% Debian.tex
%
% Fork Sand IT Manual
%
% Copyright (C) 2018, Fork Sand, Inc.
% Copyright (C) 2017, Jeff Moe
% Copyright (C) 2017 Aleph Objects, Inc.
%
% This document is licensed under the Creative Commons Attribution 4.0
% International Public License (CC BY-SA 4.0) by Fork Sand, Inc.
%
\section{Debian}
Debian is a free software \gls{gnulinux} distribution.

\begin{figure}[!htb]
\includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{www-debian.png}
 \caption{Debian Website}
 \label{fig:www-debian}
\end{figure}

\subsection{Install Debian}
The Debian servers all get a Minimal + standard utilities + sshd install.
At present, it is being tested with virtual machines. When deployed, it will
be set up remotely using HTML5 \gls{ipmi}.

Install Debian 9 (Stretch).


\section{Creating Debian Images}
All cloud services will install various operating system images onto the
virtual and bare metal machines they sell. Usually these images are old.
They are also done by the provider, often of marginal quality. Some are
tuned, and are a bit better done (e.g. Linode). Others are a couple years
old when booted.


There are innumerable ways to make images of an operating system to be used.
Here are some for Debian...

\begin{itemize}
 \item \texttt{Debian OpenStack Images} --- \url{http://cdimage.debian.org/cdimage/openstack/current/}
 \item \texttt{bootstrap-vz} --- tool for creating Debian images for cloud platforms (CLI).
 \item \texttt{cdebootstrap} --- Bootstrap a Debian system.
 \item \texttt{debootstick} --- Turn a chroot environment into a bootable image.
 \item \texttt{debootstrap} --- Bootstrap a basic Debian system.
 \item \texttt{grml-debootstrap}- wrapper around debootstrap for installing pure Debian.
 \item \texttt{live-boot} --- Live System Boot Components.
 \item \texttt{live-wrapper} --- Wrapper for vmdebootstrap for creating live images.
 \item \texttt{openstack-debian-images} --- script to build a Debian image for OpenStack.
 \item \texttt{packer} --- tool for creating machine images for multiple platforms.
 \item \texttt{vmdebootstrap} --- Bootstrap Debian into a (virtual machine) disk image.
\end{itemize}

\subsection{\texttt{packer}}
The \texttt{packer} application in Debian looks particularly useful.


\begin{figure}[!htb]
\includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{www-packer.png}
 \caption{Packer Website}
 \label{fig:www-packer}
\end{figure}


Debian's description:


%%%
 Packer is a CLI tool for the automatic creation of identical machine images
 (single deployable units that contain a pre-configured OS and installed
 software) for multiple platforms (public cloud providers, private cloud
 and desktop virtualization solutions) from a single JSON template resp.
 configuration file.
 
 Packer features builders for the following target platforms which could be
 employed on Debian:

\begin{itemize}
 \item Amazon Web Services (EBS-backed Amazon Machine Images for EC2, and other
    types)
 \item DigitalOcean (reuseable snapshots from available source images)
 \item \Gls{docker}
 \item Google Compute Engine (images based on existing images)
 \item OpenStack (new reuseable images for servers in OpenStack clouds)
 \item QEMU (\gls{kvm} and Xen virtual machine images)
 \item Oracle VirtualBox (virtual machine images)
\end{itemize}
 
 A number of post-processors are included like for creating Vagrant boxes.

 Several provisioners resp. remote execution systems, namely Ansible, Chef,
 Puppet, Salt, and shell based provisioning (using SSH) are supported to
 configure and install software on the machines automatically after fresh OSs
 have been set up.

 For the documentation of Packer, please see <\url{https://www.packer.io/docs}>.

