вторник, 27 января 2009 г.

Супер робот


17 рабочих дней / полдня отдыха

хит этой еще не законченной "рабочей недели".


В голове моей - электронные пластинки.
300 гигабайт - без задержки и заминки.

Может потому я не очень многословен,
Потому, что мозг мой супер-мега-электронный

У меня в груди бьется сердце из металла
Я не знал любви, много это или мало

Может потому я так мало тока трачу,
Потому, что никогда не смеюсь я и не плачу


Я супер робот – сделан из железа
Супер электронный мозг и зажигание – супер пьеза
Я супер робот – все мне по плечу
Не курю, не пью и не торчу

У меня внутри очень сложные процессы
Электронный шквал, навороченный процессор.

Может потому я не очень симпатичный,
Потому, что вид мой очень даже необычный

Иногда я сплю, отключившись от сомнений,
Погрузившись в треск электронных сновидений.

Может потому для людей так много значу,
Потому, что никогда ничего не напортачу

среда, 21 января 2009 г.

Джаббер - что за зверь?

В связи с постоянно учащающимися проблемами с ICQ и по сути объявлением открытой войны альтернативным клиентам, все больше и больше пользователей присмотривается к джабберу.

Джаббер - (джа́ббер; досл. пер. с англ. — болтовня, трёп) — открытый протокол для быстрого обмена сообщениями и информацией о присутствии между любыми двумя абонентами Интернет.

Более подробное объяснение можно с легкостью найти в википедии, а тут я постараюсь объяснить в чем же преимущество джаббер перед другими протоколами, и вышеупомянутой аськой в частности.

Во-первых, джаббер реализован на открытом (читай бесплатном) XMPP-протоколе и разработчики не требует отчислений за его использование.

Во-вторых, и на мой взгляд, это главное преимущество, джаббер децентрализован. Пожалуй, проще всего провести параллель с почтой. В Сети существует огромное количество корпоративных, частных и просто халявных почтовых серверов. По сути, любой может зарегистрировать доменное имя vasya-pupkin.ru, купить статический IP-адрес и, да хоть у себя дома, поднять почтовый сервак. На нем можно будет создать любое количество почтовых ящиков с произвольными названиями. При этом, если кто-то захочет послать на такой ящик письмо, то остальные почтовые сервера без проблем разберутся где найти адресата.
Так же и с джаббером. Можно поднять свой джаббер сервер, доступный из интернета, и завести на нем джаббер-аккаунты. Кстати, и выглядеть они будут так же, как адреса электронной почты - vasya@vasya-pupkin.ru. Естественно, проще воспользоваться публичными джаббер-серверами, например jabber.ru

В-третьих, возможности джаббера несравнимо выше, чем у конкурентов. Сам по себе джаббер позволяет делать через себя транспорты в аську, мейл-агент, MSN, yahoo и многие другие. Так же через джаббер доступны аудио-чаты и видеоконференции. И вообще, каждый может заняться расширением функционала джаббер, поэтому в будущем нас ждет появление новых сервисов.

И, в-четвертых, из открытости и распространенности решений джаббер-серверов и джаббер-клиентов, вытекает немаловажный аспект для корпоративного сектора. Это уже упомянутые мной видео и аудиоконференции, экономия на траффике, когда он не уходит, без необходимости, за пределы корпоративной сети. И самый важный аспект - безопастноть и полный контроль. В настоящий момент, огромное количество пользователей решают деловые вопросы через ICQ, что в корне небезопастно.

В будущем, мои статьи будут ориентированы именно на корпоративных пользоватей (читай администраторов ;) ) джаббер.

Для пользователей миранды - скачать, если надо, плагин и в настройках плагина выставить "клиент ID" - &RQ, ICQ6, или еще какой.... Так работает, но раз на раз...

UPD: исправленная версия плагина Miranda IM ICQ
Есть данные, что эта dll не работает со сборкой хоткоффи

правка  v0.2 (в тексте - пометки "правка", курсивом выделен предыдущий вариант)

Задача - поднять внутрикорпоративный сервер чата. С минимальными телодвижениями со стороны пользователей (в нашем случае их вообще нет). Имеем AD, так что незачем создавать отдельную базу данных пользователей. Идеально для этой цели подходит связка - сервер Openfire и клиент Pandion | Spark

Так же существует реализация SSO, в случае с сервером на Windows. Думаю, что и на Linux-сервере это можно реализовать, но данной целью пока не задавался. Т.о. для винды качаем еще патч-плагин Openfire, ссылку на который можно найти на форумах ру-борда (раздел для сисадминов). Кстати, родной Опенфаеровский клиент Spark у меня работать с SSO отказался.

правка: Spark из коробки заработал с виндовым сервером (v 3.6.3) через SSO. 


правка 2: нифига оно не заработало, а как оказалось, скешировало пароль... так, что мануал по настройке ищите во второй части части статей про Опенфаер.
Первым делом ставим скачанный Openfire, и после установки соглашаемся с его запуском. Вся админка идет через замечательный приятный глазу веб-интерфейс. На данный момент нет поддержки русского языка, но нафиг оно и не надо ;) Админка доступна по адресу http://localhost:9090 , ну или откуда вы там заходите...

Первоначальная настройка (если я чего-то не упомянул, оставляйте по дефолту):

1) выбираем понравившийся язык
2) в поле домен пишем имя своего AD-домена, напимер "domain.lc"
3) выбираем базу данных, где Опенфаер будет хранить свои данные. В простейшем случае - внутрення БД "Embedded Database", вот ее и берем. Кому интересно, с MySQL у меня тоже проблем не возникло.
4) Где хранить аккаунты. Наш выбор - Directory Server (LDAP)
5)* Server Type: Active Directory
* Host: вот тут можно указать имя любого контроллера домена, но я бы порекомендовал писать сюда сразу же имя домена, без указания конкретного сервера, т.к. в этом случае, Опенфаер будет искать через ДНС первый попавшийся Контроллер домена.
* На следующем пункте остановлюсь поподробнее, т.к. не все понимают что нужно писать в Base DN: Начиная с этого контейнера Опенфаер будет искать учтеные записи в AD.
И так, допустим, ваш домен "domen.lc", а учетные записи (про группы не забудьте) лежат в контейнере OU-Users.
Тогда пункт Base DN: будет выглядеть так
OU=OU-Users,DC=domain,DC=lc

Administrator DN: любая учетная запись с правами на чтение AD и пароль от нее. Учетка должна быть, естественно ниже корня Base DN: Указывать нужно только логин. Я рекомендую создать отдельную учетку с неограниченным сроком, запретом входа на компьютеры, забыть про нее и никогда не менять пароль. И вообще ей не пользоваться.
Жмем тест, убеждаемся, что все хорошо, если все плохо, смотрим что не так.
6) Profile Settings: User Mapping тупо жмем тест и смотрим как подмаппились пользователи. Тут проблем быть не должно
7) Profile Settings: Group Mapping аналогично предыдущему пункту, но только для групп пользователей.
8) Аккаунты администраторов Опенфаер. Указываем реальные логины без имени домена. Можно нажать "тест" и проверить как все заработает
9) Поздарвляю, жмем "логин" и попадаем в админку Опенфаера.

На этом пока все, в дальнейшем будем прикручивать SSO, создавать группы и на вкусное - мой скрипт автоматической установки Pandion, с автоматическими настройками.

Хост - Debian 4 ядро 2.6.24 etchnhalf . 

Стоит VirtualBox 2.1.0, в нем гость ВинХР. Виртуалка запускается при старте системы через rc.d командой

VBoxManage startvm "WinXP" -type vrdp

Гуев на хосте нет. Проблема в том, что если не выключить корректно виртуалку, хост при выключении падает в кернел паник.

Я написал скрипт выключения виртуальной машины, который пытается корректно выключить виртуальную машину, а в случае неудачи просто убивает относящиеся к ней процессы. Да и вообще, если не найдет запущенных машин пытается убить все Vbox`ы... так, на всякий случай ;)
скрипт можно (и нужно) сложить в /etc/init.d/vm.stop и сделать на него симлинки

ln -s /etc/init.d/vm.stop /etc/rc0.d/K08vm.stop
ln -s /etc/init.d/vm.stop /etc/rc1.d/K08vm.stop
ln -s /etc/init.d/vm.stop /etc/rc6.d/K08vm.stop

А вот, собссно и сам скрипт. Поддерживается несколько ВМ. Комментарии в коде.
Версия 0.2

#!/bin/sh

#v0.2
TIMEOUT=30 #Таймаут в секундах на заверщение работы. =DELAY*TIMEOUT. Для каждой виртуальной машины
DELAY=2 #Задержка проверки.
for VMS in WinXP W2k3 #Виртуальные машины через пробел. Регистрозависимо.
do
  COUNT=1
  if /usr/bin/VBoxManage showvminfo "$VMS" | grep "running" -c > /dev/null
  then /usr/bin/VBoxManage controlvm "$VMS" acpipowerbutton #Команда "нажать кнопку питания"
  # Гостевая машина должна выполнять какое-либо действие (логично, что это выключение или спячка)
  # при нажатии кнопки питания. Иначе она будет просто убита по таймауту.
  # К примеру, cерверные версии Windows по умолчанию, без входа в систему не реагируют на кнопку питания.
  echo -n Stopping Virtual Machine $VMS.
  until [ "$COUNT" -gt "$TIMEOUT" ]
  do
  sleep $DELAY
  echo -n .
  if /usr/bin/VBoxManage showvminfo "$VMS" | grep "powered off" -c > /dev/null
  then echo "done"
  break
  fi
  let "COUNT += 1"
  done
  if [ "$COUNT" -gt "$TIMEOUT" ]
  then echo -e '\E[31;40mtimeout. will be terminated.'; tput sgr0
  fi
  fi
done
killall -r VBox #На всякий случай, полюбас убиваею все VBox`ы



Форматирование кода уехало. Обращайте внимание на "левые" комментарии

На Win2k3 R2 SP2 столкнулся с проблемой. В логи стали сыпаться ошибки

Самостоятельное обновление не работает.

Стал искать причину и выяснил, что после обновленияя SP1 для WSUS, из IIS пропал виртуальный катлог Selfupdate.

Небходимо добавить вирт. каталог Selfupdate, путь - %systemdrive%:\Program Files\Update Services\Selfupdate. Права на чтение-запись, анонимный доступ и выолнение сценариев. 

Так, ну что ж... Как щас принято говорить, пиарю блог ;)

Блондинка, кот, шредер, админ, хуясе, о_О