четверг, 26 апреля 2018 г.

RHCSA Lab / Autofs

This is kind of magic...
В экзаменационных темах есть три наиболее "незошедших" мне пункта: LVM, permissions и autofs. Про права я уже писал, LVM становится все более понятным после установки сервера для лабы, а вот с autofs разберемся сегодня. По крайней мере такой была первоначальная цель.
Я, как обычно, стремлюсь затрагивать как можно больше тем одновременно и не изолировать одну технологию от другой. Поэтому сегодня настроим autofs на свежем сервере через LDAP.

autofs (automount)

Вернемся к autofs. Что это и зачем оно нужно?
Autofs позволяет гибко монтировать те или иные ресурсы по требованию. В отличие от fstab, например, такие шары не будут присутствовать в системе постоянно, они будут подключаться динамически, при обращении к ним. Более того, есть в autofs возможности использовать маски, но об этом лучше на примере.

В autofs есть два типа монтирования:
  • Direct - монтирует шару в уже созданную директорию при доступе к ней.
  • Indirect - создает "виртуальную" директорию, в которой "слушает" запросы на другие директории. При обращении к ним, монтирует шару. В этом случае, директории просто пропадут, если выключить сервис autofs.
В любой из этих типом можно использовать маски, в рамках RHCSA рассматривается только один вариант. Имея конфигурацию ниже, мы можем "динамически" монтировать папки. Autofs слушает директорию /homedirs. Обратившись к директории ivan (cd /homedirs/ivan), autofs поймет, что надо попытаться подмонтировать директорию /srv/homes/ivan с NFS сервера.     

/homedirs
*    srv1.rhcsalab.hi:/srv/homes/&

Стремясь оставаться ближе к реальным кейсам использования, я подготовил некую инфраструктуру в виде nfs шар и немного подкорректировал LDAP. Самих пользователей и групп я взял из поста про права в Linux. Далее я буду придерживаться следующего сценария.

Надо настроить виртуальную машину, которая будет брать информацию о пользователях и группах у LDAP. Каждый пользователь должен иметь свою домашнюю директорию на NFS сервере, которая должна автоматически подмонтироваться при обращении к ней. Аналогичным образом в системе должны присутствовать две директории, по одной на группу. Одна для kgb, вторая для sobes. Этих директорий не должно быть в системе, если к ним никто не обращался. Должна существовать и третья папка для технических целей, в неё будем монтировать различные ресурсы, которые могут пригодиться для администрирования сервера, например шару с содержимым установочного dvd.

Окружение

Итак, мы имеем две группы KGB и SOBES, по паре пользователей в каждой группе. Каждый пользователь имеет домашнюю директорию в директории /homedirs/$USER. Ваня, скажем, имеет свою персональную директорию в /homedirs/ivan. Таковы настройки LDAP.


На NFS сервера мы имеем соответствующую структуру. Есть домашние папки, есть шары для каждой группы и одна общая, есть директория с содержимым dvd диска.


Быстро глянем на директорию sobes и разберем настройки прав доступа.
Мы имеем drwxrws--T+
d - директория
r - права на чтение (ls) для пользователя
w - права на запись (touch/rm) для пользователя
x – права на выплнение (cd) для пользователя
r - права на чтение (ls) для группы
w - права на запись (touch/rm) для группы
s - установлен GroupID, установлены права на выполнение для группы (маленькая s)
-
-
T - установлен StickyBit, "под ним" нет никаких литер (T большая)
+ - применены ACL

Настраиваем машину

Я поставил новую виртуалку для этого теста, благо я могу сделать это буквально в пару кликов.

LDAP

Информацию о пользователях будем забирать с LDAP сервера. Настройки можно сделать через текстовый файл или через удобный authconfig-tui. Я делаю первоначальную настройку через tui, но и сам конфигурационный файл очень прост. Но для начала надо поставить nss-pam-ldapd.

Указываем, что мы хотим включить LDAP аутентификацию, затем указываем URL и BASE DN, отмечаем, что мы хотим использовать сертификат. Последним шагом копируем сертификат с srv1 в /etc/openldap/cacerts, как нас любезно предупреждает tui.




Последний шаг. Нужно раскоментировать строку в конфиге, которая отключает проверку сертификата. После чего можно рестартовать сервер.


Autofs

Для того чтобы заработало автомонтирование nsf через automount нам потребуется nfs-utils и autofs. )

Для начала просмотрим доступные шары. Теперь создадим директорию /share и смонтируем в неё руками /srv/share. Все работает, как видно.



Direct

Так как директория /share уже создана, настроим прямое монтирование в эту саму директорию. Напомню, такой способ не предполагает автоматическое создание директории, он опирается на уже созданную папку.

Создаем файл blablabla.autofs в /etc/auto.master.d/. Как вариант, можно править /etc/auto.master файл. В любом случае, указываем там, что хотим "мониторить" /- и все следующие инструкции находятся в /etc/share.auto. Тут имя не важно.


Любое indirect монтирование начинается со стоки /-.

В файле share.auto указываем имя какой директории от корня нужно "слушать", в нашем случае /share. Также необходимо указать какую шару монтировать. Я монтирую одноименную папку на srv1.

Ну и, после рестарта сервиса, проверка. Смотрим, что находится в директории и видим содержимое шары. Магия...


Indirect

Теперь создадим "прямую" точку монтирования. В этом случае, никаких директорий создавать не надо и они будут созданный автоматически. Вернее не совсем так, они будут присутствовать в системе до тех пор, пока autofs сервис запущен.

Во все тот же nfs.autofs допишем вторую строку, в которой добавим директорию /res и соответствующий ей  конфигурации res.auto. В этот файл, в свою очередь, пропишем директорию dvd (обратите внимание, что здесь мы используем путь без /) и команду для монтирования шары на srv1.

До перезапуска сервиса директории /res вообще нет в системе. Рестартуем сервис и уже видим, что она появилась. После перехода в неё ситуация не меняется, но стоит с нее перейти в dvd и, вуаля, видим содержимое dvd диска, который лежит на srv1.


Masked

Это не третий путь монтирования, а всего лишь инструмент для увеличения функционала. В знакомый нам файл nfs.autofs допишем третью строку, которая по сути является indirect точкой монтирования (такой директории нет физически).

В файле конфигурации homedirs.auto добавляем * (звуздочку) и команду для монтирования директории с & на конце.  Что это означает? Демон "слушает" то, куда хочет достучаться пользователь и подставляет эту директорию в конец команды монтирования.

Рестартуем сервис и видим, что папка появилась в системе. Идем дальше и пытаемся достучаться до папки пользователя. В итоге наблюдаем её содержимое.

Ну и самый приятный тест. Заходим под пользователем ivan и видим, что его домашней директорией является папка на srv1. Autofs сработал как надо.  Далее переходим в групповую папку kgb и наблюдаем её контент. Здесь тоже все работает.





Комментариев нет:

Отправить комментарий