One of the Exalogic Racks that I have setup had no access to the internet
from the 10GbE network, as such no easy mechanism for additional rpms to
be deployed to the vServers that are created. In order to make things
simpler for installation on the multiple vServers and have some degree
of control over what versions of the software are installed this note
describes how to setup a local yum server.
Within an
Exalogic we have a handy HTTP server built into the ZFS storage device
which we will use to serve up the content of the YUM Repository. This
makes it available to every vServer that is attached to the
vServer-shared-storage network.
Setup the Yum Repository
This first activity is to setup the actual repository on the shared repository. A few activities are required to enable this:-
Create a share for the repository
The
first step is to create a share on the Exalogic rack that will be used
to host the yum repository and make it available via HTTP. Some
instructions on setting up a share can be found in the technote "Creating a Project or Share in the ZFS appliance". In this case this service will be common to all vServers so use the existing project "common" and create a share under it called "yum-repo", making the share available via HTTP.
Having
created the share we need to make it available via HTTP. To
achieve this firstly enable the HTTP service on the ZFS appliance. This
is achieved by clicking the enable icon on the HTTP service inside the
Configuration/Services tab. The service shown below.
Having
enabled the HTTP service it is then necessary to change the
configuration for the share to make the share content available via
HTTP. This is achieved by selecting "Shares" then picking the share
itself. In our case this is common/yum-repo.
Now select the Protocol tab option and set the "Share mode" of the HTTP
service to Read Only. If this is not possible it is probably because
it has been set to Inherit from project. If you are happy to have all
shares under the project exposing their content via HTTP then leave the
"Inherit from project" option selected and change the HTTP protocol on
the project level so that it is set to Read only. If you only want to
expose this share then de-select the "Inherit from project" option and
set the share mode to Read only.
Create the Repository
The
simplest way to get a hold of the appropriate packages is to download
the Exalogic base image. This is the .iso file rather than the virtual
image which is a single image file as oppose to an installation CD.
From the Exalogic e-delivery website
it is possible to download the latest physical image. (At the time of
writing this was the 2.0.0.0.0 version.) It ships as two zip files
which need to be expanded and the runMe.sh run which will amalgamate the two images to create a single iso file.
Using the single iso file loopback mount the iso and then copy all the content onto the yum-repo share.
So an example process from a compute node to mount the iso and copy the contents off it is shown below.
# mkdir /mnt/yum-repo # mount <IP address of shared storage>:/export/common/yum-repo /mnt/yum-repo # cp <Path to base image>/el_x2-2_baseimage_linux_2.0.0.0.0_64.iso /mnt/yum-repo # mkdir /mnt/yum-repo/tmp # mount -o loop /mnt/yum-repo/el_x2-2_baseimage_linux_2.0.0.0.0_64.iso /mnt/yum-repo/tmp # mkdir /mnt/yum-repo/el_x2-2_baseimage_linux_2.0.0.0.0_64 # cp -r /mnt/yum-repo/tmp/* /mnt/yum-repo/el_x2-2_baseimage_linux_2.0.0.0.0_64 |
Now we want to run the createrepo command to actually
create the repository that all the clients can utilise. In order to
achieve this the first thing we need to do is actually install the
repository package, then run the createrepo command.
# cd /mnt/yum-repo/el_x2-2_baseimage_linux_2.0.0.0.0_64
# find . -name createrepo* ./Server/createrepo-0.4.11-3.el5.noarch.rpm # rpm -ivh /mnt/yum-repo/el_x2-2_baseimage_linux_2.0.0.0.0_64/Server/createrepo-0.4.11-3.el5.noarch.rpm warning: /mnt/yum-repo/el_x2-2_baseimage_linux_2.0.0.0.0_64/Server/createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ########################################### [100%] 1:createrepo ########################################### [100%] # # createrepo . 3338/3338 - VT/etherboot-roms-kvm-5.4.4-13.el5.x86_64.rpm 6_64.rpm.rpmpm Saving Primary metadata Saving file lists metadata Saving other metadata # |
Configure the Client & Install the Packages.
Now
log onto your vServer to configure the yum repository. This is done by
creating the file /etc/yum.repos.d/local_yum.repo, the content of which
specifies the HTTP address for the yum repository on the shared
storage. Once created you can run yum reposlist to ensure that it is configured correctly.yum
# cat /etc/yum.repos.d/local_yum.repo
[local_yum] name=Exalogic TVP yum rack baseurl=http://<IP address of your ZFS Storage appliance on the vServer-shared-storage network (172.17.0.n by default)>/shares/export/common/yum-repo/el_x2-2_baseimage_linux_2.0.0.0.0_64 gpgcheck=0 enabled=1 # # yum repolist Loaded plugins: rhnplugin, security This system is not registered with ULN. ULN support will be disabled. local_yum | 951 B 00:00 local_yum/primary | 1.6 MB 00:00 local_yum 3338/3338 repo id repo name status local_yum Exalogic TVP yum rack enabled: 3,338 repolist: 3,338 [root@esat-ldap ~]# # |
Then run 'yum repolist' and if everything's is ok you see the repository listed.