Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Feb 1995 13:15:40 -0800 (PST)
From:      julian@tfs.com (Julian Elischer)
To:        jkh@FreeBSD.org (Jordan K. Hubbard)
Cc:        hackers@FreeBSD.org
Subject:   Re: any amd users out there?
Message-ID:  <m0re87Q-0003wNC@TFS.COM>
In-Reply-To: <199502131436.GAA15124@time.cdrom.com> from "Jordan K. Hubbard" at Feb 13, 95 06:36:44 am

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> Can to send me your maps?  I've read the docs and I'm still
> confused! :-)
> 
> Basically, I just want to map machines into a /machine/path
> scheme.  /thud/d, /freefall/a, etc.
> 
> Thanks!
> 
> 					Jordan
> 
to start it off, add in /etc/rc
something of the form.....

#----------------------------
PATH=/sbin:/usr/sbin:/usr/bin
export PATH

#LOGFILE=syslog
LOGFILE=/var/adm/syslog/amd.log

MAP_1="/net /etc/a_net"
MAP_2=""
MAP_3=""
MAP_4=""

TMOUT="-w 300"

case "$LOGFILE" in
*/*)
        if [ -f "$LOGFILE" ]; then
                  mv "$LOGFILE" "$LOGFILE"-
        fi
        > "$LOGFILE"
        ;;
syslog)
        :
        ;;
esac
if [ -x /usr/sbin/amd -a -r /etc/a_net ]; then
        if (/usr/sbin/amd -p -r -a /tmp_mnt -l $LOGFILE $TMOUT $MAP_1 $MAP_2 $MAP_3 $MAP_4) > /var/run/amd.pid ; then
                  echo "NFS auto-mount service started"
        else
                  echo "Unable to provide NFS auto-mount service"
        fi
fi
#-----------------------
and in /etc/a_net, put:

#--------------------
/defaults       type:=host;fs=${autodir}/${rhost}/root;rhost:=${key}

*       opts:=rw,nosuid,grpid
#--------------------


what this does is mounts amd on /net, with a map described in /etc/a_net.
whenever you do a lookup() operation on /net, amd (pretending to be an NFS 
server) gets the make being looked for, and uses the algorythm described
in a_net to decide what to do with that name..
it will return as though it found a symbolic link, pointing to 
wherever it decided you should look. If the system you want to look at
hasn't previously been mounted, it will quickly mount it's
exported filesystems in /tmp_mnt, and return the appropriate symbolic link,
so that further name lookup (and eventually open()) operations occur
over there, on the appropriate filesystem.

to read the a_net file..
read it as:

/defaults       type:=host;fs=${autodir}/${rhost}/root;rhost:=${key}
"for all operations the following operations and flags apply...."
notice that the variable ${key}, and ${rhost} will be evaluated at 
the time of the lookup request, not at initialisation time.

*       opts:=rw,nosuid,grpid
"for any name being looked up that matches '*' (that's all of them folks),
apply the following flags, (and of course the defaults defined above)"


in the case above ${autodir} is set to /tmp_mnt

thus /net/freefall/usr would be mapped to:
/tmp_mnt/freefall/root/usr

which will have been mounted for you bby amd, as soon as it realised that
you were going to need it..

I don't think the 'root' field is needed in a_net, but it was in the
example given in the docs so I left it.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0re87Q-0003wNC>