Home > Others > HTTP Based YUM Repository [using httpd – RHEL6.6 CENTOS6.6]

HTTP Based YUM Repository [using httpd – RHEL6.6 CENTOS6.6]

yum Repository Creation on using httpd Web Server.

Installing prerequisites.

To setup a repository we need to install createrepo package.
yum install createrepo.

Create directories to store the repo.

Below are the directories to be created, to store the rpms in.
mkdir -p /export/custom-repo/yum-channels/custom-repo-channel-app/SRPMS
mkdir -p /export/custom-repo/yum-channels/custom-repo-channel-app/x86_64
mkdir -p /export/custom-repo/yum-channels/custom-repo-channel-sys/SRPMS
mkdir -p /export/custom-repo/yum-channels/custom-repo-channel-sys/x86_64

Create subdirectories as below.

[root@repo-server ~]# ls -l /export/custom-repo/
total 12
drwxrwxr-x 2 repomgr repomgr 4096 Oct 14 09:06 pkg
drwxr-xr-x 2 root    root    4096 Oct 13 16:18 repodata
drwxr-xr-x 5 repomgr repomgr 4096 Oct 14 11:09 yum-channels
[root@repo-server ~]# ls -l /export/custom-repo/yum-channels/
total 20
drwxr-xr-x 4 repomgr repomgr 4096 Oct 14 11:09 custom-repo-channel-app
drwxr-xr-x 4 repomgr repomgr 4096 Oct 14 10:53 custom-repo-channel-sys
-rw-r--r-- 1 repomgr repomgr  150 Oct 14 11:00 Makefile
-rw-r--r-- 1 repomgr repomgr   50 Oct 14 11:01 README
[root@repo-server ~]# ls -l /export/custom-repo/yum-channels/custom-repo-channel-app/
total 12
-rw-r--r-- 1 repomgr repomgr  157 Oct 14 10:53 Makefile
drwxr-xr-x 3 repomgr repomgr 4096 Oct 14 11:09 SRPMS
drwxr-xr-x 3 repomgr repomgr 4096 Oct 14 11:00 x86_64
[root@repo-server ~]# ls -l /export/custom-repo/yum-channels/custom-repo-channel-sys/
total 12
-rw-r--r-- 1 repomgr repomgr  157 Oct 14 10:53 Makefile
drwxr-xr-x 3 repomgr repomgr 4096 Oct 14 11:00 SRPMS
drwxr-xr-x 3 repomgr repomgr 4096 Oct 14 11:00 x86_64
[root@repo-server ~]#

Creating Repository.

createrepo /export/custom-repo/yum-channels/custom-repo-channel-app/SRPMS
createrepo /export/custom-repo/yum-channels/custom-repo-channel-app/x86_64
createrepo /export/custom-repo/yum-channels/custom-repo-channel-sys/SRPMS
createrepo /export/custom-repo/yum-channels/custom-repo-channel-sys/x86_64
Here is how the directory looks after createrepo
[root@repo-server ~]# tree /export/custom-repo/yum-channels/custom-repo-channel-sys/
/export/custom-repo/yum-channels/custom-repo-channel-sys/
├── Makefile
├── SRPMS
│   └── repodata
│       ├── 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
│       ├── 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
│       ├── 77a287c136f4ff47df506229b9ba67d57273aa525f06ddf41a3fef39908d61a7-other.sqlite.bz2
│       ├── 8596812757300b1d87f2682aff7d323fdeb5dd8ee28c11009e5980cb5cd4be14-primary.sqlite.bz2
│       ├── dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
│       ├── f8606d9f21d61a8bf405af7144e16f6d7cb1202becb78ba5fea7d0f1cd06a0b2-filelists.sqlite.bz2
│       └── repomd.xml
└── x86_64
    └── repodata
        ├── 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
        ├── 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
        ├── 77a287c136f4ff47df506229b9ba67d57273aa525f06ddf41a3fef39908d61a7-other.sqlite.bz2
        ├── 8596812757300b1d87f2682aff7d323fdeb5dd8ee28c11009e5980cb5cd4be14-primary.sqlite.bz2
        ├── dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
        ├── f8606d9f21d61a8bf405af7144e16f6d7cb1202becb78ba5fea7d0f1cd06a0b2-filelists.sqlite.bz2
        └── repomd.xml

4 directories, 15 files

Installing and configuring httpd to host the yum repository.

Setting up httpd web server, and configure it to host the repos.

Install httpd

yum install httpd

Configuration.

Create a file in /etc/httpd/conf.d/ as custom-repo-channel-app.conf.
Alias /customrepochannelapp "/export/custom-repo/yum-channels/custom-repo-channel-app"
<Directory "/export/custom-repo/yum-channels/custom-repo-channel-app">
    Options +Indexes
    Allow from all
</Directory>
httpd configuration for the server for all the repos.
[root@repo-server ~]# cat /etc/httpd/conf.d/
custom-repo-channel-app.conf  custom-repo-channel-sys.conf  README              welcome.conf
[root@repo-server ~]# cat /etc/httpd/conf.d/custom-repo-channel-*
Alias /customrepochannelapp "/export/custom-repo/yum-channels/custom-repo-channel-app"
<Directory "/export/custom-repo/yum-channels/custom-repo-channel-app">
    Options +Indexes
    Allow from all
</Directory>

Alias /customrepochannelsys "/export/custom-repo/yum-channels/custom-repo-channel-sys"
<Directory "/export/custom-repo/yum-channels/custom-repo-channel-sys">
    Options +Indexes
    Allow from all
</Directory>

[root@repo-server ~]#
Restart httpd server.
service httpd restart

Configuring yum.

Create a file custom-channel.repo in /etc/yum.repos.d/.
We are using below config to setup yum repo on clients servers which want to get the rpms from the repo-server, for now we are configuring on the repo-server itself for demonstration. NOTE: If this repo is inside the network which does not need a proxy then, make sure to use proxy=_none_ as we do NOT want the repo to use it.
[custom-repo-channel-appsrc-repo]
name=Custom Channel App Source Repository
baseurl=http://ift.tt/1GJhvgW
gpgcheck=0
enabled=1
proxy=_none_
Complete list of rpms configured as below.
[root@repo-server ~]# cat /etc/yum.repos.d/custom-channel.repo
[custom-repo-channel-appsrc-repo]
name=Custom Channel App Source Repository
baseurl=http://ift.tt/1GJhvgW
gpgcheck=0
enabled=1
proxy=_none_

[custom-repo-channel-app-repo]
name=Custom Channel App Repository
baseurl=http://ift.tt/1Sl51go
gpgcheck=0
enabled=1
proxy=_none_

[custom-repo-channel-syssrc-repo]
name=Custom Channel System Source Repository
baseurl=http://ift.tt/1GJhxp5
gpgcheck=0
enabled=1
proxy=_none_

[custom-repo-channel-sys-repo]
name=Custom Channel System Repository
baseurl=http://ift.tt/1Sl51gq
gpgcheck=0
enabled=1
proxy=_none_
[root@repo-server ~]#
Here is the output for repolist.
[root@repo-server ~]# yum repolist
Loaded plugins: product-id, rhnplugin, security, subscription-manager
repo id                                             repo name                                                  status
custom-repo-channel-app-repo         Custom Channel App Repository                                               112
custom-repo-channel-appsrc-repo      Custom Channel App Source Repository                                         12
custom-repo-channel-sys-repo         Custom Channel System Repository                                            144
custom-repo-channel-syssrc-repo      Custom Channel System Source Repository                                      44
rhel-6-server-rpms                   Red Hat Enterprise Linux 6 Server (RPMs)                                 16,167
rhel-server-dts-6-rpms               Red Hat Developer Toolset RPMs for Red Hat Enterprise Linux 6 Server         84
rhel-server-dts2-6-rpms              Red Hat Developer Toolset 2 RPMs for Red Hat Enterprise Linux 6 Server      469
repolist: xx
[root@repo-server ~]#

from Blogger http://ift.tt/1GJhvxc
via IFTTT

Advertisements
Categories: Others Tags: ,
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: