On Fri, Oct 10, 2008 at 11:22 PM, Filipe Brandenburger filbranden@gmail.com wrote:
Hi,
On Fri, Oct 10, 2008 at 17:10, Rudi Ahlers rudiahlers@gmail.com wrote:
How do I actually keep a local repository on the LAN, which can be used by other hosts with yum & HTTP installations? I currently use mrepo for this purpose, but it puts everything in different folders, like so:
I was also using mrepo for that, but I gave up because "yum groupinstall" does not work with it, and I also found it a little awkward to keep multiple releases (5.1, 5.2) with it, which is something that I want since I want to upgrade the test machines to 5.2 before I do it on the production environment.
I rolled a script that uses rsync to do that.
See this:
# Instructions on how to mirror CentOS: # http://www.centos.org/modules/tinycontent/index.php?id=22
# MirrorList: # http://www.centos.org/modules/tinycontent/index.php?id=13
Basically these are the commands I use:
centos_mirror=rsync.arcticnetwork.ca::centos # closest one to me, you may want to change this
echo "===> Mirroring CentOS 5.2 (x86_64 and i386)" rsync -azH --delete "$centos_mirror"/5.2/ \ /var/www/mirror/centos/5.2/ \ --include '/*/x86_64/' --include '/*/i386/' --exclude '/*/*/' \ -v || error=yes
echo "" echo "===> Mirroring CentOS 4.7 (x86_64 only, no isos, no cluster suite)" rsync -azH --delete "$centos_mirror"/4.7/ \ /var/www/mirror/centos/4.7/ \ --include '/*/x86_64/' --exclude '/*/*/' \ --exclude '/isos/' --exclude '/csgfs/' \ -v || error=yes
echo "" echo "===> Mirroring CentOS GPG keys" rsync -azH -L "$centos_mirror"/"RPM-GPG-KEY-*" \ /var/www/mirror/centos/ \ -v || error=yes
I tweaked the rsync includes/excludes because I want to have CentOS 5 for both i386 and x86_64, and CentOS 4 for x86_64 only.
Then in yum.conf I comment mirrorlist= and uncomment baseurl= and replace "mirror.centos.org" with "mirror.mydomain.net". This is the [base] section of my CentOS-Base.repo:
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&rep... baseurl=http://mirror.mydomain.net/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.mydomain.net/centos/RPM-GPG-KEY-CentOS-5 priority=1
This is what I have in httpd.conf:
<Directory /var/www/mirror> Options FollowSymLinks Indexes AllowOverride None
</Directory>
<VirtualHost *:80> ServerName mirror.mydomain.net DocumentRoot /var/www/mirror ErrorLog logs/mirror-error_log CustomLog logs/mirror-access_log combined
</VirtualHost>
And then I manually create the symbolic links from 5 -> 5.2 and 4 -> 4.7. When 5.3 is out, I will manually change the script to mirror it instead of 5.2 and then change the symbolic link when I'm ready to upgrade all the servers. It's some work, but it has to be done only every 6 months, and it gives me the amount of control that I need.
I hope that helps! :-)
Filipe _______________________________________________
Ok, just to understand this better.
This is a script that you run via a crontab, right?
And you simply save all the files in /var/www/mirror - right? I suppose I could just change the entry in httpd.conf to use /data/mirror/ instead, and then rsync everything to /data/mirror/centos/5/x86_64/5 - which is then a symlink to /data/mirror/centos/5.2/x86_64/
How can I exclude the graphics stuff like X, KDE, Gnome, etc?