Автор статьи: Рустем Галиев

IBM Senior DevOps engineer & Integration Architect

Привет Хабр! На связи Рустем.

Сегодня мы поговорим про такую практику в Linux, как automount

Мы настроим сервер NFS для предоставления некоторых общих ресурсов и настроим автоматическое монтирование для автоматического доступа к этим общим ресурсам при необходимости.

В этой лабораторной задаче мы будем практиковаться в том, как:

  • Как настроить сервер NFS для предоставления простого общего ресурса

  • Как проверить доступ к серверу NFS

  • Как установить, настроить и запустить службу autofs

  • Как проверить автомонтируемые каталоги

Устанавливаем и настраиваем NFS сервер

Использование автоматического монтирования имеет смысл в сочетании с удаленными общими ресурсами NFS. Вы часто будете видеть это, чтобы предоставить доступ к домашним каталогам пользователей на основе NFS. Это позволяет нам размещать домашние каталоги на одном центральном сервере и предоставлять пользователям доступ к этим домашним каталогам при входе на любой компьютер. Чтобы создать такую среду, сначала необходимо установить и настроить сервер NFS.

Для начала мы используем dnf install -y nfs-utils для установки сервера NFS и связанных с ним утилит.

В NFS нам нужно чем-то поделиться. Давайте создадим фиктивную структуру домашнего каталога пользователя, которую затем можно будет расшарить:
mkdir -p /users/nfs/{lisa,linda,anna}

Далее нам нужно сообщить NFS, чтобы она предоставила общий доступ к каталогу, содержащему домашние каталоги этих пользователей. Для этого нужен файл /etc/exports, который содержит имя каталога для общего доступа, включая некоторые права доступа:
echo "/users *(rw,no_root_squash)" > /etc/exports

Включаем и проверяем NFS сервер

На данный момент мы создали базовую конфигурацию NFS. Давайте запустим и включим сервер NFS и проверим:

systemctl enable --now nfs-server

Команда showmount предоставляет простой способ проверки доступа к серверу NFS. В данном случае это очень просто, так как сервер NFS даже не работает удаленно. Вот почему нам также не нужно настраивать какой-либо брандмауэр. Мы используем следующую команду для проверки доступности общих ресурсов NFS:

showmount -e localhost

Мы увидим, что каталог /users экспортирован, а это значит, что пора заняться настройкой автомонтирования.

Устанавливаем пакет autofs

Чтобы использовать automount, нам нужно установить службу autofs. Начнем с этого: dnf install -y autofs

Поскольку у autofs еще нет никакой конфигурации, нет особого смысла запускать ее сейчас, поэтому давайте перейдем к следующему шагу и создадим конфигурацию.

Создаем конфигурацию автомонтирования

Конфигурация автомонтирования хранится в двух файлах. Файл /etc/auto.master используется для определения каталога, которым будет управлять автомонтирование, а также файла, используемого для дальнейшей настройки. Хорошим примером является каталог /misc. Мы используем следующую команду, чтобы увидеть, как выглядит эта строка по умолчанию:

grep '^/misc' /etc/auto.master

В этом сценарии мы имитируем автоматическое монтирование домашних каталогов пользователей, предоставляемых NFS. Для этого мы запускаем следующую команду, чтобы добавить строку в файл auto.master:

echo "/home/nfs /etc/auto.nfs" >> /etc/auto.master

Если нам когда-нибудь понадобится пример автомонтируемого каталога, взгляните на содержимое /etc/auto.misc. Он покажет нам имена подкаталогов, которые мы собираемся монтировать в основной каталог, а также откуда эти каталоги можно получить. Строка, которая монтирует FTP-сервер Linux (который на самом деле является сервером NFS), очень полезна:

grep -i linux /etc/auto.misc

На основе этого примера мы можем добавить монтирование для домашних каталогов NFS. Однако есть одна вещь, которую нам нужно сделать по-другому. Нам нужны подстановочные знаки для ссылки на любой каталог, а для ссылки на соответствующую часть на сервере NFS нам нужен амперсанд. Поэтому для создания конфигурации автомонтирования мы используем

echo "* -rw localhost:/users/nfs/&" > /etc/auto.nfs

На этом настройка завершена, поэтому пришло время запустить и включить службу autofs: systemctl enable --now autofs

Проверяем монтирования

В этот момент все должно работать. Во-первых, давайте посмотрим, как это выглядит. Используйте следующую команду, чтобы проверить содержимое (включая скрытые файлы) каталога /home/nfs. Глядя на результат, обратите внимание, что мы никогда не создавали этот каталог. Нам и не нужно было его создавать,, потому что autofs сделал это за нас:

ls -al /home/nfs

На предыдущем шаге мы видели, что каталог /home/nfs не содержит подкаталогов. Это ожидаемо, потому что autofs станет активным только тогда, когда будет осуществлен доступ к одному из подкаталогов. Для домашнего каталога это произойдет автоматически при входе пользователя в систему. Сделаем следующее, чтобы имитировать это: cd /home/nfs/linda

Введем pwd, чтобы убедиться, что мы действительно находимся в каталоге /home/nfs/linda, который теперь автоматически смонтирован для нас.

Чтобы понять немного больше обо всем, что происходит в фоновом режиме, мы используем mount | tail -5 где мы увидим монтирования, созданные autofs.

Все довольно просто!

В заключение приглашаю всех на бесплатный урок специализации Linux, где разберем основные моменты использования LVM для организации дисковой системы в Linux.

Комментарии (2)


  1. Johan_Palych
    20.12.2022 20:39
    -1

    Какой интересный сервер без Firewall и SElinux


  1. wizard_s
    20.12.2022 22:59
    +2

    А будет рассказ о том, как лечить зависший nfs клиент при отвалившемся сервере и что делать, чтобы этого не происходило?