CentOS Are Debian / Ubuntu Mirror

Home » CentOS » CentOS Are Debian / Ubuntu Mirror
CentOS 13 Comments

Hi,

Does anyone have some instructions on setting up a CentOS server as mirror for Debian and Ubuntu distributions? I already setup a YUM mirror and this works fairly well, but cannot seem to figure out how to mirror Debian and Ubuntu repositories.

13 thoughts on - CentOS Are Debian / Ubuntu Mirror

  • At Mon, 19 Apr 2021 08:55:54 +0200 CentOS mailing list wrote:

    You need to grab a copy of debmirror, which is just a Perl script, so it should work under CentOS. I don’t know where to get a version as a tarball

  • Thank you. This at least point me in the right direction. I don’t quite want to setup 2 servers, or 2 VM’s for this.

  • Hello,

    Is Pulp not supposed to do what you want : RPM, DEB and more in the same software ?

    I’m not using Pulp, just reading their website.

    Regards,

  • At Mon, 19 Apr 2021 14:25:33 +0200 CentOS mailing list wrote:

    Sure, of course. I had the VM already setup for other reasons, so it was just easy to do “apt install debmirror” rather than chase down a debmirror tarball… I’m sure a debmirror tarball is out there somewhere. There might even be a debmirror RPM even…

  • Coming back to the original question: mirror hosting variety of distributions, does not have to have any packaging or other tools used by those distributions. Public mirror box I support runs FreeBSD, and hosts mirrors of CentOS, Ubuntu, CPAN, EPEL, …

    I hope, this helps.

    Valeri

  • Short answer: yes.

    Long answer:
    Every repository has its own suggestion how to mirror. I do not have Debian mirror, my friend sysadmin in the next building maintains one, no need for two in the same institution. Here in my cron job script for mirroring CentOS (with some local details obfuscated):

    #==============
    #!/usr/local/bin/bash
    # We use locks…

    touch=/usr/bin/touch echo=/bin/echo ps=/bin/ps cat=/bin/cat grep=/usr/bin/grep wc=/usr/bin/wc rm=/bin/rm sendmail=/usr/sbin/sendmail date=/bin/date rsync=/usr/local/bin/rsync
    # DEFAULTS
    ADDR=recipient@server FROM=sender@hostingmirror lockfile=/…/lock/CentOSmirror.lock mirror=/…/mirror/CentOS
    logfile=/…/mirrorlog/CentOS.log

    # check if log file exists, and create if not

    if [ ! -f $logfile ]; then
    $touch $logfile fi

    # check if lock exists, then bale out sending warning,
    # otherwise rsync

    if [ -f $lockfile ]; then

    # check if the process resembling lock still exists,
    # if not, just delete lock

    if [ “$($ps -p `$cat $lockfile` | $wc -l)” -gt 1 ]; then

    # Send the message
    (
    $echo “From: $FROM”
    $echo “To: $ADDR”
    $echo “Subject: CentOS mirror failed”
    $echo “”
    $echo “CentOS mirror process bailed out as there is another process”
    $echo “with the same name and the following PID:”
    $echo “”
    $echo “`$cat $lockfile`”
    echo “”
    echo “You may want to check logs:”
    echo “”
    echo “/…/mirrorlog/CentOS.log”
    ) | $sendmail -F $ADDR -t

    else

    # no process, just delete the lock, and mirror

    $rm -f $lockfile

    $echo $$ > $lockfile
    $echo “`$date` started mirroring” >> $logfile
    $rsync -aqH –exclude .~tmp~/ –exclude .~tmp~ –delete us-msync.CentOS.org::CentOS /data/mirror/CentOS
    $echo “`$date` finished mirroring” >> $logfile
    $rm $lockfile

    fi

    else

    $echo $$ > $lockfile
    $echo “`$date` started mirroring” >> $logfile
    $rsync -aqH –exclude .~tmp~/ –exclude .~tmp~ –delete us-msync.CentOS.org::CentOS /data/mirror/CentOS
    $echo “`$date` finished mirroring” >> $logfile
    $rm $lockfile

    fi
    #================================


    ++++++++++++++++++++++++++++++++++++++++
    Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
    ++++++++++++++++++++++++++++++++++++++++

  • I forgot to mention: before mirroring using higher tier repository:
    contact their admin, ask if they do not mind that you will mirror using them as a higher tier mirror, and tell them all details: public/private mirror, your bandwidth, how often you plan to run sync – and ask them what frequency of sync is OK with them.

    After you roll out and know all works, if your plan is public mirror, next step will be to register your mirror.

    All in all, every distribution has HOWTO instruction to become their mirror, follow these.

    And as always, use web search to find these instructions: duckduckgo is your friend.

    Valeri


    ++++++++++++++++++++++++++++++++++++++++
    Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
    ++++++++++++++++++++++++++++++++++++++++