Autofs не монтирует общие ресурсы при запуске

Autofs не монтирует общие ресурсы при запуске

Я использую OpenSuSE 12.1 с общими домами через LDAP и NFS. ldap хранит карты. Моя проблема в том, что я не могу монтировать общие папки при загрузке. Это работает только при ручном перезапуске службы autofs. На CentOS 6.3 такой проблемы нет.

Мой /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

Мой /etc/openldap/ldap.conf:

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

Мой /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

Мой /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"

Я что-то пропустил?

решение1

Этот вопрос был поднят сообществом, и он довольно старый.
За эти годы произошло много всего, Майкл упомянул одно решение — использование fstab. И изначальной проблемой, скорее всего, был do due execution-order во время загрузки. Сеть могла быть не готова, какая-то служба могла не запуститься и т. д.

Есть еще одно решение, если вы используете systemd (сомневаюсь, что автор публикации использовал его в то время, но если вы попали сюда через поиск, а это так), вот еще одно решение, использующее функцию автоматического монтирования 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

Единственный недостаток этого в том, что вам нужно быть осторожным с тем, как вы называете скрипт обслуживания. Лучше всего это описатьздесь, но tl;dr-версия заключается в том, что файл службы должен быть назван в соответствии с путем, который он будет монтировать. И все прямые слеши в указанном пути должны быть заменены на -имя файла службы для работы автоматического монтирования. Вышеприведенный пример /mnt/remote_share would be a service-file calledmnt-remote_share.mount`

Есть кучапараметрычтобы пойти с этим.
Если systemd вам не по душе, есть также много нового материала наавтофссторона, которая делает довольно хорошую работу(все это немного сложновато на мой вкус).

Если вместо этого вы хотите использовать запись fstab, но при этом использовать функцию автоматического перехвата systemd, вот как может выглядеть ваш 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

А если ни один из этих вариантов не сработает, есть решение с использованием чистого fstab:

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

Я дам несколько ссылок на хорошую документацию по этой теме (не забывайте, что это другая ОС. Но на момент написания этой статьи их Wiki была одной из лучших на рынке):

решение2

Почему бы просто не добавить места монтирования в ваш fstab?

Вы также можете использовать sshfs. Настройте ssh для использования аутентификации с открытым ключом.


На сервере:
sudo apt-get install openssh-server
Измените или добавьте ServerKeyBits 2048 в /etc/ssh/sshd_config


На клиенте
ssh-keygen -t rsa -b 2048
ssh-copy-id с клиентского компьютера на сервер. Используйте свой пароль для вашего пользователя на серверной машине для входа в систему.
Измените /etc/ssh/sshd_config: PasswordAuthentication no, UsePAM no.
Я также использую другие настройки для защиты ssh, но для этого примера они не нужны.
Если вы находитесь за пределами своей локальной сети, настройте обновление dyndns или noip и настройте переадресацию портов на маршрутизаторе, чтобы порт 23 или любой другой порт, который вы решите использовать для сокрытия службы, перенаправлялся на IP-адрес сервера. Если вам нужна помощь с этим, просто спросите.


Затем:
sshfs USER@SERVERADDRESS:/mnt/DRIVELOCATION /PATH/TO/MOUNT/DRIVE/TO
Я установил эту команду в качестве запуска в главном меню для некоторых дисков и для других в fstab.
Я знаю, что это работает, потому что я использую эту же настройку плюс hardening каждый день.
Таким образом вы можете избавиться от необходимости в autofs и его требуемых накладных расходах.

Связанный контент