The process used in the previous step is designed to
provide a minimal \baseOS{} configuration. Next, we add additional components
to include resource management client services, NTP support, and
other additional packages to support the default \OHPC{} environment. This
process modifies the base provisioning image and will access the BOS and \OHPC{}
repositories to resolve package install requests.

The instructions below are designed to be copied and pasted all at once into
a terminal. Alternatively you can run \texttt{wwctl image shell \baseos{}}
to "run" the node image interactively and run the commands one at a time; this
method is recommended for local debugging.

We begin by installing a few common base packages:

% begin_ohpc_run
% ohpc_comment_header Add OpenHPC base components to compute image \ref{sec:add_components}
\begin{lstlisting}[language=bash,literate={-}{-}1,keywords={},upquote=true,literate={BOSVER}{\baseos{}}1 {\ }{\ }1]

# Install compute node base meta-package
[sms](*\#*) wwctl image exec --build=false BOSVER -- /bin/bash -ex <<- EOF
  apt -y install ohpc-base-compute
EOF
\end{lstlisting}
% end_ohpc_run

\noindent Now, we can include additional required components to the compute
instance including resource manager client, NTP, and development environment modules support.

For Ubuntu compute images, use \texttt{wwctl image shell} or \texttt{wwctl image exec}
for APT work. These commands mount \texttt{/dev}, \texttt{/proc}, \texttt{/sys},
and \texttt{/run}; direct \texttt{chroot \$CHROOT} can create \texttt{/dev/null}
as a regular file in minimal OCI images and break later package operations.
