Automember rebuild membership[править]
Пользовательские или хост группы можно легко перестроить на основе новых или обновленных правил automember. Команда automember rebuild только добавляет новые отношения для групп, она не удаляет те, которые не соответствуют правилам automember. Недавно добавленная команда вызовет задачу в rebuild automember, создав запись LDAP в cn = automember rebuild membership, cn = tasks, cn = config.
Плагин automember в настоящее время проверяет операции Add(добавления), чтобы увидеть, есть ли запись соответствует одному из определенных правил automember. Существующие записи не проверяются когда они изменяются. Чтобы применить правило для всех записей, надо добавить задачу к плагину automember.
Создатель задачи обеспечит фильтр поиска и базу. Все совпадающие записи будут проверяться в соответствии с определенными правилами automember, чтобы увидеть если они должны быть добавлены в какие-либо группы. Это позволяет добавить запуск атрибуты(значения) после того, как запись была первоначально добавлена, а затем вызвать задачу(выполнить) обновления automember. Ipa automember-rebuild может использоваться для восстановления членства для всех объектов определенного типа:
$ ipa automember-rebuild --type=group $ ipa automember-rebuild --type=hostgroup
Он также может использоваться для восстановления членства для указанных записей:
Ipa automount nfs[править]
Установим nfs-server:
apt-get install nfs-server
Включим SECURE_NFS:
Вход пользователя[править]
При первом входе пользователя будет запрошен текущий установленный администратором пароль и затем у пользователя запрашивается новый пароль и его подтверждение.
Добавление расширенных полей в ldap[править]
Если необходимо добавить поля в вашу схему ldap, то реализация этого возможна через команду ldapmodify и добавление своих плагинов для отображения этих полей в WebUi.Обычно файлы модификации схемы являются типом .ldif.Пример:Содержание файла addExtField.ldif
dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2 NAME 'favoriteColorName' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Extending FreeIPA' ) dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.3 NAME 'redirects' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Extending FreeIPA') dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.4 NAME 'attbool' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 X-ORIGIN 'Extending FreeIPA') dn: cn=schema changetype: modify add: objectclasses objectclasses: ( 2.25.28639311321113238241701611583088740684.14.2.1 NAME 'customPerson' SUP person STRUCTURAL MAY ( favoriteColorName $ attbool $ redirects ) X-ORIGIN 'Extending FreeIPA' )
Детальное пояснение для блока:
dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2 NAME 'favoriteColorName' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Extending FreeIPA' )
dn – dn, в котором будет проводиться изменение. Добавление/удаление классов и т.д.
changetype – атрибут, отвечающий за тип изменений, которые будут происходить.(add, delete, modify, modrdn)
add: attributeTypes – добавление атрибута, далее идёт описание атрибута.2.25.28639311321113238241701611583088740684.14.2.2 – уникальный идентификатор атрибута. Можно написать любой.
NAME ‘favoriteColorName’ – По другому можно назвать – primary name. Название атрибута.
EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch – эти атрибуты заданы для проверки соответствия содержания атрибута правилам caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 – OID типа данных
Все изменения в схеме производятся от пользователя – Directory manager.
Изменение схемы ldap:
$ ldapmodify -D "cn=Directory Manager" -W -f addExtField.ldif
После изменения схемы, путем добавления нового objectclass, нужно чтобы эти поля еще можно было редактировать в web-интерфейсе. Для этого необходимо сделать палагин. В примере использовано 3 атрибута, для них сделаем 3 отдельных плагина:
1. Создание папки:
mkdir -p /usr/share/ipa/ui/js/plugins/favoriteColorName
2. Создание самого плагина:
mcedit /usr/share/ipa/ui/js/plugins/favoriteColorName/favoriteColorName.js
Тело плагина:
Использование haproxy для высокой доступности freeipa[править]
Требуется:
Сервер №1 c freeipa: dc1.testbc.testgl
Сервер №2 с репликой freeipa: dc2.testbc.testgl
Сервер №3 с haproxy: haproxy.testbc.testgl
Настройка:
Инструкция для настройки сервера №1 и №2: FreeIPA
На сервере №3:
Установить
# apt-get install haproxy
Сохранить оригинальный конфигурационный файл:
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxyBAK.cfg
Изменить конфигурацию:
Настройка доверительных отношений с ad[править]
- FreeIPA/Интеграция_с_AD
- Настройка доверительных отношений с AD
Настройка клиентов
Тут у меня есть решение в 3 команды 🙂
Настройка репликации[править]
- FreeIPA/Настройка_репликации
- Настройка репликации
- FreeIPA/Настройка_репликации#С_интегрированным_DNS_и_без_CA
- Настройка IPA CA-less репликации
Настройка сервера
Перечень используемых технологий:
Создание аккаунта для доступа к ldap[править]
Некоторые сервисы использующие LDAP требуют предварительно настроенной учетной записи. Использование обычной учетной записи пользователя предпочтительней, но не всегда это целесообразно делать. Можно сделать системную учетную запись следующим образом на сервере FreeIPA используя пароль Directory :
Установка freeipa клиента и подключение к серверу[править]
- FreeIPA/Клиент
- Установка FreeIPA клиента и подключение к серверу
- FreeIPA/Ansible
- Установка FreeIPA клиентов с помощью Ansible
Для работы sudo-политик для доменных пользователей на клиентской машине необходимо разрешить доступ к sudo:
# control sudo public
Установка сервера freeipa[править]
- FreeIPA/Установка_сервера_FreeIPA
- Установка сервера FreeIPA
- FreeIPA/Установка_сервера_FreeIPA#Установка_сервера_FreeIPA_в_режиме_CA-less
- Установка сервера FreeIPA в режиме CA-less
Выводы
Docker может упростить разворачивание сложных проектов в любой инфраструктуре. У Docker есть масса применений и это только одно из них.
В дальнейшем я, возможно, сподвигнусь написать о другом проекте, который интенсивно использует ограничения ресурсов, интегрированные в Docker (CPU, RAM).