LDAPでautofsに必要な情報 auto.master と auto.home を含ませたいと思った.
LDAPの情報をsssdを介してautomountに渡すのですが、LDAPのどの項目名がautomountのどれに該当するとか、そこらが注意する点かなと.
当初 autofs の autofs.schema(RFC2307 extensionっぽい) を ldif に代えてかなと思ったが、LDAPにて「nis.ldif」をスキーマとして
入れているので、nisのLDAP項目をそのまま使うことにした.
参照先https://docs.pagure.org/sssd.sssd/design_pages/autofs_integration.html
LdapAdminのSchema viewerでnisMapは下記のように存在してた
まぁ大丈夫っぽい
「dc=sybyl,dc=local」の直下にauto.masterとauto.homeを作ってもいいが、まとめたautomountに入れたかったので
[root@ldap-server ~]# vi ldap/automount.ldif
dn: ou=Automount,dc=sybyl,dc=local
ou: Automount
objectClass: top
objectClass: organizationalUnit
dn: nisMapName=auto.master,ou=Automount,dc=sybyl,dc=local
objectClass: top
objectClass: nisMap
nisMapName: auto.master
dn: nisMapName=auto.home,ou=Automount,dc=sybyl,dc=local
objectClass: top
objectClass: nisMap
nisMapName: auto.home
[root@ldap-server ~]# ldapadd -x -D cn=Manager,dc=sybyl,dc=local -W -f ldap/automount.ldif
として作成
「Direct maps」方式でmountさせてみる
auto.masterはこんな値
/- auto.home --timeout=60
は
[root@ldap-server ~]# vi ldap/auto.master.ldif
dn: cn=/-,nisMapName=auto.master,ou=Automount,dc=sybyl,dc=local
objectClass: nisObject
cn: /-
nisMapName: auto.master
nisMapEntry: auto.home
[root@ldap-server ~]#
っで
[root@ldap-server ~]# ldapadd -x -D cn=Manager,dc=sybyl,dc=local -W -f ldap/auto.master.ldif
次にauto.homeの値.
例えば
/home -rw,proto=tcp,nfsvers=3 nfs:/home
/apps -rw,proto=tcp,nfsvers=3 nfs:/apps
なら
[root@ldap-server ~]# vi ldap/auto.home.ldif
dn: cn=/home,nisMapName=auto.home,ou=Automount,dc=sybyl,dc=local
objectClass: nisObject
cn: /home
nisMapName: auto.home
nisMapEntry: -rw,proto=tcp,nfsvers=3 nfs:/home
dn: cn=/apps,nisMapName=auto.home,ou=automount,dc=sybyl,dc=local
objectClass: nisObject
cn: /apps
nisMapName: auto.home
nisMapEntry: -rw,proto=tcp,nfsvers=3 nfs:/apps
[root@ldap-server ~]#
[root@ldap-server ~]# ldapadd -x -D cn=Manager,dc=sybyl,dc=local -W -f ldap/auto.home.ldif
こんな感じになる
[root@ldap-client ~]# cat /etc/redhat-release
Rocky Linux release 9.2 (Blue Onyx)
[root@ldap-client ~]# dnf install autofs nfs-utils openldap-clients
まずはldapに接続.
[root@ldap-client ~]# echo "TLS_REQCERT never" >> /etc/openldap/ldap.conf
[root@ldap-client ~]# ldapsearch -x -H ldaps://ldap-server -b dc=sybyl,dc=local
これで大丈夫ならLDAP/Clientのsssd経由で設定を施す
その後にautofs部分を「/etc/sssd/sssd.conf」に追記します
注意点としては[autofs]の欄は空にします. ldap_autofs_* なのでつい[autofs]欄に書きたくなるけどそれでは反映しないっぽい
[root@ldap-client ~]# vi /etc/sssd/sssd.conf
:
[domain/default]
:
ldap_autofs_search_base = ou=automount,dc=sybyl,dc=local
ldap_autofs_map_master_name = auto.master
ldap_autofs_map_object_class = nisMap
ldap_autofs_map_name = nisMapName
ldap_autofs_entry_object_class = nisObject
ldap_autofs_entry_key = cn
ldap_autofs_entry_value = nisMapEntry
[autofs]
[root@ldap-client ~]#
そして「/etc/nsswitch.conf」はautomount欄をsssdを優先にします
[root@ldap-client ~]# cat /etc/nsswitch.conf
:
automount: sss files
:
[root@ldap-client ~]#
っで「automount -m」で引けるか確認
[root@ldap-client ~]# automount -m
autofs dump map information
===========================
global options: none configured
Mount point: /-
source(s):
instance type(s): sss
map: auto.home
/home | -rw,proto=tcp,nfsvers=3 nfs:/home
/apps | -rw,proto=tcp,nfsvers=3 nfs:/apps
[root@ldap-client ~]#
「automount -m」で確認出来たら「systemctl enable autofs --now」で完成