Настройка VOMS-авторизации в ресурсном центре ГридННС (rpm-версия)
Table of Contents
Комментарий
Все rpm пакеты протестированы автором и должны работать в 32-битной и 64-битной версии. Кроме того предполагается, что в 64-битной системе нет i?86 пакетов и их установка через yum отключена. Если пакеты ставятся, но не работают, попробуйте сделать поддержку VOMS-авторизации с использованием WSGramVOMSAuthorizationHowto. Текущий документ сильно упрощён по сравнению с WSGramVOMSAuthorizationHowto, чтобы не тратить время администраторов ресурсных центров. Хотя неплохо было бы автоматизировать процесс ещё дальше. Если хочется понять что/где/когда/почему читать WSGramVOMSAuthorizationHowto. Мелкие недочёты документа просьба сразу править здесь.
Установка
Процесс установки предполагает что на узле стыка подключен rpm-репозиторий ГридННС (http://koji.ngrid.ru/ngrid.repo) и EPEL. Процесс установки состоит из трех частей:
- Установка LCAS, LCMAPS библиотек и зависимостей
- Сборка и установка модуля VOMS-авторизации для pre-WS сервисов(gridftp)
- Сборка и установка модуля VOMS-авторизации для WS сервисов
Установка LCAL, LCMAPS библиотек и зависимостей
Установка тривиальна:
- yum install lcas lcas-plugins-voms lcas-plugins-basic
- yum install lcmaps lcmaps-plugins-basic lcmaps-plugins-verify-proxy lcmaps-plugins-voms
Сборка и установка модуля VOMS-авторизации для pre-WS сервисов(gridftp)
Сборку пакета предполагается выполнять из под root с установленным GLOBUS_LOCATION. <revision> и <arch> смотреть по факту
- svn co https://svn.ngrid.ru/pkgs/lcas-lcmaps-gt4-interface
- cd lcas-lcmaps-gt4-interface/trunk
- yum install lcas-devel lcmaps-devel
- make srpm
- rpmbuild --rebuild lcas-lcmaps-gt4-interface-0.1.1.1-<revision>.src.rpm
- rpm -i --force --nodeps /usr/src/redhat/RPMS/<arch>/lcas-lcmaps-gt4-interface-0.1.1.1-<revision>.<arch>.rpm
Сборка и установка модуля VOMS-авторизации для WS сервисов
Сборку пакета предполагается выполнять из под root с установленным GLOBUS_LOCATION. <revision> и <arch> смотреть по факту
- svn co https://svn.ngrid.ru/pkgs/lcas-lcmaps-gt4-pdp
- cd lcas-lcmaps-gt4-pdp/trunk
- yum install lcas-devel lcmaps-devel lcmaps-plugins-verify-proxy-devel
- make srpm
- rpmbuild --rebuild lcas-lcmaps-gt4-pdp-1.1-<revision>.src.rpm
- rpm -i --force --nodeps /usr/src/redhat/RPMS/<arch>/lcas-lcmaps-gt4-pdp-1.1-<revision>.<arch>.rpm
Настройка VOMS-авторизации
Настройка включает в себя:
- Подключение в LCAS, LCMAPS pool-ов аккаунтов
- Настройка модуля VOMS-авторизации для pre-WS сервисов(gridftp)
- Настройка модуля VOMS-авторизации для WS сервисов
- Разное
Подключение в LCAS, LCMAPS pool-ов аккаунтов
Предполагается что на кластере в ресурсном центре для каждой поддерживаемой VO существует unix-группа с таким же именем и аккаунты имена которых совпадают с именем группы+числовой суффикс. Данные аккаунты должны иметь в качестве основной группы вышеуказанную группу. Например если ресурсный центр поддерживает VO sysadmin(далее все настройки на примере VO sysadmin), то на машинах кластера:
- должна существовать группа sysadmin
- должны существовать аккаунты вида sysadmin01, sysadmin02 и т.д. с основной группой sysadmin.
Настройка:
- Добавить в /etc/vomses строку вида (можно просто установить пакет ngrid-voms и скопировать содержимое файла /usr/share/ngrid-voms/ngrid-vomses, удалив ненужное):
"sysadmin" "voms.ngrid.ru" "15004" "/C=RU/O=NanoGrid/OU=hosts/OU=sinp.msu.ru/CN=voms.ngrid.ru" "sysadmin"
Сама строка имет следующий формат:"alias" "machine address" "tcp port" "host dn" "official vo name"
- Добавить в /etc/grid-site/grid-mapfile строку:
"/sysadmin" .sysadmin
- Добвить в /etc/grid-site/groupmapfile строку:
"/sysadmin" sysadmin
- Создать в /etc/grid-site/vomsdir директорию sysadmin и в ней файл voms.ngrid.ru.lsc с содержимым:
/C=RU/O=NanoGrid/OU=hosts/OU=sinp.msu.ru/CN=voms.ngrid.ru /C=RU/O=NanoGrid/CN=NanoGrid CA
- Создать в директории /etc/grid-security/gridmapdir (хотя IMHO эта директория должна идти в /var) пустые файлы с названиями аккаунтов группы sysadmin, т.е. sysadmin01, sysadmin02 и т.д.
Настройка модуля VOMS-авторизации для pre-WS сервисов(gridftp)
Скопировать файл /etc/grid-security/gsi-authz.conf.voms в /etc/grid-security/gsi-authz.conf
Настройка модуля VOMS-авторизации для WS сервисов
Заменить в файлах:
- globus_delegation_service/factory-security-config.xml
- globus_delegation_service/service-security-config.xml
- globus_wsrf_rft/factory-security-config.xml
- globus_wsrf_rft/security-config.xml
- globus_wsrf_gram/managed-job-factory-security-config.xml
- globus_wsrf_gram/managed-job-security-config.xml
секцию
<interceptor name="gridmap"/>
на
<interceptor name="lcas-lcmaps-pdp:ru.ngrid.security.LcasLcmapsPDP"></interceptor>
Разное
С помощью команды visudo дописать в конец /etc/sudoers:
Runas_Alias GLOBUSUSERS = %sysadmin Defaults>GLOBUSUSERS !requiretty Defaults>globus !requiretty globus ALL=(GLOBUSUSERS) NOPASSWD: ALL
Убедится что пользователь globus может делать sudo в sysadmin01, sysadmin02 и т.д.
Заменить $GLOBUS_LOCATION/libexec/globus-gridmap-and-execute на
#!/usr/bin/perl
my @arg=@ARGV;
if ($ARGV[0] eq "-g"){
shift @arg;
shift @arg;
}
exec @arg;
По умолчанию однажды занятые для конкретных пользовательских DN локальные учётные записи не освобождаются никогда. Если однако этот вариант не желателен, можно включить автоматическое освобождение связок DN - локальная учётная запись по истечении некоторого времени после последнего использования локальной учётной записи.
Для этого необходимо в настройки плагина lcmaps_voms_poolaccount.mod в файлах /etc/grid-security/lcmaps/lcmaps.db и /etc/grid-security/lcmaps/lcmaps-java.db добавить опцию "-lease_timeout <seconds>". Где <seconds> время после последнего использования учётной записи через LCMAPS, после которого она считается свободной. Поддерживается только в версии lcmaps-plugins-voms-1.4.0.2-3 из репозитория ngrid.
