[Devel] Проект Tartarus

Evgeny Sinelnikov =?iso-8859-1?q?sin_=CE=C1_etersoft=2Eru?=
Чт Июн 5 21:04:04 MSD 2008


Здравствуйте,

хочу описать текущее положение дел по проекту, сроки и планы.

На текущий момент проект находится в стадии реализации, проведена
оценка с аналогом в виде freeipa.org. По результатам оценки выяснено,
что есть существенные технологические различия в особенностях нашего
решения.

Первичный план по проекту предполагал реализовать следующие этапы:
- реализовать поддержку, в выбранном RPC (в нашем случае Ice)
прозрачной аутентификации по шифрованному каналу данных
- реализовать минимальный набор сервисов по удалённой настройке
сетевых служб - конфигураторы (DNS, DHCP, Kerberos (замена krb5kadmin)
и PostgreSQL для настройки bind, dhcpd, MIT krb5kdc и posgresql
соответственно)
- реализовать сервис системной базы данных объектов (Registrator),
необходимой для организации сетевой инфраструктуры - пользователи,
сервисы, компьютеры (специальный вид сервисов, представленных в виде
объектов в системной базе).
- реализовать поддержу со стороны автоматизации процесса
разворачивания сервисов и настройки клиентов (первичная настройка
инфраструктуры, первичная настройка клиентов (подключение компьютера к
информационной среде - настройка nss, pam, etc), добавление отдельных
сервисов)
- реализовать минимальный набор графических и консольных утилит

Текущее положение дел:
- реализация поддержки закончена, для неё необходимы openssl,
собранный с поддержкой kerberos, и ice, с нашими модификациями. К
сожалению, ни то, ни другое не просто добавить в текущий Сизиф по
причинам довольно странным... Дело в том, что ldv@ до сих пор держит в
Сизифе openssl-0.9.8d, в то время как я ему ещё пару месяцев назад
давал, пример сборки 0.9.8g с поддержкой kerberos. Поддержка же ice
требует наличия правильного openssl-devel, зависящего от
libkrb5-devel.... По сему я думаю переложить это в репозитории
LINUX на Etersoft. Единственное, что меня сдерживало - это влияние
openssl на кривизну сборки некоторых пакетов, которе с ним линкуются и
не корректно прописывают CFLAGS... Дело в том, что в тех
дистрибутивах, где krb5.h не переложен в отдельный каталог, как это
сделано в сборке ALT Linux, это кривизна тоже не проявляется... В
частности, этим страдает kdebase, и хотя zerg@ и обещал всё исправить,
до появления нового openssl с поддержкой kerberos в Сизифе, все эти
баги выяснить проблематично... Но пока, я думаю, и не нужно...

- Из минимального набора сервисов по настройке сетевых служб
реализован Kerberos (замена krb5kadmin), в процессе отладки DNS (то,
что сделал Рома перед уходом). Остались PostgreSQL и DHCP - из них для
первого по минимуму нужно только первичное разворачивание, для второго
- стандаратные настройки (к сожалению, пока мы его не успеваем и даже
не закладывались до конца июля)... Последний впрочем не обязателен -
для него тоже можно сделать только часть по разворачиванию.

- Системная база объектов планировалась быть реализованной
первоначально без иерархии... Иерархию можно добавить позже - это
усложнение сервиса влияющее существенно на его работоспособность...

- Процесс автоматизации клиентов сводится к установке нужных пакетов и
запуску скриптов по настройке nss_tartarus (должен быть сделан вместе
с системной базой), nss_role (я про это писал в devel на altlinux -
модуль примитивен, но пока не реализован), pam_krb5 и настройке ролей
для глобальных пользователей.

- Графическая утилита для настройки DNS, которую начал делать Рома
требует завершения, но уже работает... То есть графическое приложение
на питоне уже сейчас может прозрачно (после kinit или входа через
pam_krb5) подключаться к сервису и удалённо выполнять команды и
запрашивать данные через безопасное ssl-соединение... Осталось
добавить работу с пользователями и возможно сделать несколько
консольных утилит (делаются они настолько просто, что мы пока на них
не отвлекаемся, поскольку графическая утилита более удобна).

План по дополнительным задачам в рамках проекта:
- добавить иерархию в системную базу данных и реализовать для этого
набор интерфейсов
- реализовать либо экспорт в LDAP, либо свою реализацию протокола на
чтение, либо openldap, как альтернативный бекенд для системной базы
данных
- реализовать дополнительные конфигураторы для DHCP, Proxy (вероятно
Squid), Iptables based Gateway...
- реализовать набор бекендов для модулей альтератора для удалённого
управления компьютером (в этом плане можно сделать тупой транспорт
шины woo-bus по сети, но для этого Ice довольно избыточен - достаточно
обычного сокета). При этом права root делегируются группе системных
администраторов, которым в свою очередь этим права делегируются с
помощью модуля ролей.
- составить набор клиентских скриптов представляющих политику
управления компьютером (например, время, группы и пользователи,
которые могут входить в систему (настройки PAM), или системные
настройки KDM, или настройки дисковых квот на рабочих станциях) и
реализовать конфигуратор для применения политик и сервис
предоставляющий политики в рамках объектов в системной базе.
- внести оттестированный набор элементов проекта в десктопный
дистрибутив (первично основан на ALT Linux Sisyphus) в качестве
клиентов и собрать минимальный быстро разворачиваемый сервер,
способный управляться с любой рабочей станции... Получившуюся пару
десктоп-сервер продавать как решение...
- адаптировать отдельные элементы проекта для специфичной работы в
рамках различных дистрибутивов и продавать как дополнительные решения
(например, наборы десктопные утилиты для Ubuntu или серверные для
Fedora).

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

Сроки по задачам:
- к конференции мы планировали реализовать минимальную часть с сетевым
логином и утилитами по управлению сервером
- вероятно, LINUX на Etersoft будет первым и единственным, на текущий
момент, дистрибутивом поддерживающим это решение на как уровне
десктопа, так и на уровне сервера. Картинки в данном случае интересны,
но более важен момент с поддержкой драйверов... Не все необходимые
модули ядра сейчас собраны в дистрибутив - не хватает многих модулей,
которые в Сизифе были собраны только для ядер серии 2.6.18.
- сроки на дополнительные задачи определяются в рамках объёма этих
задач и наших возможностей

Проблемы лицензирования:
- проект использует ICE, распространяемый по полному GPL, необходимо
рассмотреть варианты лицензии позволяющей делать закрытые решения для
сторонних производителей по двойной лицензии, для чего необходимо
иметь полное право владения на момент внесения поправок к лицензии,
для чего вероятно понадобится составлять соглашение с zeroc. Сейчас
это не важно... Это будет важно только в случае необходимости продажи
закрытого дистрибутива... или закрытых решений основанных на
проекте... В этом плане проблема принятия чужих патчей нами или
другими от нас увиделось мне не столь простой задачей...

-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки devel