Pages

Saturday, July 11, 2015

How to setup mrepo Redhat 7


The mrepo is a repository building tool for the synchronizing the remote repository to local yum or apt repositories.  The following configuration needs to be performed to configure mrepo local repositories in the redhat linux 7. They

1. Pre-requisite

Install the Red hat 7 Enterprise Edition.

2. Registering the System

Run the following command to register the system in red hat network.

subscription-manager register --username <Red Hat User Name> --password <Red Hat User Password> --auto-attach

After executing the above command, it will generate the client-key, client-cert and redhat-ca cert as follows:

Client Key : /etc/pki/entitlement/<Numeric Number>-key.pem
Client Cert:/etc/pki/entitlement/<Numberic Number>.pem
Redhat CA Cert: /etc/rhsm/ca/redhat-uep.pem

It will also generate the /etc/yum.repos.d/redhat.repo file.

3. Installing the Packages

 Run the yum update command to update the latest packages from the redhat network.

The following packages are required to configure the mrepo. They are

 3.1 lftp


       lftp is a ftp tool to get the repositories from the remote system. It supports ftp, sftp, http, and https protocols.

 3.2 httpd

       The httpd is a apache web server and it is being used to update the red hat systems in your network using yum repo.

 3.3 mrepo

      The mrepo is repository building tool and it being used to synchronize the remote system to local system repository using various protocols such as ftp,sftp, reposync, reposyncs, http and https.

 3.4 Installing lftp and httpd

    Run the  yum install lftp httpd command and it will install the lftp and httpd component in the linx system.

 3.5 Installing the mrepo

 By default mrepo package is not available in the redhat network and it is available in the repofroge repository.

Execute the following command download the mrepo:

wget http://pkgs.repoforge.org/mrepo/mrepo-0.8.8-0.pre1.el6.rft.noarch.rpm

After Downloading the mrepo rpm and execute the following command to install the mrepo.

yum install mrepo-0.8.8-0.pre1.el6.rft.noarch.rpm



4. Creating the Red Hat mrepo conf


Red Hat repository file needs to be created in the /etc/mrepo.conf.d/ directory and file name is redhat-7-x86_64.conf. This configuration is required because it will synchronize the remote repository to your local repository. Add the following content to the redhat-7-x86_64.conf file.

[redhat-7]
name = Red Hat Enterprise Linux Server $release ($arch)
release = 7
arch = x86_64
metadata = yum repomd

fastrack = https://cdn.redhat.com/rhel-x86_64-server-fastrack-7
os = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/Packages
extras = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/extras/os/Packages
rhn-tools = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/rhn-tools/os/Packages
oracle-java = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/oracle-java/os/Packages
rh-common = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/rh-common/os/Packages
supplementary = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/supplementary/os/Packages
optional = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/optional/os/Packages


5. Configuring the lftp.conf

The lftp.conf file needs to be configured because to store the lftp ssl parameter permanently in the global config. This configuration is required for to establish the connectivity from your local repository to remote repository.

5.1 SSL Configuration


set ssl:ca-file "/etc/rhsm/ca/redhat-uep.pem"
set ssl:key-file "/etc/pki/entitlement/<Numeric Number>-key.pem"
set ssl:cert-file "/etc/pki/entitlement/<Numeric Number>.pem"

5.2 Network Time Out


set net:timeout 86400

5.3 Testing the LFTP Connectivity

After configuring the step 5.1 and 5.2, you can verify the connectivity from local repository to remote repository as follows:

lftp  https://cdn.redhat.com/rhel-x86_64-server-fastrack-7

The above command will open the remote connectivity and you can navigate the files using lftp commands. For example, I want to list the data from the remote repository using ls command as follows:

ls -ltr

The above command will retrieve the data from the cdn.redhat.com network.


6. Configuring the Apache httpd conf

The mrepo.conf file needs to be modified in /etc/httpd/conf.d to display the repository info into the local repository web site. Edit the mrepo.conf file and search the Red Hat Enterprise Server5 string into the file and add next line to the Red Hat Enterprise Server 5.


AddDecription "Red Hat Enterprise Server 7 for x86_64" redhat-7-x86_64

 The redhat-7-x86_64 content is configured in the mrepo config file.  The redhat-7 is the section name and x86_64 is architecture. Both will be appended and created as directory /var/mrepo/redhat-7-x86_64 after synchronizing the repo using the mrepo command.


7. Synchronizing the Repository

Execute the following command to synchronize the red hat 7 repository to your local repository:

mrepo -guvv  <Repo Name>

For example my repo section name is redhat-7. The command look like this.

mrepo -guvv redhat-7

The above command will synchronize the remote repository to local repository.




8. Scheduling the Cron Job for Mrepo


After synchronizing the remote repository to local repository,  we need to synchronize the latest updates from remote repository to local repository using the Linux Daily Cron Job. For example my cron job will run every day at 2.30 AM and pull the changes from the redhat network.

We need to create  mrepo file in /etc/cron.d/ and add the following content to configure the cron job.

 30 2 * * * root /usr/bin/mrepo -q –ug


9. Enabling the Http Service

We need to enable the httpd service to restart automatically after rebooting the server. Execute the following command to enable the httpd service:

systemctl enable httpd

It will enable the service and also it create the symlinks for the httpd service as follows:

ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'


10. Configuring the Se-Linux Context

This step is mandatory only if your enable the se-linux. Configuring the selinux context for httpd  mrepo as follows:

semanage fcontext -a -t httpd_sys_content_t "/var/mrepo(/.*)?"

After executing the above command and it will configure the selinux context for mrepo and also it will persist the configuration details into the /etc/selinux/targeted/contexts/files/file_contexts.local file.

restorecon -R /var/mrepo

After executing the above command and it will read the configuration from the /etc/selinux/targeted/contexts/files/file_contexts.local file and enable the selinux context for the directory /var/mrepo

  


47 comments:

  1. Hello,

    I have used the mrepo synchronized to the rhel-7-server-rpms channel (os).
    I wanted to see with you, if you know any way to pull only the last release packages in case the 7.1.
    I ask therefore be synchronizing old packages is not a good idea.

    I thank you.

    Fabian

    ReplyDelete
  2. Hi Fabian,

    It will pull the latest packages only after executing the mrepo. We usually pull the latest updates on weekly basis.

    Thanks
    Ameer Basha

    ReplyDelete
  3. Hi, mrepo realy work with EL ?

    Evgen

    ReplyDelete
  4. os = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/Packages
    optional = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/optional/os/Packages
    os-latest = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os-latest/os/Packages
    updates = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/updates/os/Packages

    ReplyDelete
  5. The first to URLs are working (os and optional)
    however, os-latest and updates yields a 404 Forbidden

    ReplyDelete
  6. Hi

    The latest and updates are available in the os and optional packages.

    ReplyDelete
  7. Hi, can I also pull down RHEL6 and 5 Repo's? and maybe CentOS? seems like an awersome writeup and I can't wait to try it out. We are trying to get rid of Satellite and use Spacewalk instead (over 20K in savings yearly) Thanks!

    ReplyDelete
  8. Hi,

    Yes, You can pull down the rhel 6, rhel 5 and also centos. This article mainly focus using lftp to pull the repository data based on the urls. Each repository you need to create a mrepo config file. For example redhat 6 should be redhat-x86_64.conf for 64 bit os.

    Please let me know if you need more assistance.

    ReplyDelete
  9. Hi. Does the lftp work properly thruogh proxy? I tried make it work for 2 days but no success.

    ReplyDelete
    Replies
    1. Are you getting any error while connecting lftp using proxy. Please post the error and I will respond asap.

      Delete
    2. Yes. 407 error "Authentication required":
      Authentication failed either because credentials were not provided or they could not be validated. In the same time i've set proxy to enviroment (http_proxy, https_proxy). And wget, for example, using proxy perfectly.

      Delete
  10. So far so good. One more question :) do i have to create a config file for each .version? or is there a way to get all 6.x in one .conf file.

    ReplyDelete
    Replies
    1. Hi

      You need to create a separate config file for each version.

      Delete
    2. I guess I may have stated that wrong. I'm talking about the .# release. for example 6.1, 6.2, etc... I looked at the dl.fedoraproject.org/pub site and I don't see folders for these so I'm guessing I have it setup correctly for all 6.# versions? or am I missing something? thanks for your time again!!

      Delete
    3. So let me know if this is correct. I do create the config files for 6.1, 6.2, etc... but it goes to the same 6Server folder structure. Basically (from what I see) it creates repodata files only? if so great :)

      Delete
    4. Hi DaBearGrowls,
      Sorry for the miss communication. You need to setup separate config files for the epel repository. For Example epel 6 x86_64 and epel 7 x86_64 looks as follows

      EPEL 6 X86_64

      [epel-6]
      name = Enterprise Linux Server $release ($arch)
      release = 6
      arch = x86_64
      metadata = yum repomd

      epel = https://dl.fedoraproject.org/pub/epel/6/x86_64/


      EPEL 7 X86_64

      [epel-7]
      name = Enterprise Linux Server $release ($arch)
      release = 7
      arch = x86_64
      metadata = yum repomd

      epel = https://dl.fedoraproject.org/pub/epel/7/x86_64/


      In the above configuration, it will synchronize the epel 6.x.x and 7.x.x version automatically when you run the mrepo.

      Please let me know if you need more info.

      Delete
    5. Excellent. I saw someone else do it for 6.5 so that's where I became confused. This will make it much simpler with less conf files. Awesome write-up!

      Delete
  11. Alright, one more brain picking question :). The Repo is looking good so I wanted to give a install a try. It seems no installs work since its missing the install image directory. I found this article and was wondering is this the way to go? or do you have a better way using mrepo so sync install.

    http://lists.repoforge.org/pipermail/tools/2012-January/004073.html

    ReplyDelete
  12. Hi,
    You need to download the operating system iso and build iso image using the mrepo repository config file. For example redhat 7 iso image:

    iso=rhel-7.latest-server-x86_64-dvd.iso


    Once you setup the iso image in mrepo repository, you can install the os using the kickstart file.

    Thanks,
    Ameer Basha

    ReplyDelete
  13. Hi Ameer, I found an issue and maybe I'm just doing it wrong :). I have Redhat working and it downloads all the packages which have names like _5 _6 for releases. CentOS on the other hand doesn't. I select the folder 6 from the website but it only has the original 6 (not 6.1,2,etc...). Is there a way to get ALL releases in from CentOS?

    ReplyDelete
  14. Hi Ameer, I found an issue and maybe I'm just doing it wrong :). I have Redhat working and it downloads all the packages which have names like _5 _6 for releases. CentOS on the other hand doesn't. I select the folder 6 from the website but it only has the original 6 (not 6.1,2,etc...). Is there a way to get ALL releases in from CentOS?

    ReplyDelete
    Replies
    1. Hi,
      The Cent OS 6 Base Package have all the version of Centos. You can Download the latest packages from CentOS 6: http://mirror.centos.org/centos/6/

      Cent OS 7: http://mirror.centos.org/centos/7/

      You can see the centos repo variabsles as follows:

      python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)'

      This will return the CentOS Base_Search, Release Server.

      If you update the centos packages, it will show the latest architecture, release details etc.

      In my test system centos repo configuration as follows:

      [base]
      name=CentOS-$releasever - Base
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

      #released updates
      [updates]
      name=CentOS-$releasever - Updates
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

      #additional packages that may be useful
      [extras]
      name=CentOS-$releasever - Extras
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

      #additional packages that extend functionality of existing packages
      [centosplus]
      name=CentOS-$releasever - Plus
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
      gpgcheck=1
      enabled=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7




      Please let me know if you need more info.

      Delete
  15. Hmm... those are different then from Redhat. On the redhat repo I select 6Server and I have (Currently 18000 packages as its still downloading!) and in CentOS It only have 6696 in the os folder and its complete. So for example....

    For CentOS I have

    389-ds-base-1.2.11.15-74.el6.x86_64.rpm
    389-ds-base-devel-1.2.11.15-74.el6.i686.rpm
    389-ds-base-devel-1.2.11.15-74.el6.x86_64.rpm
    389-ds-base-libs-1.2.11.15-74.el6.i686.rpm
    389-ds-base-libs-1.2.11.15-74.el6.x86_64.rpm

    For Redhat I have

    389-ds-base-1.2.10.2-15.el6.x86_64.rpm
    389-ds-base-1.2.10.2-18.el6_3.x86_64.rpm
    389-ds-base-1.2.10.2-20.el6_3.x86_64.rpm
    389-ds-base-1.2.11.15-11.el6.x86_64.rpm
    389-ds-base-1.2.11.15-12.el6_4.x86_64.rpm
    389-ds-base-1.2.11.15-14.el6_4.x86_64.rpm
    389-ds-base-1.2.11.15-20.el6_4.x86_64.rpm
    389-ds-base-1.2.11.15-22.el6_4.x86_64.rpm
    389-ds-base-1.2.11.15-29.el6.x86_64.rpm
    389-ds-base-1.2.11.15-30.el6_5.x86_64.rpm
    389-ds-base-1.2.11.15-31.el6_5.x86_64.rpm
    389-ds-base-1.2.11.15-32.el6_5.x86_64.rpm
    389-ds-base-1.2.11.15-33.el6_5.x86_64.rpm
    389-ds-base-1.2.11.15-34.el6_5.x86_64.rpm
    389-ds-base-1.2.11.15-45.el6.x86_64.rpm
    389-ds-base-1.2.11.15-46.el6.x86_64.rpm
    389-ds-base-1.2.11.15-47.el6.x86_64.rpm
    389-ds-base-1.2.11.15-48.el6_6.x86_64.rpm
    389-ds-base-1.2.11.15-50.el6_6.x86_64.rpm
    389-ds-base-1.2.11.15-60.el6.x86_64.rpm
    389-ds-base-1.2.11.15-62.el6_7.x86_64.rpm
    389-ds-base-1.2.11.15-65.el6_7.x86_64.rpm
    389-ds-base-1.2.11.15-68.el6_7.x86_64.rpm
    389-ds-base-1.2.11.15-69.el6_7.x86_64.rpm
    389-ds-base-1.2.11.15-72.el6_7.x86_64.rpm
    389-ds-base-1.2.11.15-74.el6.x86_64.rpm
    389-ds-base-1.2.8.2-1.el6_1.3.x86_64.rpm
    389-ds-base-1.2.8.2-1.el6.x86_64.rpm
    389-ds-base-1.2.9.14-1.el6_2.2.x86_64.rpm
    389-ds-base-1.2.9.14-1.el6.x86_64.rpm
    389-ds-base-libs-1.2.10.2-15.el6.i686.rpm
    389-ds-base-libs-1.2.10.2-15.el6.x86_64.rpm
    389-ds-base-libs-1.2.10.2-18.el6_3.i686.rpm
    389-ds-base-libs-1.2.10.2-18.el6_3.x86_64.rpm
    389-ds-base-libs-1.2.10.2-20.el6_3.i686.rpm
    389-ds-base-libs-1.2.10.2-20.el6_3.x86_64.rpm
    389-ds-base-libs-1.2.11.15-11.el6.i686.rpm
    389-ds-base-libs-1.2.11.15-11.el6.x86_64.rpm
    389-ds-base-libs-1.2.11.15-12.el6_4.i686.rpm
    389-ds-base-libs-1.2.11.15-12.el6_4.x86_64.rpm
    389-ds-base-libs-1.2.11.15-14.el6_4.i686.rpm


    Major difference. :) I had to cut the list short due to character limitations

    ReplyDelete
    Replies
    1. Hi

      The packages are different for each operating system. The repo needs to satisfies the requirement. We use two repos. One is Redhat from 5 to 7 and Oracle 7. Oracle 7 and redhat packages are different. Repo file sizes are different.

      Please let me know if you need more info.

      Delete
    2. Its not that but if you look at the list I gave you above you just look at the bottom and see el6_4 and above that el6_3. That's telling me (if I understand correctl) that the packages are for version 6.3 and 6.4 correct? Well this all comes from one repo. If I want the same thing in CentOS I would have to sync every version to get all these libraries instead of the one repo redhat has. So that's basically my question. Is there a one big repo for centos that has all the packages from 6.1 - 6.8. Sorry for the confusion. If I have to create seperate config files I'm fine with that I just wanted to make sure I was doing this the most efficient way.

      Delete
    3. Hi

      CentOS 7 base version have the latest Cent OS Version. I have done the following testing to download the centos packages.

      I have installed the CentOS-7-x86_64-DVD-1503-01 and I check the redhat version as follows:

      cat /etc/redhat-release

      After Executing the above command and it will print the centos installed version:

      CentOS Linux release 7.1.1503 (Core)

      After installing the centos 7.1.1503 and i have updated the centos as follows:

      yum update -y

      After updated latest packages, My centos relase version also updated.

      cat /etc/redhat-release

      After Executing the above command and it will print the centos updated version:

      CentOS Linux release 7.2.1511 (Core)


      My message to you, the latest packages are available in the base version. For Example Cent OS 7 repo. You can check the CentoS repo file after installed or updated in the system. The centos repository always point to the Base version of Cent OS 7. My Centos.repo as follows:

      [base]
      name=CentOS-$releasever - Base
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

      #released updates
      [updates]
      name=CentOS-$releasever - Updates
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

      #additional packages that may be useful
      [extras]
      name=CentOS-$releasever - Extras
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

      #additional packages that extend functionality of existing packages
      [centosplus]
      name=CentOS-$releasever - Plus
      mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
      #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
      gpgcheck=1
      enabled=0
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

      In the above repo file have the following variables:

      $releasever
      $basearch
      $infra

      You can print the above variable values using the following command:

      python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)'

      {'arch': 'ia32e',
      'basearch': 'x86_64',
      'infra': 'stock',
      'releasever': '7',
      'uuid': '7932d1c7-73da-4196-8e13-3b058df3e430'}

      If you substitute the variable and url looks like this:

      http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock

      Copy and paste the url in the browser and it will print the latest centos packages:

      http://distro.ibiblio.org/centos/7.2.1511/updates/x86_64/
      http://mirror.confluxtech.com/centos/7.2.1511/updates/x86_64/
      http://centos.netnitco.net/7.2.1511/updates/x86_64/
      http://ftp.usf.edu/pub/centos/7.2.1511/updates/x86_64/
      http://mirrors.cat.pdx.edu/centos/7.2.1511/updates/x86_64/
      http://dallas.tx.mirror.xygenhosting.com/CentOS/7.2.1511/updates/x86_64/
      http://centos.mirrors.wvstateu.edu/7.2.1511/updates/x86_64/
      http://mirror.beyondhosting.net/CentOS/7.2.1511/updates/x86_64/
      http://mirror.eboundhost.com/CentOS/7.2.1511/updates/x86_64/
      http://www.gtlib.gatech.edu/pub/centos/7.2.1511/updates/x86_64/


      I have check the centos package 7 and 7.2.1115 Update packages both are same.

      Please let me know if you need more info.

      Delete
    4. I understand that portion and that works as expected. I was just looking to have the identical to redhat. My redhat 6 repo has 18000 packages but CentOS had 6900'ish. Its not that I need these packages for the latest build I just want to know I have the ability to roll back, or find an older version of a RPM. Sorry for the misunderstanding :)

      Delete
    5. This comment has been removed by the author.

      Delete
  16. Hello,

    When i try : lftp https://cdn.redhat.com/rhel-x86_64-server-fastrack-7

    i stuck on [Connecting....]

    ReplyDelete
    Replies
    1. Can someone have an idea please ?

      Thank you all

      Delete
    2. I have the same for all links for information

      Delete
    3. Hi
      You need to configure the ssl information to setup the redhat mrepo. The following properties are configured globally in the /etc/lftp.conf or you can configure user specific preoperties ~/.lftp/rc to establish the ssl connectivity from redhat mrepo host to cdn network.


      set ssl:ca-file "/etc/pki/tls/certs-rhn-rhel7/redhat-uep.pem"

      The following certs needs to be get from the redhat registered system.

      set ssl:key-file "/etc/pki/tls/certs-rhn-rhel7/1990xxx-key.pem"
      set ssl:cert-file "/etc/pki/tls/certs-rhn-rhel7/199xx.pem"

      Please let me know if you need more.

      Delete
    4. Hello Ok Thank you for your help.

      I will try this and give you a back

      Delete
  17. Thanks for the great work. I have a RHEL 6.5 server registered to RHN classic. What should be my configuration file ..

    # cd /etc/mrepo.conf.d/
    # cat rhel6-x86_64.conf
    [rhel6-x86_64]
    name = Red Hat Server ($arch)
    release = 6
    arch = x86_64
    #metadata = repomd yum repoview
    metadata = yum repomd
    base = rhns:///rhel-$arch-server-$release
    #updates = rhns://cdn.redhat.com/rhel-$arch-server-$release
    #fastrack = rhns:///rhel-$arch-server-fastrack-$release
    #rhn-tools = rhns:///rhn-tools-rhel-$arch-server-$release
    #optional = rhns:///rhel-$arch-server-optional-$release
    #supplementary = rhns:///rhel-$arch-server-supplementary-$release

    ReplyDelete
  18. Hi!
    I have RHEL6 mrepo instance and copy keys and pems from other subscriptioned RHEL7 installation.
    I did this tasks in lftp.conf and after point 5.3 get:
    cd: Access failed: 403 Forbidden (/rhel-x86_64-server-fastrack-7)

    What wrong i do?

    ReplyDelete
  19. Hi,

    Did you configure the step 5.1 and 5.2. If you configured correctly and It will work as it is. My instance also the same as yours. Please let me know if you need more info.

    ReplyDelete
    Replies
    1. Yes, I configure lftp as this manual.
      I get test with url "https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/Packages" and test get ok.
      Repo working, thanks a lot!

      Delete
  20. Hi
    Thanks for the great work ! Repo RHEL7 working !

    But did anyone find a solution where mrepo/lftp only downloads the latest version of a package and not all as seen below?
    389-ds-base-1.3.1.6-25.el7.x86_64.rpm
    389-ds-base-1.3.1.6-26.el7_0.x86_64.rpm
    389-ds-base-1.3.3.1-13.el7.x86_64.rpm
    389-ds-base-1.3.3.1-15.el7_1.x86_64.rpm
    389-ds-base-1.3.3.1-16.el7_1.x86_64.rpm
    389-ds-base-1.3.3.1-20.el7_1.x86_64.rpm
    389-ds-base-1.3.3.1-23.el7_1.x86_64.rpm
    389-ds-base-1.3.4.0-19.el7.x86_64.rpm
    389-ds-base-1.3.4.0-21.el7_2.x86_64.rpm
    389-ds-base-1.3.4.0-26.el7_2.x86_64.rpm
    389-ds-base-1.3.4.0-29.el7_2.x86_64.rpm
    389-ds-base-1.3.4.0-30.el7_2.x86_64.rpm
    389-ds-base-1.3.4.0-32.el7_2.x86_64.rpm
    389-ds-base-1.3.4.0-33.el7_2.x86_64.rpm
    389-ds-base-1.3.5.10-11.el7.x86_64.rpm
    389-ds-base-1.3.5.10-12.el7_3.x86_64.rpm

    Because, for example, "rhel-7-server-rpms" repository : Repo-size 17 G

    Before with RHEL6 I used :
    ## Download older versions of a certain package ?
    rhnget-download-all = no

    Do you know of any other option or script ?

    Thanks a lot for your help !

    ReplyDelete
  21. Hi

    As you know Red Hat will shutdown RHN on 31 July 2017. How to configure mrepo for downloading updates from RHSM for RHEL 5 and RHEL 6 OSes?

    Thanks & Regards
    Charanjit Singh

    ReplyDelete
  22. Hi Charanjit Singh,

    you can use red hat cdn network to download the latest update packages for rehl 5 and rhel 6. Please let me know if you need any help.

    ReplyDelete
    Replies
    1. Hi I have configured the lftp.conf file with ssl keys and ca cert but I am getting below error message while testing the CDN connectivity with lftp command:

      lftp https://cdn.redhat.com/content/dist/rhel/server/6/$releasever/$basearch/os
      cd: Access failed: 403 Forbidden (/content/dist/rhel/server/6/os)

      How to resolve this issue please suggest.

      Delete
  23. Odd thing. I can't seem to get my CentOS to sync up. I know the site is correct as I browsed to it and see the files but when I sync it doesn't copy the latest. Is there some metadata I could clear out to make it resync?

    ReplyDelete
    Replies
    1. and it does try to sync and thinks it all in sync...but its not.

      Delete
  24. Hi! Year-after-year, mrepo is working perfectly, but i get new issue.
    I want to use gpgcheck=1 in YUM conf files and have correct GPG-KEY of every repo. And i doesn't find any information for create or download this KEY's for every channels RHEL6 and RHEL7 with mrepo.
    Do you know something about custom KEYS for every repos?

    ReplyDelete
  25. Though I can able to test lftp https://cdn.redhat.com/content/dist/rhel/server/6/6Server/x86_64/os/Packages
    lftp https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/Packages

    but when I am trying to do lftp https://cdn.redhat.com/rhel-x86_64-server-fastrack-7
    getting error message
    cd: Access failed: 403 Forbidden (/rhel-x86_64-server-fastrack-7)

    ReplyDelete
  26. mrepo: Mirroring failed for https://cdn.redhat.com/content/dist/rhel/server/6/6Server/x86_64/os/Packages with message:
    Failed with return code: 139

    Why I am getting this error..Anyone has any clue?

    ReplyDelete