How to create offline repos for IML 4.0.10.0
Software Installation Guide Table of Contents
The following is a procedure for creating local repos using a CentOS 7 VM.
-
Install git and createrepo if they are not present:
yum install -y git createrepo
-
Check out a local copy of IML from github.
-
Navigate to the IML project dir.
-
Switch to the tag or branch you want to create offline repos for. For example, if building offline repos for IML 4.0.6:
git checkout v4.0.6.0
-
Copy the
storage_server.repo
toetc.yum.repos.d
:cp ./chroma-manager/storage_server.repo /etc/yum.repos.d/
-
Create a dir to hold local repos and navigate to it:
mkdir local_repos; cd local_repos
-
Run
reposync
for the repos we want to sync (You will see a few kmod-* repos fail, this is expected):reposync -n --repoid=ngompa-dnf-el7 --repoid=e2fsprogs --repoid=managerforlustre-manager-for-lustre --repoid=lustre-client --repoid=lustre
-
(Optional) You may want to sync EPEL and or CentOS Extras as well if you don’t have them where you are deploying to:
reposync -n --repoid=epel --repoid=extras
-
Use
createrepo
to create repomd (xml-rpm-metadata) repositories:createrepo ./ngompa-dnf-el7/ createrepo ./e2fsprogs/ createrepo ./lustre -x '*kmod-spl*' -x '*kmod-zfs*' createrepo ./lustre-client createrepo ./managerforlustre-manager-for-lustre/
-
(Optional) use
createrepo
for EPEL and CentOS Extras if you ranreposync
for them earlier:createrepo ./epel createrepo ./extras
-
Navigate out of local_repos and tar the resulting dir:
tar -czvf local_repos.tar.gz ./local_repos
-
Take the IML tarball + the
local_repos.tar.gz
and move them onto the node planned for install. -
Expand the IML tarball and the local_repos tarball. Once expanded, cd to the expanded IML dir and update the
chroma_support.repo
so that eachbaseurl
points to its correspondinglocal_repos
subdir. -
Install the manager as usual. Do not deploy agents.
-
Once installed, move the local_repos subdirs into
/var/lib/chroma/repo
. -
Update
/usr/share/chroma-manager/storage_server.repo
so that each repobaseurl
points back to the url of the manager node, and ssl props are put in place. Example fore2fsprogs
:[e2fsprogs] name=Lustre e2fsprogs baseurl=https://<MANAGER-URL-HERE>/repo/e2fsprogs/ enabled=1 gpgcheck=0 sslverify = 1 sslcacert = /var/lib/chroma/authority.crt sslclientkey = /var/lib/chroma/private.pem sslclientcert = /var/lib/chroma/self.crt proxy=_none_
-
Deploy agents as usual.