LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (http://www.linuxquestions.org/questions/linux-software-2/)
-   -   autofs: -Dvariable=value not working? (http://www.linuxquestions.org/questions/linux-software-2/autofs-dvariable%3Dvalue-not-working-822802/)

dick1690 07-29-2010 03:59 AM

autofs: -Dvariable=value not working?
 
I've got a Suse SLES 11 system running automount 5.0.3 which stubbornly refuses to do variable substitution.

friesian:/etc/sysconfig # automount -V
Linux automount version 5.0.3
Directories:
config dir: /etc/sysconfig
maps dir: /etc
modules dir: /usr/lib64/autofs
Compile options:
DISABLE_MOUNT_LOCKING ENABLE_FORCED_SHUTDOWN ENABLE_IGNORE_BUSY_MOUNTS
WITH_LDAP WITH_SASL LIBXML2_WORKAROUND

I've got LOCAL_OPTIONS="-DNERCARCH=linux" in /etc/sysconfig/autofs (I've also tried "-D NERCARCH=linux", "-D NERCARCH='linux'").

I've stopped nscd.

I've restarted automount /etc/init.d/autofs restart

friesian:/etc/sysconfig # ps -ef|grep automount

root 14378 1 0 11:12 ? 00:00:00 /usr/sbin/automount -p /var/run/automount.pid -O -DNERCARCH=linux

If I now do a ls /nerc/bin (one of my automounted directories),
friesian:/etc/sysconfig # ls /nerc/bin
ls: cannot open directory /nerc/bin: No such file or directory
friesian:/etc/sysconfig #

and I get the following in syslog.

Jul 28 10:30:03 friesian automount[13976]: lookup_mount: lookup(ldap): bin -> -ro mercury:/local/master/$NERCARCH/bin
Jul 28 10:30:03 friesian automount[13976]: parse_mount: parse(sun): expanded entry: -ro mercury:/local/master//bin

No substitution of the NERCARCH variable, it stays as //.

On another system, this time CentOS 5.5, it all works fine.

Linux automount version 5.0.1-0.rc2.143.el5
Directories:
config dir: /etc/sysconfig
maps dir: /etc
modules dir: /usr/lib64/autofs
Compile options:
DISABLE_MOUNT_LOCKING ENABLE_IGNORE_BUSY_MOUNTS WITH_HESIOD WITH_LDAP
WITH_SASL

[root@who1 sysconfig]# ps -ef|grep auto
root 10263 1 0 10:59 ? 00:00:00 automount -DNERCARCH=linux
root 10320 10162 0 10:59 pts/4 00:00:00 grep auto

[root@who1 sysconfig]# ls /nerc/bin
env_clean lookup rc.d setup_type
[root@who1 sysconfig]#

I get in syslog,

Jul 28 10:52:26 who1 automount[10210]: lookup_mount: lookup(ldap): bin -> orwell:/itsspool/master.itss/$NERCARCH/bin
Jul 28 10:52:26 who1 automount[10210]: parse_mount: parse(sun): expanded entry: orwell:/itsspool/master.itss/linux/bin

Which is what I would expect to see. $NERCARCH gets set to linux.

Any suggestions as to what I might be doing wrong on the Suse box?

tia, Dick

cjcox 07-31-2010 09:43 AM

:-)

You'll hate me... but you need to place the -DNERCARCH=linux line inside of AUTOFS_OPTIONS

The LOCAL_OPTIONS are used as an argument to -O to provide options to the mounts.

Perhaps the /etc/sysconfig/autofs file could be a bit clearer...

dick1690 08-02-2010 04:01 AM

Thank you forthat, worked like a dream. And I spent best part of a day on it.

friesian:/etc/sysconfig # vi autofs
friesian:/etc/sysconfig # grep OPTIONS autofs
AUTOFS_OPTIONS="-DNERCARCH=linux"
# each map entry (see also APPEND_OPTIONS)
LOCAL_OPTIONS=""
#LOCAL_OPTIONS="-DNERCARCH=linux"
# Determine whether LOCAL_OPTIONS are appended to map entry options
APPEND_OPTIONS="yes"
friesian:/etc/sysconfig #

friesian:/etc/sysconfig # /etc/init.d/autofs restart
Shutting down automount done
Starting automount done
friesian:/etc/sysconfig # ls /nerc/bin
env_clean lookup rc.d setup_type
friesian:/etc/sysconfig # ps -ef|grep automount
root 31632 1 0 09:56 ? 00:00:00 /usr/sbin/automount -p /var/run/automount.pid -DNERCARCH=linux
root 31653 31033 0 09:56 pts/0 00:00:00 grep automount
friesian:/etc/sysconfig #


All times are GMT -5. The time now is 08:00 AM.