Files
SSW590-DevOps/chapters/devopsHosts.tex
T

79 lines
4.0 KiB
TeX

\chapter{Hosts}
\ChapterLabel{Hosts}
\index{hosts}
\index{hosts!inventory}
\index{hosts!naming convention}
\index{development environment}
\index{Amazon EC2}
\section{Purpose}
This chapter names the hosts that make up the development environment for
\CourseNumber\ and records the role, platform, owner, and status of each.
Hosts in service are described here at inventory level; their configuration
and execution \gls{evidence} are recorded in the chapter for the activity that
uses them. The inventory may grow or change depending on assignment requirements.
\section{Naming Convention}
\index{hosts!naming}
Each \gls{host} that is provisioned for this course is named
\texttt{ssw590-\textit{role}-\textit{nn}}, where \textit{role} identifies the
function the machine serves and \textit{nn} is a two-digit ordinal within that
role. Naming by role rather than by instance identifier keeps the name stable
if the underlying machine is replaced, and keeps the inventory readable when
more than one host serves the same purpose. Hosts that already exist
independently of this course retain their existing names.
\section{Host Inventory}
\index{hosts!table}
The \textbf{Status} column distinguishes machines already in use from those that
will be configured in a later assignment. A host is marked \emph{In service}
only once it exists and is reachable.
\begin{tabularx}{\linewidth}{L{3.5cm}YL{3.0cm}L{2.2cm}}
\caption{Host Inventory\label{Table:HostInventory}}\\
\toprule \textbf{Host name} & \textbf{Role} & \textbf{Platform} & \textbf{Status}\\ \midrule
\endfirsthead
\multicolumn{4}{l}{\small\itshape Host Inventory (continued)}\\
\toprule \textbf{Host name} & \textbf{Role} & \textbf{Platform} & \textbf{Status}\\ \midrule
\endhead \bottomrule \endlastfoot
\texttt{ssw590-group-web} & Group deployment target. Runs the website in \ChapterRef{CloudDockerDeployment}. & Ubuntu 26.04 LTS on Amazon EC2, \texttt{t3.micro} & In service\\
\texttt{ssw590-dev-01} & Primary Linux host for the course. Target for service configuration, deployment exercises, and command-line work. & Ubuntu Server LTS on Amazon EC2 & Planned\\
\end{tabularx}
\section{Access and Ownership}
\index{hosts!access model}
\index{least privilege}
\texttt{ssw590-group-web} is shared by both authors and runs under Victor's AWS account,
where each author has a separate IAM identity. The following rules are the target access policy
for course Linux hosts:
\begin{itemize}[leftmargin=*]
\item Interactive access is by \gls{ssh} public key only.
Password authentication is disabled in the server configuration.
The local account password recorded in \ChapterRef{Passwords} authenticates \texttt{sudo} only.
\item Inbound \gls{ssh} is restricted by source address to the local workstation
rather than opened to the public Internet.
\item Day-to-day work is performed by an unprivileged account. Administrative
rights are granted per command rather than by general membership in the
\texttt{sudo} group.
\item Teammates who require access after teams are formalized
receive a separate named account rather than a shared login, so that
access can be revoked individually and actions remain attributable.
\end{itemize}
\section{Cost and Cleanup}
\index{hosts!cost}
\index{hosts!teardown}
\texttt{ssw590-group-web} runs on a \texttt{t3.micro} instance and is covered
by a monthly AWS budget alert. Compute is billed per
instance-hour, and attached storage and the public IPv4 address are billed as
well, so each additional host adds cost independently of how heavily it is
used: provisioning \texttt{ssw590-build-01} would approximately double the
compute cost of the environment. It is therefore left unprovisioned unless
required in the future, and would be stopped between uses rather than run continuously.
Course hosts are disposable. Teardown consists of terminating the instance and
deleting its storage volume. \texttt{ssw590-group-web} uses an automatically
assigned public address rather than a reserved static address, so there is no
address to release; its address changes if the instance is stopped and
started.