Архив автора

СКС

Давно не писал в блог, все связанно со сменой работы.

Ноябрь у меня просто выпал из жизни, занимался организацией работ по прокладке СКС на 500 портов, приятного мало, но в итоге результат есть.

Позднее опишу сделанные мною выводы.

Петр Зайцев и mail.ru

Интересное видео со встречи Петра Зайцева из Percona в компании mail.ru, есть некоторая интересная информация по теме оптимизации работы mysql. Рекомендую для просмотра всем системным администраторам.

Анализ проблем с буферизацией в современных TCP/IP сетях

Интересный цикл статей описывающий проблемы с буферизацией в современных высокоскоростных TCP/IP сетях. Рекомендую к прочтению всем системным администраторам.

Жизненно…

rdesktop и переключение раскладок

Пользуюсь программой rdesktop для подключения по RDP к серверам Windows или рабочим станциям, заметил странный глюк, что при переключении раскладок сбивается биндинг некоторых клавиш, то есть вместо . пишется ю, или еще что-нибудь.

Для исправления данной ошибки необходимо создать файл /usr/share/rdesktop/keymaps/en-us.fixed со следующим содержанием:

include common
map 0x409
asciicircum 0x07 shift
apostrophe 0x28
grave 0x29
asciitilde 0x29 shift
bar 0x2b shift
less 0x33 shift
greater 0x34 shift

Далее при запуске rdesktop указываем следующий параметр «-k en-us.fixed», после этого проблемы не должно быть.

ASUS WL-500G Premium

Давно не писал в блог.

Вчера обновил прошивку для роутера asus wl-500g premium, у меня еще v1 версия. Изначально стояла прошивка от «Олега», которая исправляет некоторые ошибки стандартной прошивки и дает нормально работать в локальных сетях России, но, как я понял, Олег больше не поддерживает ее и нашлись энтузиасты, которые подхватили упавшее знамя. Судя по changelog`у прошивки обновления они выпускают регулярно.

Страница проекта wl500g. Рекомендуется всем владельцам роутеров Asus обозначенной модели. Также можно использовать DD-WRT прошивку, но я ее не устанавливал, так что никакого фидбека о ее использовании у меня нет.

Список основных отличий от последней «прошивки Олега» версии 1.9.2.7-10:

  • Ядро Linux 2.4.37 [сделан бэкпорт драйвера EHCI (USB 2.0), драйвера option, FUSE, множество багфиксов]
  • uClibc 0.9.30.1
  • включён accel-pptp [ускорение pptp более чем в 2 раза]
  • iptables 1.3.8 [layer7, ipset, IMQ, webstr, esfq шедулер, багфиксы]
  • iproute2 2.4.7-now-ss020116 [pfifo_fast, esfq, багфиксы]
  • dnsmasq 2.55
  • busybox 1.17
  • vsftpd 2.3.2
  • поддержка dyndns сделана на inadyn
  • libusb 1.0 + usb_modeswitch 1.1

pptp_gre.c Message too long

Недавно настраивал подключение из Linux при помощи pptp клиента к Windows 2003 VPN серверу, после подключения и нескольких секунд активного использования туннеля он разрывался с ошибкой вынесенной в заголовок поста.

В результате анализа причиной оказался высокий MTU, судя по technet MTU на 2003 VPN серверах по умолчанию 1400, соответственно после выставления значения MTU = 1200 и MRU = 1192 все заработало стабильно.

Apache2.2 + mod_fcgid + php

В некоторых проектах на текущий момент использую связку Apache 2.2 + mod_fastcgi + php. Запускаемый PHP при помощи suexec работает с правами пользователя, что дает возможность перенести вопросы связанные с безопасностью и изолированностью выполняемых скриптов на уровень ОС.

В последнее время в такой связке я разочаровался, mod_fastcgi не обеспечивает приемлемый уровень производительности и надежности для WEB проектов использующих язык PHP, в итоге решил протестировать связку Apache 2.2 + mod_fcgid + php.

Ограничения mod_fcgid:

  1. 1 запрос — 1 процесс, mod_fcgid не умеет отправлять несколько паралельных запросов запущенному fastcgi процессу, в случае с PHP это и не требуется, так как для корректной работы данной связки параметр нужно использовать PHP_FCGI_CHILDREN=0.
  2. Низкая эффективность различного рода opcode кешеров, так как каждый запущенный fastcgi не имеет доступ к разделяемой памяти других fastcgi процессов (это описано в документации по mod_fcgid, пока не тестировал)

Непосредственно настройка:

Считаем, что Apache 2.2 + suexec и PHP с поддержкой FastCGI у вас установлен, далее устанавливаем libapache2-mod-fcgid и изменяем стандартную конфигурацию:

Читать полностью ‘Apache2.2 + mod_fcgid + php’ »

Интеграция Jira и ActiveDirectory

Недавно интегрировал Jira v3 с ActiveDirectory (далее AD).

Для настройки Jira достаточно прочитать и выполнить действия описанные в документации, я опишу способ настройки автоматического импорта пользователей из AD.

Считаем, что вы можете успешно создать XML файл для создания пользователей в Jira, включили Jelly Runner, и можете через WEB интерфейс администрирования Jira выполнить созданный XML файл. Сама Jira у вас настроена, запускается и работает без проблем.

Для автоматизации всего процесса импорта пользователей из AD нужно сделать следующее:

Добавить в cron пользователя, с правами которого работет Jira следующую команду:

0       */1     *       *       *       cd ~/SOFT/jira-ldap-userimporter-1.1; java -jar jira-ldap-userimporter-1.1.jar > AD.export && ./buildADul.sh

Где папка:

~ — домашняя папка пользователя, с правами которого работает Jira, подразумевается, весь дистрибутив Jira распакован в эту директорию.

SOFT/jira-ldap-userimporter-1.1 — папка, в которой находится программа для импорта пользователей из AD и создания XML файла для JellyRunner.

Скрипт buildADul.sh — простой скрипт на bash следующего содержания:

#!/bin/bash
# Script to build userlist for Jira.
# ver 0.1
 
export PATH="/usr/kerberos/sbin:/usr/local/sbin:/usr/sbin:/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/root/bin"
 
WRKP="~/SOFT/jira-ldap-userimporter-1.1/"
ADFILE="AD.export"
AD="AD"
 
cd $WRKP
 
echo "<JiraJelly xmlns:jira=\"jelly:com.atlassian.jira.jelly.JiraTagLib\">" > $AD
echo "<jira:Login username=\"CHANGE_ME\" password=\"CHANGE_ME\">" >> $AD
cat $ADFILE | grep -v "JiraJelly" >> $AD
echo "</jira:Login>" >> $AD
echo "</JiraJelly>" >> $AD

Вместо CHANGE_ME нужно указать логин и пароль пользователя Jira с правами администратора или пользователя с возможностью выполнения Jelly скриптов.

jira:login в данном случае требуется для выполнения авторизации в Jira, и создания нужных переменных в контексте выполнения Jelly скрипта, без этого вы будете получать ошибку при запуске созданного скрипта через com.atlassian.jira.jelly.service.JellyService.

Пример ошибки:

Tag CreateUser requires (jelly.username) variables to be set in the Context

Соответственно XML файл у нас создается в нужном формате, теперь можно создать сервис по запуску данного файла в Jira. Для этого переходим в Администрирование — Services и в разделе Add Service заполняем поля следующим образом:

Имя — AD Import

Class — com.atlassian.jira.jelly.service.JellyService

Delay — 720

Жмем Add Service и в поле Input File указываем полный путь в рамках локальной файловой системы сервера до XML файла с Jelly командами. Пользователь с правами которого работает Jira должен иметь возможность прочитать данный файл.

По идее все, теперь каждые 12 часов у вас будет происходить автоматический импорт пользователей из AD. Удаление пользователей должно производиться вручную, с переносом назначенных багов на кого-нибудь другого.

Ошибка «though module compilation denied by debconf setting»

В случае если при установке VirtualBox на ОС Debian вам встретится такая ошибка:

addgroup: The group `vboxusers' already exists and is not a system group. Exiting.
Unable to find a precompiled module for the current kernel
though module compilation denied by debconf setting.

То для ее решения нужно создать файл vboxconf со следующим содержимым:

virtualbox virtualbox/module-compilation-allowed boolean true
virtualbox virtualbox/delete-old-modules boolean true

И выполнить команду:

debconf-set-selections vboxconf

После этого установка VirtualBox пройдет без проблем.