Video Transcript
Hi there, today’s exercise is Software repositories and Cobbler. A software repository is a central file storage location to keep and maintain software packages. Usually, they are configured in the installation process in almost every Linux distribution and are hosted on the cloud. You can install packages from these repositories using tools such as; apt
for Debian-based distros, pacman
, for instance, for Arch Linux, yum
for Rehat-based distros (the one we are going to use today), among others. You can also use these tools to install packages hosted in any local repository.
Why do we need a local repository?
In our context, our mini-cluster is composed of 4 compute nodes (in our illustration 2) and one master node. We have configured two internal networks, the first one to manage the compute nodes using the BMC and IPMI and the second one for data transfer. Of course, the only element in our cluster connected to the Internet is the master node. It is important to remember that the external connection must not be routed to the compute nodes for security reasons. This means the compute nodes are completely isolated from the outside world.
In addition to this, we have configured Cobbler to provision our nodes. As explained before, when importing a distribution to Cobbler, it creates a repository in the Apache webserver with the packages from the ISO file (base packages). This repository is used in the OS installation of the compute nodes.
Our current configuration falls short when, for instance, we want to install packages not available in the ISO file, or even more, as you might have noticed already, several packages are only available in non-official CentOS repositories. So, how do you install these packages in hundreds of nodes?.
The answer to all of these questions is the creation of additional local repositories. Local repositories will reside inside the webserver already installed in the master node. In today’s exercise, you will:
Create a minimal “foo” repository (one package) and expose it to the webserver.
Install the package available in “foo” on the compute nodes.
Update the OS in nodes by creating a local repository with an updated version of the packages already installed
Install a non-base package.