Autofs mountet beim Start keine Freigaben

Autofs mountet beim Start keine Freigaben

Ich verwende OpenSuSE 12.1 mit über LDAP und NFS freigegebenen Homes. LDAP speichert die Maps. Mein Problem ist, dass ich die Freigaben beim Booten nicht mounten kann. Das funktioniert nur, wenn ich den Autofs-Dienst manuell neu starte. Unter CentOS 6.3 gibt es dieses Problem nicht.

Mein /etc/nsswitch.conf:

passwd: files sss
group:  files sss

hosts:  files mdns4_minimal [NOTFOUND=return] dns
networks:       files dns

services:       files
protocols:      files
rpc:            files
ethers:         files
netmasks:       files
netgroup:       files nis
publickey:      files

bootparams:     files
automount:      files ldap
aliases:        files

Mein /etc/openldap/ldap.conf:

SIZELIMIT       20
TIMELIMIT       15
#DEREF          never
TLS_REQCERT     demand
uri     ldap://10.0.0.1
base    dc=domain,dc=com

Mein /etc/sssd/sssd.conf:

[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = domain.com

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

[domain/domain.com]
 id_provider = ldap
 auth_provider = ldap
 min_id = 500
 max_id = 30000
 ldap_schema = rfc2307
 ldap_uri =  ldaps://ldap-ms.local,  ldaps://ldap-sl.local, ldap://ldap
 ldap_search_base = dc=domain,dc=com
 ldap_user_search_base =  ou=People,dc=domain,dc=com
 ldap_group_search_base = ou=Group,dc=domain,dc=com
 ldap_tls_cacert = /etc/pki/CA/certs/domain-cacert.pem
 ldap_tls_reqcert = hard
 cache_credentials = true
 enumerate = True

Mein /etc/sysconfig/autofs:

MASTER_MAP_NAME="auto.master"
TIMEOUT=300
BROWSE_MODE="yes"
MAP_OBJECT_CLASS="automountMap"
ENTRY_OBJECT_CLASS="automount"
MAP_ATTRIBUTE="ou"
ENTRY_ATTRIBUTE="cn"
VALUE_ATTRIBUTE="automountInformation"
USE_MISC_DEVICE="yes"

Übersehe ich etwas?

Antwort1

Diese Frage wurde von der Community gestellt und ist ziemlich alt.
Im Laufe der Jahre ist viel passiert, Michael erwähnte eine Lösung mit fstab. Und das ursprüngliche Problem war höchstwahrscheinlich die falsche Ausführungsreihenfolge beim Booten. Das Netzwerk war möglicherweise nicht bereit, einige Dienste wurden möglicherweise nicht gestartet usw.

Es gibt auch eine andere Lösung, wenn Sie systemd ausführen (was OP damals wohl nicht getan hat, aber wenn Sie durch eine Suche hier landen, und das ist der Fall), hier ist eine weitere Lösung unter Verwendung der Automount-Funktion von systemd.

[Unit]
Description=Network mapping
After=network.target

[Mount]
What=10.0.0.1:/share/stuff
Where=/mnt/remote_share
Type=nfs
Options=_netdev,auto

[Install]
WantedBy=multi-user.target

Der einzige Nachteil dabei ist, dass Sie bei der Namensgebung des Serviceskripts vorsichtig sein müssen. Es lässt sich am besten beschreibenHier, aber eine Kurzfassung ist, dass die Servicedatei nach dem Pfad benannt werden muss, in den sie gemountet wird. Und alle Schrägstriche in diesem Pfad müssen -im Namen der Servicedatei durch ersetzt werden, damit das automatische Mounten funktioniert. Das obige Beispiel von /mnt/remote_share would be a service-file calledmnt-remote_share.mount`

Es gibt eine MengeOptionendazu.
Wenn systemd nicht Ihr Ding ist, gibt es auch eine Menge neuer Sachen auf derautofsSeite, die einen ziemlich guten Job macht(allerdings für meinen Geschmack etwas kompliziert).

Wenn Sie stattdessen einen fstab-Eintrag verwenden, aber die Auto-Hook-Funktion von systemd nutzen möchten, könnte Ihre fstab-Datei folgendermaßen aussehen:

10.0.0.1:/share/stuff   /mnt/remote_share  nfs  noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,x-systemd.idle-timeout=1min 0 0

Und wenn beides nicht funktioniert, gibt es auch eine reine Fstab-Lösung:

10.0.0.1:/share/stuff   /mnt/remote_share   nfs   defaults,soft,rsize=32768,wsize=32768,timeo=900,retrans=5,_netdev 0 0

Ich werde ein paar Links zu guter Dokumentation zu diesem Thema einfügen (denken Sie daran, dass es sich um ein anderes Betriebssystem handelt. Aber ihr Wiki ist zum Zeitpunkt des Schreibens dieses Artikels eines der besten auf dem Markt):

Antwort2

Warum fügen Sie die Einhängeorte nicht einfach zu Ihrer fstab hinzu?

Sie können auch sshfs verwenden. Konfigurieren Sie ssh für die Verwendung der Authentifizierung mit öffentlichem Schlüssel.


Auf dem Server:
sudo apt-get install openssh-server
Ändern Sie ServerKeyBits 2048 oder fügen Sie es zu /etc/ssh/sshd_config hinzu


Auf dem Client
ssh-keygen -t rsa -b 2048
ssh-copy-id vom Client-Computer zum Server. Verwenden Sie Ihr Passwort für Ihren Benutzer auf dem Server-Rechner, um sich anzumelden.
Ändern Sie /etc/ssh/sshd_config: PasswordAuthentication nein, UsePAM nein.
Ich verwende auch andere Einstellungen, um SSH zu härten, aber für dieses Beispiel ist das nicht nötig.
Wenn Sie sich außerhalb Ihres LAN befinden, richten Sie einen Dyndns- oder Noip-Updater ein und richten Sie die Portweiterleitung auf Ihrem Router ein, sodass Port 23 oder welcher Port auch immer Sie verwenden, um den Dienst zu verschleiern, an die IP-Adresse des Servers weitergeleitet wird. Wenn Sie dabei Hilfe benötigen, fragen Sie einfach.


Dann:
sshfs USER@SERVERADDRESS:/mnt/DRIVELOCATION /PATH/TO/MOUNT/DRIVE/TO
Ich habe diesen Befehl als Launcher im Hauptmenü für einige Laufwerke und für andere in der fstab eingerichtet.
Ich weiß, dass es funktioniert, weil ich dieses gleiche Setup plus die Härtung jeden Tag verwende.
Auf diese Weise können Sie die Notwendigkeit von Autofs und den damit verbundenen Overhead beseitigen.

verwandte Informationen