Create Local Repositories#

Use the cw-clusterctl repos command to download ISO images of the installation DVDs for RHEL-family systems from their respective websites and import them into the ClusterWareAI ™ software as repos. See Supported Distributions and Features for a list of supported RHEL systems.

  1. Create a repo that references a specific ISO. For example, the following command creates a repo that references the Rocky-8.7-x86_64-dvd1 ISO:

    cw-clusterctl repos create name=Rocky8repo iso=@Rocky-8.7-x86_64-dvd1.iso --wait
    

    The --wait option ensures the ISO is fully mounted by waiting 120 seconds. Alternatively, specify a wait duration in seconds to extend or shorten the wait time based on your ISO size. See Using ISO Releases for additional details.

    Once the upload completes, the ISO is automatically forwarded to all head nodes and is locally mounted on each.

  2. Use the list subcommand to view repository details:

    [cwadmin@virthead]$ cw-clusterctl repos -i Rocky8repo ls -l
    Repos
      Rocky8repo
        iso
          chksum: e47d5ca236a3152d63814b32081a1a3261dd1cf4
          filename: 4aceb9db1aef4670be82bf49855b514a
          mtime: 2023-01-31 23:07:36 UTC (0:08:31 ago)
          size: 11.3 GiB (12129927168 bytes)
        isolabel: Rocky-8-7-x86_64-dvd
        keys: []
        name: Rocky8repo
        urls
          <BASE_URL>/isomount/Rocky8repo/BaseOS/
          <BASE_URL>/isomount/Rocky8repo/AppStream/
    

    The ClusterWareAI platform displays URLs for the repositories identified on the ISO. For example, there is a repository in the root of the uploaded Rocky-8 ISO, accessible at <BASE_URL>/isomount/Rocky8repo/BaseOS/. The <BASE_URL> tag is used as a placeholder to signify that any head node can provide access. When using such a URL, replace the <BASE_URL> with the actual head node's base URL. For example, http://10.20.30.30/api/v1/isomount/Rocky8repo/BaseOS/<target-file>.

Tip

You can also create a repo when creating a boot configuration by referencing an ISO. See Create Boot Configuration for details.

The ISO can also be downloaded using the cw-clusterctl command:

cw-clusterctl repos -i Rocky8repo download iso

Just like URL-defined repos, repos created using ISOs can be referenced in distros. See Creating Images and Using ISO Releases for details about using repos and distros to create compute node images.

Creating Local Repositories without Internet#

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

  1. Ensure that the appropriate base distribution repositories (for example, Red Hat RHEL or CentOS) are accessible locally without requiring Internet access. An initial install of ClusterWareAI has dependencies on various base distribution packages. A subsequent ClusterWareAI update may have dependencies on new or updated base distribution packages.

  2. Obtain a pre-built ClusterWareAI ISO file that contains the desired software from the online repository.

    1. Log into https://repo.ice.penguinsolutions.com/clusterware/<version>/ using your ClusterID as the username, leaving the password field blank.

    2. Select the EL8 or EL9 folder as desired. Within these folders are iso folders, where pre-built ISOs can be downloaded.

  3. Mount the ISO file, if not already mounted. For example, the ISO file clusterware-13.0.0.iso contains ClusterWareAI release 13.0.0:

    sudo mount -o loop clusterware-13.0.0.iso /mnt/cw13.0.0
    
  4. If this is an initial install, install the head node software, create an initial repo and distro, and create the default boot configuration.

    1. Use a cluster configuration file that is described in Install ClusterWareAI. Execute the cw-install script that is embedded in the ISO to perform the basic first install of the ClusterWareAI platform. The basic install creates /etc/yum.repos.d/clusterware.repo, which points at the software in the ISO. For example, to install using a configuration file called cluster-conf:

      /mnt/cw13.0.0/cw-install --config cluster-conf
      

      The head node software is installed.

    2. Create a repo that references the base distribution to be used by subsequent ClusterWareAI commands. For example, if the base distribution ISO is accessible at http://<baseOSserver>/<baseOSiso>:

      cw-clusterctl repos create name=<baseOSrepo> iso=@</path/to/baseOSiso> \
          --wait 180
      

      Use the --wait option when creating the repo. The ISO needs to be fully mounted for the distro created in the next step.

    3. Create a distro that references the new repo:

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

      See Creating Arbitrary Rocky Images or Creating Arbitrary RHEL Images for additional examples.

    4. Complete the setup by creating the default image, boot configuration, and attribute group. The following command expects to find a single distro and one or more repo repositories:

      cw-add-boot-config --make-defaults
      
  5. If this is a software update of an existing install, rename the current /etc/yum.repos.d/clusterware.repo, then execute the script to recreate clusterware.repo with the appropriate values:

    (cd /etc/yum.repos.d; sudo mv -f clusterware.repo clusterware.repo.bak)
    
    /mnt/cw13.0.0/cw-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:/// (for example, baseurl=file:///var/www/html/cw13.0.0). This may cause future problems when attempting to create an image. To resolve the issue, edit this to a functionally equivalent form http:// (for example, baseurl=http://localhost/cw13.0.0).