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

11

Я использую 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"

Я что-то упускаю?

igor012
источник
2
Есть ли шанс, что ваша служба LDAP не будет доступна с картами вовремя для запроса загрузки файловой системы? Это объясняет более поздний успех с перезагрузкой, когда система работает и стабильна.
zedman9991
Каковы начальные уровни (в пределах вашего целевого уровня запуска) autofsи ваш ldap-клиент?
Нильс
@ zedman9991 Эта проблема возникает только с моей версией opensuse (12.1). На Centos 6.3 и OpenSuse 11.2 она работает нормально.
igor012
@Nils Autofs запускается на уровнях выполнения 3 и 5.
igor012
Существует разница в том, как autofs монтирует карты при загрузке на opensuse 11.2, он монтирует их при доступе, а в opensuse 12.1 - монтирует их все, но не имеет доступа.
igor012

Ответы:

1

Этот вопрос был затронут сообществом, и он довольно старый.
За эти годы многое произошло, Майкл упомянул одно решение с использованием fstab. И исходная проблема, скорее всего, заключалась в том, чтобы сделать из-за порядка выполнения во время загрузки. Возможно, сеть не была готова, некоторые службы не были запущены и т. Д.

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

Если вы хотите использовать вместо этого запись в 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

И если ни один из этих способов не работает, есть решение pure-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 на данный момент является одной из лучших на рынке):

Torxed
источник
0

Почему бы просто не добавить места монтирования в ваш 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.
Я знаю, что это работает, потому что я использую эту же настройку плюс ежедневную закалку.
Таким образом, вы можете избавиться от необходимости использования autofs и необходимых накладных расходов.

Майкл Прокопец
источник