Appendix: Creating Local Repositories without InternetΒΆ

When scyld-install (and its underlying use of the yum command) do not have access to repositories that are accessible via the Internet, then repositories must be set up on local storage.

First ensure that the appropriate base distribution repositories (i.e., Red Hat RHEL or CentOS) are also accessible locally without requiring Internet access. An initial install of Scyld ClusterWare has dependencies on various base distribution packages, and a subsequent ClusterWare update may have dependencies on new or updated base distribution packages.

Next you need a ClusterWare ISO file that contains the desired software. The easiest way to obtain an ISO file is to download a pre-built ISO from the ClusterWare online repository. To do this, log into https://updates.penguincomputing.com/clusterware/12/ using your ClusterID as the username, leaving the password field blank. Once logged in, select the EL7, EL8 or EL9 folder as desired. Within these folders are "iso" folders, where pre-built ISOs can be downloaded.

Alternatively, it's possible to build the ISO on a local server that has access to the Internet. To build the ISO locally, you need a clusterware.repo file that contains a valid customer authentication token that allows access to Penguin Computing's ClusterWare yum repo, then:

# Download the ClusterWare `make-iso` script:
curl -O https://updates.penguincomputing.com/clusterware/12/installer/make-iso

# Execute the `make-iso` script to create either an ISO named "clusterware.iso":
./make-iso --yum-repo ./clusterware.repo
# Or to create an arbitrarily named ISO:
sudo ./make-iso --yum-repo ./clusterware.repo clusterware-12.1.0.iso

# Note: `./make-iso --from-yum` is equivalent to
#       `./make-iso --yum-repo /etc/yum.repos.d/clusterware.repo`

Once an ISO file is obtained, whether via download or the make-iso command, the ISO file needs to be mounted. Suppose the ISO file clusterware-12.1.0.iso contains ClusterWare release 12.1.0:

# Mount the ClusterWare ISO, if not already mounted:
sudo mount -o loop clusterware-12.1.0.iso /mnt/cw12.1.0

For an initial install, use a cluster configuration file (e.g., named cluster-conf) that is described in Installation and Upgrade of Scyld ClusterWare, and execute the scyld-install script that is embedded in the ISO to performs the basic first install of ClusterWare and create /etc/yum.repos.d/clusterware.repo, which points at the software in the ISO:

/mnt/cw12.1.0/scyld-install --config cluster-conf

Once the head node software has been installed, then subsequent ClusterWare commands need to find a base distribution defined repo and distro. See Appendix: Creating Arbitrary CentOS Images (or Appendix: Creating Arbitrary RHEL Images) for examples.

Suppose the base distribution ISO is accessible at http://<baseOSserver>/<baseOSiso>:

scyld-clusterctl repos create name=<baseOSrepo> iso=@</path/to/baseOSiso>

scyld-clusterctl distros create name=<baseOSdistro> repos=<baseOSrepo>

Now finish the setup. The following expects to find a single distro and one or more repo repositories:

scyld-add-boot-config --make-defaults

For a software update of an existing Scyld ClusterWare install, rename the current /etc/yum.repos.d/clusterware.repo, then execute the script (which recreates clusterware.repo with the appropriate values):

(cd /etc/yum.repos.d; sudo mv -f clusterware.repo clusterware.repo.bak)

/mnt/cw12.1.0/scyld-install

Important

If the local repo has been created in a manner other than what is described above, then it is possible that /etc/yum.repos.d/clusterware.repo uses baseurl of the form file:/// (e.g., baseurl=file:///var/www/html/cw12.1.0). This may cause future problems when attempting to create an image, so the administrator should edit this to a functionally equivalent form http:// (e.g., baseurl=http://localhost/cw12.1.0).