Packages:avahi
Aus NAS-4220
Inhaltsverzeichnis |
Einsatzzweck des Paketes
Mit Hilfe von Avahi können über spezielle "beispieldienst.service" Dateien jegliche Netzwerkdienste im Netzwerk bekannt gegeben werden.
Die sich im Netzwerk befindlichen Clients brauchen somit nicht mehr die genauen Verbindungsdaten kennen, um sich z.B. an einer Freigabe eines Windows Filesservers anzumelden.
Voraussetzung ist allerdings, dass der Client selber diese Funktion unterstützt bzw. bestimmte Anwendungen das Verfahren unterstützen.
So werden z.B. unter Mac OS X 10.5 Leopard, von Haus aus, alle über Avahi veröffentlichten Fileserverdienste (Samba, NFS, AFP) im Finder unter Freigaben angezeigt.
Unter Windows kann so z.B. automatisch, mit dem auf den Apple Internetseiten verfügbaren Bonjour Plugin für den Internet Explorer, auf die Webadmin- Oberfläche des NAS oder die Webadmin- Seiten des iTunes Servers zugegriffen werden.
Struktur und Inhalt des Paketes
Ordnerstruktur und Inhalt
- Avahi
- bin // Unterordner von Avahi mit avahi-daemon
- conf // Unterordner von Avahi mit den Konfigurationsdateien avahi-daemon.conf und hosts
- services // Unterordner von conf mit den "beispieldienst.service" Dateien mit denen die verfügbaren Dienste bekannt gegeben werden
- disabled // Unterordner von services // dieser enthält die "beispieldienst.service" Dateien die ich aktuell nicht in meinem Netzwerk nutze. Damit diese genutzt werden können, müssen sie wieder in den Ordner services kopiert werden!!
- services // Unterordner von conf mit den "beispieldienst.service" Dateien mit denen die verfügbaren Dienste bekannt gegeben werden
- init // Datei die zum starten und einrichten der benötigten Laufzeitumgebung des avahi-daemon benötigt wird
- lib // Unterordner von Avahi mit den benötigten Librarys
Installation des Paketes
Das Paket kann wahlweise durch das Kopieren der Datei avahi.tgz in den Unterordner "applications/new_software/" der Freigabe public mit anschließendem Neustart des NAS automatisch entpackt und gestartet werden, oder das Paket wird bereits auf dem eigenen Client entpackt und direkt in den Ordner "applications/" der Freigabe public kopiert. Die im weiteren Verlauf beschriebene Installation befindet sich in "applications/apfd". Hinweis: es gibt auch Pakete, die sich in "applications/afp-server" installieren.
Für den Start des daemons bedarf es dann wieder eines Neustarts bzw. dem ausführen der "init" Datei via SSH/Telnet über ein Befehlszeilenprogramm.
Erklärung der Start, Konfigurations und "beispieldienst.service" Dateien
init Datei
Die für den Start des avahi-daemon verantwortliche init Datei sieht folgendermaßen aus:
Die Anweisungen habe ich jeweils auf Englisch hinter der # erklärt
#!/bin/sh
#Kill old process
killall avahi-daemon
#Define Path to homedir
#PackageDIR=/mnt/ide1/public/applications/avahi
#changed by skara
PackageDIR=$(cat /usr/sausalito/codb/objects/1/Disk.rootdir 2> /dev/null)/public/applications/avahi
#Create needed filesystem and symlinks
ln -s $PackageDIR/lib/libavahi-common.so.3 /usr/lib/
ln -s $PackageDIR/lib/libavahi-core.so.4 /usr/lib/
ln -s $PackageDIR/lib/libcap.so.1 /usr/lib/
ln -s $PackageDIR/lib/libdaemon.so.0 /usr/lib/
ln -s $PackageDIR/lib/libexpat.so.1 /usr/lib/
ln -s $PackageDIR/lib/libdbus-1.so.3 /usr/lib/
rm /etc/avahi
ln -s $PackageDIR/conf/ /etc/avahi
#Creating group and user for the use with avahi
# Check if named group exists
if [ -z "`grep avahi /etc/group`" ]
then
echo "Creating group avahi:"
addgroup avahi
else
echo "WARN: Group avahi already exists. Will not create it"
fi
# Same for the user
if [ -z "`grep avahi /etc/passwd`" ]
then
echo "Creating user avahi:"
adduser -D -H -G avahi avahi
else
echo "WARN: The user avahi already exists. Will not create it"
fi
#Starting avahi
$PackageDIR/bin/avahi-daemon -s -D --no-chroot
Der avahi-daemon wird nach dem anlegen der benötigten Symbolischen Links zu den Librarys und Konfigurationsdateien über den Befehl
avahi-daemon -s -D --no-chrootgestartet.
Die genauen Erklärungen der verfügbaren Parameter für die Dateien avahi-daemon, avahi-daemon.conf und den grundlegenden Aufbau der "beispieldienst.service" Dateien findet ihr auf der offiziellen Avahi Dokumentationsseite des Entwicklungsprojekts:
Achtet darauf, dass alle Angaben was /mnt/ide1/ in meinen Anleitungen betrifft, mit eurem NAS übereinstimmen, ansonsten wird das Script nicht richtig funktionieren!!!
avahi-daemon.conf
Die im Paket enthaltene avahi-daemon.conf Datei enthällt die für den avahi-daemon wichtigen Anweisungen (Hostnamen, Netzwerkdomäne usw.)
Hier die im Paket enthaltene avahi-daemon.conf Datei
# $Id: avahi-daemon.conf 1155 2006-02-22 22:54:56Z lennart $ # # This file is part of avahi. # # avahi is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # avahi is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public # License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with avahi; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # See avahi-daemon.conf(5) for more information on this configuration # file! [server] host-name=eldrik-nas domain-name=local #browse-domains=0pointer.de, zeroconf.org use-ipv4=yes use-ipv6=no #check-response-ttl=no use-iff-running=no enable-dbus=warn #disallow-other-stacks=yes #allow-point-to-point=no [wide-area] enable-wide-area=yes [publish] disable-publishing=no #disable-user-service-publishing=no add-service-cookie=no publish-addresses=yes publish-hinfo=yes publish-workstation=yes publish-domain=yes #publish-dns-servers=192.168.50.1, 192.168.50.2 #publish-resolv-conf-dns-servers=yes [reflector] #enable-reflector=no #reflect-ipv=no [rlimits] #rlimit-as= rlimit-core=0 rlimit-data=4194304 rlimit-fsize=0 rlimit-nofile=30 rlimit-stack=4194304 rlimit-nproc=3
In dieser Datei werdet ihr mit Sicherheit die Parameter host-name und domain-name ändern wollen ;-) die restlichen Punkte entnehmt ihr bitte der offiziellen Avahi Dokumentation.
hosts Datei
Die im Paket enthaltene hosts Datei beeinhaltet keine aktiven Einträge, mit ihr kann man mDns Dienste direkt auf die in der Datei vorhandenen hosts weiterleiten.
# $Id: hosts 1137 2006-02-14 21:31:48Z lennart $ # # This file is part of avahi. # # avahi is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # avahi is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public # License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with avahi; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # This file contains static ip address <-> host name mappings. These # can be useful to publish services on behalf of a non-avahi enabled # device. Please bear in mind that host names are expected to be # fully qualified domain names, i.e. ending in .local! # See avahi.hosts(5) for more information on this configuration file! # Examples: # 192.168.0.1 router.local # 2001::81:1 test.local
beispieldienst.service Dateien
Zu guter letzt werfen wir einmal einen Blick auf eine der im Paket enthaltenen "beispieldienst.service" Dateien.
In meinem Paket habe ich bereits die ".service" Dateien folgender Dienste zusammengetragen:
- smb
- ftp
- sftp
- ssh
- afpd // afpd fürs NAS
- nfs
- daap
- http
Sehen wir uns einmal die für Apple User wohl "wichtigste" Datei afpd.service genauer an, da ich in dieser noch ein Extra eingebaut habe was Mac OS X Leopard User, die schon immer ein Xserve zu Hause ihr eigen nennen wollten, sicher freuen wird :-)
<?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_afpovertcp._tcp</type> <port>548</port> </service> <service> <type>_device-info._tcp</type> <port>0</port> <txt-record>model=Xserve</txt-record> </service> </service-group>
Bis auf den Teil
<service> <type>_device-info._tcp</type> <port>0</port> <txt-record>model=Xserve</txt-record> </service>
ist soweit alles Standard und kann der offiziellen Dokumentation entnommen werden.
Über den von mir hervorgehobenen Teil können wir Mac OS X Leopard jedoch mitteilen, um welche Art von Rechner es sich genau handelt, der uns die Freigaben zur Verfügung stellt, standardmäßig wird das NAS unter Mac OS X Leopard als neuer Alu iMac unter "Freigaben" aufgelistet.
Mit dem zusätzlichen Eintrag erhält man jetzt allerdings das Symbol für einen Apple Xserve Server, welches meinen Vorstellungen nach, eher das NAS in seiner Funktion beschreibt.
Dieser zusätzliche Teil muss in jede ".service" Datei eingebunden werden von der man möchte, dass sie mit einem anderen Symbol erscheint.
Aber Bilder sagen mehr als Worte :-D
[[1]]
Wer gar noch ein anderes Symbol erhalten möchte, sollte als Mac OS X Leopard Besitzer, sich im Finder unter
System -> Library -> CoreServices -> CoreTypes.bundle den Paketinhalt anzeigen lassen und findet unter Content in der Datei Info.plist alle Einträge, mit denen sich die Symbole, im Ordner Resources angezeigen lassen!!
Soviel zu dem Paket Avahi für das IB-NAS-4220
