[devel] I: connexion update
Peter V. Saveliev
=?iso-8859-1?q?peet_=CE=C1_altlinux=2Eru?=
Пн Мар 24 11:57:54 MSK 2008
...
Updated to 0.4.6 rev. 1189
(http://www.radlinux.org/connexion/browser/branches/0.4.6?rev=1189)
Компоненты в Сизифе:
* ядро
* модули: базовый словарь
* модули: обработка событий
* модули: ncsh -- настройка сети, системы и т.п.
* интерфейсы: command line
* интерфейсы: registrator -- это управление ACL
* документация
* ncsh -- системный сервис, враппер cli и т.п.
* всякое
Установка ncsh: apt-get install ncsh
Использование ncsh:
# $EDITOR /etc/connexion/config
# service ncsh start
# ncsh -h
# ncsh
ncsh -- это лишь один из возможных способов применения connexion. В данном
случае, для настройки сети (и, в перспективе, некоторых системных сервисов) и
мониторинга событий.
В качестве источников событий на данный момент поддерживаются netlink, SNMP
traps v1, v2c. Т.е. в ответ на трап или изменение на интерфейсах можно
применять ту или иную часть конфигурации -- менять маршруты, адреса,
настройки iptables и т.п. Подробнее в примерах.
Использование connexion для своих нужд
$ connexion -x \
-w bala:/path/to/modules \
-W base:/usr/share/connexion-modules/basedict \
...
$ connexion-cli
В принципе, connexion core -- это типа такого языка программирования с
синтаксисом, слегка напоминающим питон и конфиги cisco, а по стилю -- xml.
Конфиг, который использует сервис ncsh, на самом деле просто скрипт для этого
языка. Словарь доступных слов определяется набором подключенных модулей. Чем
больше иерархий (-W, -w) подключено, тем богаче словарь. Каждое слово в
словаре определно в модуле. Пока что модули можно писать только на python,
т.к. мы со Стасом не нашли пока что примелемого стандарта для подключения
внешних модулей; а попадать в ситуацию a-la альтератор я не хочу.
Запускается нормально и от пользователя в том числе. При запуске от
пользователя не будут работать модули настройки сети (т.е., модули-то
отработают, но без толку) и нельзя snmp trapd сажать на привилегированные
порты. Это понятно. Коллектор событий netlink, однако, работает по любому.
Можно указывать сколько угодно иерархий модулей, но минимум -- одна. Разумно
включать модули из базового словаря. Подключение через -w означает отсутствие
доступа к внутренним структурам ядра connexion, через -W -- наличие такой
возможности. Базовый словарь надо подключать через -W, т.к. он управляет
ядром. Иерархия указанная первой, будет корнем дерева, ну, типа корневым
xmlns.
...
Разные примеры работы с ncsh: в документации, либо в ncsh -h, либо:
http://www.radlinux.org/docs/static/ru/ncsh_usecases.html
http://www.radlinux.org/connexion/wiki/Connexion/Samples
ЗЫ: мне тут в голову пришла мысль, пока писал: коль скоро connexion -- это
такой язык, то морда для него -- это вполне IDE. В том числе и веб. Надо
обдумать и попробовать зайти к кобыле с этого конца.
...
Всякое: питоноводам, возможно, будет интересна такая фишка как
python-module-cxnet, ушедшая в составе connexion-libs. Это низкоуровневые
интерфейсы работы с tcp/ip и netlink. В качестве примера -- userspace tarpit,
см.
http://www.radlinux.org/connexion/browser/branches/0.4.6/lib/cxnet/tarpit.py
--
Peter V. Saveliev
Подробная информация о списке рассылки Devel