Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel2
outlinefalse
typelist
printablefalse
Info

Info

Manually creating a local repo requires initial access to the Internet to retrieve all dependencies , and then the machine can be air-gapped.

Table of Contents

External Libraries for SCS

Three external libraries to install SCS are:

External Library

Description

Podman 3.0.1

Required for HTTP support. Dependencies of Podman 3.0.1 (podman_packages.tar) is included with Swarm v14.1 Update Bundle package. 

Pause Container

The registry.k8s.io_pause:3.2 is a container to hold the network namespace for the pod.

Bash Autocompletion

Required for tabbing on scsctl. Sourced from the EPEL repository for CentOS.

Set

...

-Up the Environment

Offline installation for CentOS requires RPMs and dependencies for all those packages on a repository. This is challenging in air-gapped networks or networks with no Internet access. The best way is to create a local offline repository.

...

  • Install a VM with CentOS 7.9 (or the previous version) and a “Minimal Server” profile.

  • Run yum to resolve dependencies for a package.

  • CentOS 7 server with Internet access and some disk space to pull the repo files.

SCS Dependencies

Install a set of packages to download RPMs and dependencies then create a repository. RPMs and dependencies use the download only yum-plugin to pull. Use the “createrepo” tool to create a repository for offline usage.

Steps to Check SCS Dependencies

  1. Install the yum-downloadonly plugin.

    Code Block
    yum -y install yum-plugin-downloadonly

    The package by default comes with large installations.

  2. Create a directory for download packages.

    Code Block
    mkdir packages
  3. Query the RPM dependencies.

    Code Block
    rpm -qpR swarm-scs-{version}.x86_64.rpm

Result:

glibc >= 2.17 
dhcp 
python3 
iproute 
chrony 
NetworkManager 
rsyslog 
logrotate 
cronie 
/bin/sh 
/bin/sh 
/bin/sh 
rpmlib(PayloadFilesHavePrefix) <= 4.0-1 
rpmlib(CompressedFileNames) <= 3.0.4-1

Download SCS Dependencies

Pull the following from the above list to download SCS and RPM’s dependencies:

Query

Command

bash-completion [NOTE: No longer required after SCS 1.5]

yum -y install --downloadonly --downloaddir=/root/packages/ bash-completion 

bash-completion-extras [NOTE: No longer required after SCS 1.5]

yum -y install --downloadonly --downloaddir=/root/packages/ bash-completion-extras 

chrony

yum -y install --downloadonly --downloaddir=/root/packages/ chrony 

cronie

yum -y install --downloadonly --downloaddir=/root/packages/ cronie 

dhcp

yum -y install --downloadonly --downloaddir=/root/packages/ dhcp

iproute

yum -y install --downloadonly --downloaddir=/root/packages/ iproute 

logrotate

yum -y install --downloadonly --downloaddir=/root/packages/ logrotate

NetworkManager

yum -y install --downloadonly --downloaddir=/root/packages/ NetworkManager

python3

yum -y install --downloadonly --downloaddir=/root/packages/ python3

rsyslog

yum -y install --downloadonly --downloaddir=/root/packages/ rsyslog

Create Podman 3.0.1 Repo

Swarm 15.x bundle includes podman offline repo. Refer to step 3 until step 7 of https://perifery.atlassian.net/wiki/spaces/public/pages/2917138467/Online+SCS+Installation to create a local repo for podman.

...

Note

Downloaded packages are not enough to install SCS server due to third-party external packages. Suggest query on each downloaded RPM packages to get the new list for additional download.

Contact DataCore Support if facing any issue and need assistance for manually creating a local repo.

Create a Local Repo

  1. Run “createrepo” against the packages folder.

    Code Block
    languagebash
    [root@dhcp-128 ~]# createrepo packages/
    Spawning worker 0 with 18 pkgs 
    Spawning worker 1 with 18 pkgs 
    Workers Finished 
    Saving Primary metadata 
    Saving file lists metadata 
    Saving other metadata 
    Generating sqlite DBs 
    Sqlite DBs complete
  2. Tar up the directory and its packages.

    Code Block
    cd /root/
    tar -cvf repo.tar packages/

Create an Offline Pause Container

  1. Install Podman on CentOS 7.

    Code Block
    yum -y install podman
  2. Pull the Pause Container.

  3. Create a new pod to automatically pull the registry.k8s.io/pause:3.2 image.

    Code Block
    languagebash
    podman pod create 
    fc299d05422a55e46774aa06a66bc853109aeb4b1d7078f81f9ffa4eef26c8e0 
  4. List the pulled images.

    Code Block
    languagebash
    podman images 
    REPOSITORY              TAG     IMAGE ID      CREATED        SIZE
    registry.k8s.io/pause   3.2     80d28bedfe5d  22 months ago  688 kB

Note

...

Tag

...

“registry.k8s.io/pause” with 3.2 or higher.

  1. Export Pause Container and save it for offline installation.

    Code Block
    languagebash
    podman save -o registry.k8s.io_pause_3.2.tar registry.k8s.io/pause:3.2
    
    ll
    total 680
    -rw-r--r--. 1 root root 692224 Dec  7 20:10 registry.k8s.io_pause_3.2.tar
Tip

Next, see Install SCS Offline.