View previous topic :: View next topic |
Author |
Message |
stefanl n00b
Joined: 21 Oct 2003 Posts: 14
|
Posted: Wed Nov 05, 2003 12:48 pm Post subject: [PORTAGE] Einen Portageserver für mehrere Rechner |
|
|
Hi,
ich habe viele Server die unter Gentoo laufen. Jetzt ist Problem, dass ich auf diesen Rchnern immer Wieder neue Software installieren muss oder nen neuen Server einrichte. Dabei entsteht dann immer viel Traffic für das Herunterladen des Portage-Trees und der Distfiles. Nun habe ich mir gedacht das es doch viel cleverer wäre ein aktuelles Portage-Tree Verzeichnis mit den neuesten Distfiles auf einem zentralen Rechner zu haben, von dem dann die anderen die Software übers LAN beziehen.
Jetzt ist nur die Frage wie realisiere ich das.
Es sollte so sein, das der zentrale Rechner 1mal pro Woche automatisch nen rsync macht. Die anderen Rechner beziehen dann bei "emerge rsync" das portage-tree von dem rechner. Beim installieren der Software auf einem sollte auch erst auf dem zentralen Rechner geschaut werden ob die files vorhanden sind und wenn möglich von dort bezogen werden.
jemand ne idee. wäre dankbar für hilfe.
PS: Hoffe war nicht zuviel frage auf einmal |
|
Back to top |
|
|
gerry Apprentice
Joined: 01 Sep 2002 Posts: 249 Location: Bodensee
|
Posted: Wed Nov 05, 2003 1:05 pm Post subject: |
|
|
hier findest du deinen einstieg.
Die jeweilige Aktualisierung kannst du als Cronjob realisieren. |
|
Back to top |
|
|
stefanl n00b
Joined: 21 Oct 2003 Posts: 14
|
Posted: Wed Nov 05, 2003 1:35 pm Post subject: |
|
|
Gibt es nicht ne andere Möglichkeit als das Portage Verzeichnis zu mounten. Außerdem kann ich den überhaupt Verzeichnisse über das Netzwerk mounten?? |
|
Back to top |
|
|
ian! Bodhisattva
Joined: 25 Feb 2003 Posts: 3829 Location: Essen, Germany
|
Posted: Wed Nov 05, 2003 1:48 pm Post subject: |
|
|
stefanl wrote: | Gibt es nicht ne andere Möglichkeit als das Portage Verzeichnis zu mounten. Außerdem kann ich den überhaupt Verzeichnisse über das Netzwerk mounten?? |
Du kannst auf dem Portageserver auch alternativ einen Webserver aufsetzen und dort dann die Distfiles etc. hosten. Dazu biegst du den Portagetree auf ein Verzeichnis im Webserver-root um. Auf den anderen Maschinen trägst Du unter GENTOO_MIRRORS die Adresse des Webservers ein.
Gruß,
ian! _________________ "To have a successful open source project, you need to be at least somewhat successful at getting along with people." -- Daniel Robbins |
|
Back to top |
|
|
sirro Veteran
Joined: 20 Jul 2003 Posts: 1472 Location: aachen.nrw.de.eu
|
Posted: Wed Nov 05, 2003 1:48 pm Post subject: |
|
|
ja, sonst würde es ja nicht in der FAQ stehen (achja: nfs ist das Zauberwort)
Alternative wäre einen HTTP/FTP-Server aufzusetzen und den zentralen Rechner als Gentoo Mirror in die /etc/make.conf einzutragen. Das hätte den entscheidenden Nachteil, dass nur dein zentraler Rechner Änderungen (also auch Neueintragungen) im distfiles-Verzeichnis machen kann.
Der Artikel [1] wird dir vielleicht weiterhelfen, dein rsync-problem in den Griff zu bekommen.
rsyncd auf deinem zentralen Rechner einrichten und einmal wöchtenlich syncen lassen. Die anderen Rechner stellst du so ein, dass sie auf deinen zentralen Rechner ihr rsync machen.
[1] http://www.gentoo.org/doc/en/rsync.xml |
|
Back to top |
|
|
Robelix l33t
Joined: 21 Jul 2002 Posts: 760 Location: in a World created by a Flying Spaghetti Monster
|
Posted: Wed Nov 05, 2003 6:42 pm Post subject: |
|
|
Ich hab' seit einiger Zeit schon ein zentrales /usr/portage auf mehreren Maschinen über NFS gemountet - funzt Bestens.
Einen rsync braucht man dann nur einmal machen - alle anderen Maschinen haben automatisch den aktuellen portage tree.
Auch die distfiles werden von Allen gemeinsam verwendet - portage schaut automatisch nach ob ein File schon heruntergeladen ist.
Einziges Problem, das auftauchen kann ist wenn 2 Rechner gleichzeitig den selben File downloaden - das ergibt Müll. Am Besten vorher zeitversetzt ein emerge -f machen, dann kann sowas nicht passieren.
Robelix _________________ mysql> SELECT question FROM life, universe, everything WHERE answer=42;
Empty set (2079460347 sec) |
|
Back to top |
|
|
dertobi123 Retired Dev
Joined: 19 Nov 2002 Posts: 2679 Location: Oberhausen, Germany
|
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Wed Nov 05, 2003 7:26 pm Post subject: |
|
|
ich habe aus verschiedenen gründen auf nfs verzichtet. mein gateway bezieht den aktuellen portage tree aus dem netz und die clients aus dem lokalen netz können zum gateway syncen:
am gateway:
xinetd ist installiert, /etc/xinetd.conf ist auf standardeinstellungen.
/etc/xinetd.d/rsyncd:
Code: |
# default: off
# description: Vsftpd is an FTP server, designed to be secure.
# $Header: /home/cvsroot/gentoo-x86/net-ftp/vsftpd/files/vsftpd.xinetd,v 1.2 200
2/05/04 03:42:50 woodchip Exp $
service rsync
{
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
port = 873
instances = 10
bind = 192.168.0.75
}
|
anmerkung: wie man am header sieht, habe ich das file vom ftp-server kopiert und geändert
wichtig ist es, bei "bind =" die richtige IP (nämlich die IP der netzwerkkarte im lan anzugeben, bei mir 192.168.0.75).
/etc/rsync/rsyncd.conf:
Code: | # Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
#pid file = /var/run/rsyncd.pid
#aus gentoo-rsync guide:
#uid = nobody
#gid = nobody
use chroot = yes
max connections = 20
pid file = /var/run/rsyncd.pid
motd file = /etc/rsync/rsyncd.motd
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
#[gentoo-x86-portage]
#this entry is for compatibility
#path = /usr/portage
#comment = Gentoo Linux Portage tree
|
wie unschwer anhand der kommentare zu erkennen, habe ich das fast 1:1 aus dem gentoo-rsync guide übernommen.
/etc/rsync/rsyncd.motd
hier kannst du irgendwas blödes reinschreiben
auf den clients im lan:
in /etc/make.conf
SYNC="rsync://192.168.0.75/gentoo-portage"
192.168.0.75 ist natürlich durch die jeweilige IP des lokalen rsync servers zu ersetzen.
was den download der sourcen angeht:
ich verwende squid (ziemlich in der standardkonfiguration) als proxy server, wenn ein client nach dem anderen updatet sollte das dann eh aus dem cache kommen. zusätzlich habe ich /usr/portage/distfiles des gateways via ftp zugänglich gemacht (falls etwas schon wieder aus dem cache vom squid verschwunden ist weil man ein paar wochen später einen neuen rechner aufsetzt):
dazu läuft ein vsftpd:
/etc/xinetd.d/vsftpd
Code: | # default: off
# description: Vsftpd is an FTP server, designed to be secure.
# $Header: /home/cvsroot/gentoo-x86/net-ftp/vsftpd/files/vsftpd.xinetd,v 1.2 200
2/05/04 03:42:50 woodchip Exp $
service ftp
{
type = UNLISTED
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
server_args = /etc/vsftpd/vsftpd.conf
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
port = 21
instances = 10
bind = 192.168.0.75
}
anmerkung: hier hab ich ein bisschen rumgespielt, im prinzip sollte es auch passen, wenn du das standard-konfigurationsfile um "bind =" erweiterst und "disable = no" einträgst.
|
auch hier wieder: "bind =" auf die IP im lan, du willst ja weder rsync- noch ftp-server für den rest der welt spielen.
/etc/vsftpd/vsftpd.conf
Code: | # Access rights
anonymous_enable=YES
local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
# Security
anon_world_readable_only=YES
connect_from_port_20=YES
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000
# Features
xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES
# Performance
one_process_model=YES
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
connect_timeout=60
#anon_max_rate=500000
anon_root=/usr/portage/
ftp_username=distfiles
vsftpd_log_file=/var/log/vsftpd/vsftpd.log
|
bei den clients habe ich in /etc/make.conf:
Code: | GENTOO_MIRRORS="ftp://192.168.0.75/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo http://www.ibiblio.org/gentoo" |
so, ich hoffe, meine konfiguration ist damit reproduzierbar.
Last edited by amne on Thu Dec 04, 2003 7:39 pm; edited 1 time in total |
|
Back to top |
|
|
stefanl n00b
Joined: 21 Oct 2003 Posts: 14
|
Posted: Thu Nov 06, 2003 1:26 pm Post subject: Fehlende Packages zentral speichern |
|
|
Hi
vielen Dank für die supergenaue Beschreibung. Es hat alles prima geklappt. Nur ein Problem ist noch: Wenn in den Distfiles auf dem zentralen Rechner ein Package nicht vorhanden ist, zieht sich der Client dieses aus dem Netz. Das ist ja auch okay. Nur sollte es doch möglich sein dieses dann auf dem zentralen Rechner zur Verfügung zu stellen.
Jemand ne Idee. Geht es vielleicht so, dass wenn die Anfrage schief geht der zentrale Server sich das Package zieht und es dann anschließend dem Client zur Verfügung stellt??
Vielen Dank für Hilfe |
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9625 Location: beyond the rim
|
Posted: Thu Nov 06, 2003 5:55 pm Post subject: |
|
|
blackace in #gentoo-server hatte meine ich eine Art "Distfiles-Proxy" Skript oder Apache Modul geschrieben, wodurch alle Anfragen vom Server weitergereicht wurden, wenn er eine Datei nicht selber hatte (ich hab auch nur von gehört, nie selber gesehen/ausprobiert). |
|
Back to top |
|
|
ian! Bodhisattva
Joined: 25 Feb 2003 Posts: 3829 Location: Essen, Germany
|
Posted: Thu Nov 06, 2003 6:34 pm Post subject: |
|
|
Genone wrote: | blackace in #gentoo-server hatte meine ich eine Art "Distfiles-Proxy" Skript oder Apache Modul geschrieben, wodurch alle Anfragen vom Server weitergereicht wurden, wenn er eine Datei nicht selber hatte (ich hab auch nur von gehört, nie selber gesehen/ausprobiert). |
Sowas ist recht einfach mit mod_rewrite zu realisieren.
Wenn ich mehr Zeit hätte... _________________ "To have a successful open source project, you need to be at least somewhat successful at getting along with people." -- Daniel Robbins |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Thu Dec 04, 2003 7:45 pm Post subject: |
|
|
Aus aktuellem Anlass möchte ich darauf hinweisen, dass ich meinem obrigen Post folgendes geändert habe:
/etc/rsync/rsyncd.conf:
Wer wie in meiner Anleitung angegeben den Rsync-Server auf das Netzwerkdevice des LANs gebunden hat (bind = 192.168.0.X / o.ä. in /etc/xinetd.d/rsyncd) braucht sich übrigens keine Sorgen zu machen - ausser er vertraut den Usern in seinem LAN nicht. |
|
Back to top |
|
|
stream Guru
Joined: 04 Jan 2003 Posts: 401
|
Posted: Thu Dec 04, 2003 10:32 pm Post subject: |
|
|
Genone wrote: | blackace in #gentoo-server hatte meine ich eine Art "Distfiles-Proxy" Skript oder Apache Modul geschrieben, wodurch alle Anfragen vom Server weitergereicht wurden, wenn er eine Datei nicht selber hatte (ich hab auch nur von gehört, nie selber gesehen/ausprobiert). |
meinst du den tsp-cache?
https://forums.gentoo.org/viewtopic.php?t=110973 |
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9625 Location: beyond the rim
|
Posted: Fri Dec 05, 2003 7:34 pm Post subject: |
|
|
stream wrote: | Genone wrote: | blackace in #gentoo-server hatte meine ich eine Art "Distfiles-Proxy" Skript oder Apache Modul geschrieben, wodurch alle Anfragen vom Server weitergereicht wurden, wenn er eine Datei nicht selber hatte (ich hab auch nur von gehört, nie selber gesehen/ausprobiert). |
meinst du den tsp-cache?
https://forums.gentoo.org/viewtopic.php?t=110973 |
Möglich, habs wie gesagt nie selber gesehen / ausprobiert. |
|
Back to top |
|
|
|