Packages:avahi

Aus NAS-4220

Wechseln zu: Navigation, Suche

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!!
    • 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-chroot 
gestartet.

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:

Avahi Dokumentation


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:

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

Persönliche Werkzeuge