Autofs nie montuje udziałów podczas uruchamiania

11

Używam OpenSuSE 12.1 z domami współdzielonymi przez LDAP i NFS. ldap przechowuje mapy. Mój problem polega na tym, że nie mogę mieć udziałów zamontowanych podczas rozruchu. Działa tylko podczas ręcznego restartowania usługi autofs. Na CentOS 6.3 nie ma takiego problemu.

Mój /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

Mój /etc/openldap/ldap.conf:

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

Mój /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

Mój /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"

Czy coś brakuje?

igor012
źródło
2
Czy jest jakaś szansa, że ​​Twoja usługa LDAP nie jest dostępna z mapami w czasie dla zapytania systemu plików rozruchowych? To by tłumaczyło późniejszy sukces restartu, gdy system będzie działał stabilnie.
zedman9991
Jakie są poziomy początkowe (w docelowym poziomie działania) autofsi Twój klient ldap?
Nils,
@ zedman9991 Ten problem występuje tylko w mojej wersji opensuse (12.1) Na Centos 6.3 i OpenSuse 11.2 działa dobrze.
igor012
@Nils Autofs zaczyna się na poziomach 3 i 5.
igor012
Istnieje różnica w sposobie, w jaki autofs montuje mapy podczas rozruchu na opensuse 11.2, montuje je przy dostępie, ale na opensuse 12.1 montuje je wszystkie, ale nie ma dostępu.
igor012

Odpowiedzi:

1

To pytanie wpadło na społeczność i jest dość stare.
Wiele rzeczy wydarzyło się na przestrzeni lat, Michael wspomniał o jednym rozwiązaniu, używając fstab. Pierwotny problem najprawdopodobniej wymagał wykonania w momencie uruchamiania. Sieć mogła nie być gotowa, niektóre usługi mogły się nie uruchomić itp.

Istnieje również inne rozwiązanie, jeśli korzystasz z systemd (co wątpię OP wtedy, ale jeśli skończysz tutaj przez wyszukiwanie, i to robisz), oto inne rozwiązanie z wykorzystaniem funkcji automount 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

Jedyną wadą tego jest to, że musisz być ostrożny z nazwą skryptu usługi. Najlepiej jest to tutaj opisane , ale wersja tl; dr mówi, że nazwa pliku usługi musi być nazwana po ścieżce, którą zamierza zamontować. I wszystkie ukośniki w tej ścieżce muszą zostać zastąpione -w nazwie pliku serwisowego, aby automatyczny montaż działał. Powyższy przykład /mnt/remote_share would be a service-file calledmnt-remote_share.mount`

Jest wiele opcji do wyboru .
Jeśli systemd nie jest twoją rzeczą, jest też wiele nowych rzeczy po stronie autofs, które wykonują całkiem dobrą robotę (wszystko to może być trochę skomplikowane dla mojego gustu) .

Jeśli zamiast tego chcesz użyć wpisu fstab, ale skorzystasz z funkcji automatycznego zaczepiania systemd, oto jak mógłby wyglądać twój plik fstab:

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

A jeśli żadna z tych nie działa, istnieje również rozwiązanie czysto fstab:

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

Upuszczę kilka linków do dobrej dokumentacji na ten temat (miej na uwadze, że jest to inny system operacyjny. Ale ich Wiki pisze ten jeden z najlepszych na rynku):

Torxed
źródło
0

Dlaczego nie po prostu dodać lokalizacji montowania do swojego fstab.

Możesz także użyć sshfs. Konfiguruj ssh, aby korzystał z uwierzytelniania za pomocą klucza publicznego.


Na serwerze:
sudo apt-get install openssh-server
Zmień lub dodaj ServerKeyBits 2048 do / etc / ssh / sshd_config


Na kliencie
ssh-keygen -t rsa -b 2048
ssh-copy-id z komputera klienckiego na serwer. Użyj swojego hasła dla swojego użytkownika na serwerze, aby się zalogować
Zmień / etc / ssh / sshd_config: Hasło Autoryzacja nie, UsePAM nie
Używam również innych ustawień, aby wzmocnić ssh, ale w tym przykładzie nie jest to konieczne.
Jeśli jesteś poza siecią LAN, skonfiguruj narzędzie do aktualizacji lub noip i skonfiguruj portforwarding na routerze, więc port 23 lub inny port, którego zdecydujesz się użyć do zaciemnienia usługi, zostanie przesłany na adres IP serwera, jeśli potrzebujesz pomocy, po prostu zapytaj.


Następnie:
sshfs USER @ SERVERADDRESS: / mnt / DRIVELOCATION / PATH / TO / MOUNT / DRIVE / TO Ustawiłem
to polecenie jako program uruchamiający w menu głównym dla niektórych napędów i dla innych w fstab.
Wiem, że to działa, ponieważ codziennie używam tego samego zestawu i hartowania.
W ten sposób możesz pozbyć się potrzeby autofs i wymaganego narzutu.

Michael Prokopec
źródło