Cron, Yum und Proxy-Einstellungen
Das Problem
Neulich ärgerte mich die tägliche Email von dem CentOS-Server, den ich betreue, dann doch:
/etc/cron.daily/yum.cron:
Cannot find a valid baseurl for repo: update
Error: Cannot find a valid baseurl for repo: update
Cannot find a valid baseurl for repo: update
Cron läßt einmal täglich alle Skripte im Verzeichnis “cron.daily” durchlaufen und jedesmal meckerte yum herum, dass es keine gültige URL für das Update-repository finden konnte. Von der Kommandozeile aus, aber funktioniert yum problemlos. So wo war der Unterschied…?
Richtig: Cron! Cron ist ein wenig mit Vorsicht zu geniessen, da es sich eine eigene Umgebung (d.h. Umgebungsvariablen) zusammenbaut. D.h. wenn etwas von der Kommandozeile aus funktioniert, muss das noch lange nicht mit Cron zusammen funktionieren.
Der Unterschied hier, war die Einstellung für den zu verwendenden Proxy. Dieser war über ein Startup-Skript der Shell gesetzt, wurde aber natürlich nicht von Cron berücksichtigt.
Die Lösung
Nach ein bisschen Googlen und Lesen der Manual-Page zu yum, war klar: Der Proxy-Eintrag gehörte in die yum.conf:
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newestinstallonly
pkgs=kernel kernel-smp kernel-devel kernel-smp-devel kernel-largesmpkernel-largesmp-devel kernel-hugemem kernel-hugemem-devel
distroverpkg=centos
releasetolerant=1
exactarch=1
retries=20
obsoletes=1
gpgcheck=1
plugins=1
proxy=http://172.16.11.90:8081/Dies sollte das Problem lösen und der CentOS-Server sollte sich jede Nacht automatisch updaten.