[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