Creating a Local Fedora 12 Yum Repository
Fedora 12 has just been released so it’s time to add it to our arsenal of local yum repositories. We all know the importance of creating a local YUM repository on your LAN. Not only do you decrease the time it takes to download and install updates, you also decrease bandwidth usage.
This How To will show you a simple yet effective way of setting up your local Fedora 12 YUM repository and client.
TIP: Distribute your Fedora YUM configuration via your Puppet Master
Preliminary Note:
I am using two Fedora 12 installations in this tutorial with server1.example.co.za configured with Apache httpd
- server1.example.co.za (IP 10.0.0.100): Fedora 12 YUM Repository and httpd server
- server2.example.co.za (IP 10.0.0.102): Fedora 12 YUM client
Configure Fedora YUM repo and httpd server as follows:
Create the following Directories:
# mkdir -p /var/www/html/fedora/12/os/i386 # mkdir -p /var/www/html/fedora/12/os/x86_64
Create a bash script that will rsync your local YUM Repository server with your local YUM mirror (Make sure the mirror supports rsync).
Fedora Mirror list – http://mirrors.fedoraproject.org/publiclist
# vi fedora-repo-update.sh
#!/bin/sh rsync="rsync -avrt --bwlimit=256" mirror=mirrors.kernel.org::mirrors/fedora verlist="12" archlist="i386 x86_64" baselist="os" local=/var/www/html/fedora/ for ver in $verlist do for arch in $archlist do for base in $baselist do remote=$mirror/releases/$ver/Fedora/$arch/$base/ $rsync $remote $local/$ver/$base/$arch/ done done done
# chmod 755 fedora-repo-update.sh
Add the bash script to your crontab to update your local repository every night (01H00 in this case)
# crontab -e
# minute (0-59), # | hour (0-23), # | | day of the month (1-31), # | | | month of the year (1-12), # | | | | day of the week (0-6 with 0=Sunday). # | | | | | commands # -----------[ cron jobs ]------------ # # Update Local YUM repo update from fedora.mirror.facebook.net 0 1 * * * /path/to/fedora-repo-update.sh
Configure Fedora YUM client servers as follows:
Rename all existing yum repositories from *.repo to *.old
# vi /etc/yum.repos.d/localFedora.repo
[base] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://server1.example.co.za/fedora/$releasever/$basearch/os/ enabled=1 gpgcheck=0
Test your setup by running a yum update on your client machine.
# yum update Loading "fastestmirror" plugin Loading mirror speeds from cached hostfile * update: server1.example.co.za * base: server1.example.co.za