With the provisioning services enabled, the next step is to define and
customize a system image that can subsequently be used to provision one or more
{\em compute} nodes. The following subsections highlight this process.

\subsubsection{Build initial BOS image} \label{sec:assemble_bos}
The \OHPC{} build of \Warewulf{} includes specific enhancements enabling support for
\baseOS{}. The following steps illustrate the process to build a minimal, default
image for use with \Warewulf{}. We begin by defining a directory structure on the
{\em master} host that will represent the root filesystem of the compute node. The
default location for this example is in
\texttt{/opt/ohpc/admin/images/\baseos{}}.

\begin{center}
  \begin{tcolorbox}[]
    \small \Warewulf{} is configured by default to access an external
    repository (download.rockylinux.org) during the \texttt{wwmkchroot} process.  If
    the master host cannot reach the public Rocky mirrors, or if you prefer to
    access a locally cached mirror, set the \texttt{\$\{YUM\_MIRROR\}}
    environment variable to your desired repo location {\em prior} to running
    the \texttt{wwmkchroot} command below. For example:

% begin_ohpc_run
% ohpc_command if [ ! -z ${BOS_MIRROR+x} ]; then
% ohpc_indent 5
\begin{lstlisting}[language=bash,keywords={}]
# Override default OS repository (optional) - set YUM_MIRROR variable to desired repo location
[sms](*\#*) export YUM_MIRROR=${BOS_MIRROR}
\end{lstlisting}
% ohpc_indent 0
% ohpc_command fi
% end_ohpc_run

\end{tcolorbox}
\end{center}

% begin_ohpc_run
% ohpc_comment_header Create compute image for Warewulf \ref{sec:assemble_bos}
\begin{lstlisting}[language=bash,literate={-}{-}1,keywords={},upquote=true,keepspaces,literate={BOSVER}{\baseos{}}1]
# Define chroot location
[sms](*\#*) export CHROOT=/opt/ohpc/admin/images/BOSVER

# Build initial chroot image
[sms](*\#*) wwmkchroot -v rocky-9 $CHROOT
# Enable OpenHPC and EPEL repos inside chroot
[sms](*\#*) dnf -y --installroot $CHROOT install epel-release
[sms](*\#*) cp -p /etc/yum.repos.d/OpenHPC*.repo $CHROOT/etc/yum.repos.d
\end{lstlisting}
% end_ohpc_run
