在 RHEL5 上使用自动挂载,为什么 auto.master 中的变量从未扩展?

在 RHEL5 上使用自动挂载,为什么 auto.master 中的变量从未扩展?

我正在从 NISPLUS 迁移到 LDAP (openldap),并从 RHEL4 迁移到 RHEL5。LDAP 服务器和客户端都在 RHEL5u4 上运行。在 RHEL5 上,auto.master 中的变量扩展从不起作用,无论是在文件还是 LDAP 中。

NISPLUS/RHEL4(有效)

我曾经在 nisplus 中拥有一大堆类似于 auto_opt_Linux_2-6-18_x86_64 的表,其中包含针对特定 arch/os 组合的程序份额。

例如在auto_opt_Linux_2-6-18_x86_64NISPLUS 中:

vim-7.3        nfs:/export/apps/Linux/2.6.18/opt-i386/&
boost-1.4.0    nfs:/export/apps/Linux/2.6.18/opt-x86_64/&
etc

auto_master然后我在 NISPLUS 中有:

/opt           auto_opt_${OSNAME}_${OSREL}_${ARCH}
/home          auto_home
/workgrp       auto_workgrp

auto.master在客户端的 /etc 中:

+auto_master

然后我在 /etc/sysconfig/autofs 中设置 UNDERSCORETODOT="1",并且 automount 会很乐意将所有内容从 NISPLUS 中拉出。

LDAP/RHEL5(几乎可以工作)

我尝试在 LDAP 中执行相同操作,home 和 workgrp 共享工作正常,但 /opt 却不行:

dn: ou=auto.master,dc=example,dc=com
objectClass: automountMap
objectClass: top
ou: auto.master

dn: cn=/opt,ou=auto.master,dc=example,dc=com
objectClass: automount
cn: /opt
automountInformation: auto.opt.$OSNAME.$OSREL.$ARCH

dc: ou=auto.opt.Linux.2.6.18-164.el5.x86_64,dc=example,dc=com
objectClass: automountMap
objectClass: top
ou: auto.opt.Linux.2.6.18-164.el5.x86_64

dc: cn=vim-7.3,ou=auto.opt.Linux.2.6.18-164.el5.x86_64,dc=example,dc=com
objectClass: automount
cn: vim-7.3
automountInformation: nfs:/export/apps/Linux/2.6.18/opt-i386/&

运行 automount -fd 说:

get_query_dn: lookup(ldap): query succeeded, no matches for (&(objectclass=nisMap)(nisMapName=auto.opt.$OSNAME.$OSREL.$OSARCH))
get_query_dn: lookup(ldap): query succeeded, no matches for (&(objectclass=automountMap)(ou=auto.opt.$OSNAME.$OSREL.$OSARCH))
get_query_dn: lookup(ldap): query succeeded, no matches for (&(objectclass=automountMap)(autoMountMapName=auto.opt.$OSNAME.$OSREL.$OSARCH))

通过禁用加密并在 wireshark 中观察客户端,我实际检查了正在运行的查询,并且它正在搜索 auto.opt.$OSNAME.$OSREL.$ARCH 而不扩展变量。

我尝试运行 automount -fd -D OSNAME=Linux,但没有任何效果。我还尝试将所有这些放入平面文件中(不是 LDAP 或 nisplus,但这没有帮助)。

有效的坐骑如下:

boost-1.40.0       nfs:/export/apps/Linux/2.6.18/opt-${ARCH}/&

(在 LDAP 或平面文件中)

这会很好,除非当同一个库或应用程序在多个平台上运行时,例如,我们并不特别需要 64 位版本的 vim,并且我不希望为每个内核都保留一份 vim-7.3 的副本,因为 RHEL4 可以在从 4u2 到 6u0 的所有版本上运行!

man 5 autofs 建议替换应该在自动挂载映射的键和位置部分中起作用,所以我没有想象这一点(http://www.squarebox.co.uk/cgi-squarebox/manServer/autofs.5)。

有人知道吗?autofs 在 RHEL5 上坏了吗?

相关内容