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. Either contact Penguin Computing to obtain the ISO, or 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

# 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`

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)



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).