Установка redmine на Debian Squeeze

Попросили сделать хост с редмайном для нескольких проектов, ставлю на Debian 6. В репах squeeze редмайн какой-то совсем старый, аж версии 1.0.1, а в бекпортах 1.1.2, хочется же последний, поэтому ставить буду из testing (или можно из unstable).

В файле /etc/apt/sources.list добавить строчку для testing:

deb http://ftp.us.debian.org/debian/ testing main contrib non-free

Сделать привязку к squeeze в /etc/apt/preferences или preferences.d, например, так

Package: *
Pin: release n=squeeze
Pin-Priority: 700

Package: *
Pin: release n=wheezy
Pin-Priority: -1

Далее установить редмайн командами

apt-get update
apt-get install mysql-server
apt-get install -t wheezy redmine redmine-mysql

Обновить придется половину системы, так что это будет уже не squeeze в чистом виде, но уж если хочется…

Теперь надо выдать через веб только что установленную систему. Есть множество способов это сделать, я использую apache+mod_fcgid

apt-get install apache2 libapache2-mod-fcgid libfcgi-ruby1.8

Создаем сайт для редмайна в /etc/apache2/sites-available/redmine с таким содержимым

SocketPath "/var/run/redmine/sockets/default"
<VirtualHost *:80>
  ServerName redmine.example.com
  DefaultInitEnv RAILS_RELATIVE_URL_ROOT ""
  DefaultInitEnv X_DEBIAN_SITEID "default"

  Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/
  DocumentRoot /usr/share/redmine/public

  <Directory "/usr/share/redmine/public">
    Options +FollowSymLinks +ExecCGI
    Order allow,deny
    Allow from all
    RewriteEngine On
    RewriteRule ^$ index.html [QSA]
    RewriteRule ^([^.]+)$ $1.html [QSA]
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$
    RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
  </Directory>
</VirtualHost>

Включаем сайт

a2ensite redmine

и рерайты

a2enmod rewrite

правим права на некоторые каталоги

chown -R www-data /var/run/redmine

перезапустим апач

service apache2 restart

и можно заходить на свежеустановленный редмайн как admin / admin. Не забудьте поставить скин BaseCamp.

debian squeeze 6.0.3 openvz template

Странно, что в сети нет явных ссылок на шаблон Debian Squeeze для OpenVZ с нормально обновленными пакетами. Решил выложить у себя, мало ли кому пригодятся.

Версия amd64

Версия i386

Поиск по истории в mysql-5.5

Обновил недавно некоторые сервера с mysql до версии 5.5 и заметил, что пропал обратный поиск по истории через ctrl-r. Оказалось, что теперь вместо readline по умолчанию используется библиотека editline. Чтобы вернуть привычный поиск, нужно в файл ~/.editrc добавить строчку

bind «^R» em-inc-search-prev

и все будет по-прежнему (ну почти).

Клонирование линукс-систем

Обычно у меня каждый сервер выходит уникальным, т.к. проекты и цели везде разные, а вот тут столкнулся с тем, что надо развернуть идентичный набор на 20 физических серверов (помочь попросили).

Взял по привычке Clonezilla, которая неплохо себя зарекомендовала при копировании систем на Windows. Странным образом она не только отказалась работать с софтовым рейдом в линуксе (ну это было ожидаемо), но и вообще предложила копировать диски посекторно, что при объеме в 1 ТБ обещало вылиться в 20 часов копирования только одной системы.

Почему так? Непонятно, может я что упустил в Clonezilla? В итоге так и пришлось руками копировать разделы, создавать новый софт-рейд на клоне и копировать все с мастера через ssh+rsync, восстанавливать загрузчик — путь в общем знакомый. Странно, почему такой фигни нет из коробки?

PS: зато узнал, как убить заголовок ненужного md-рейда:

mdadm --zero-superblock /dev/sda (ну или что-то еще)

Проблема на ровном месте

Вчера столкнулся с весьма странной проблемой: виртуалки, диски которых были подключены через iSCSI с FreeNAS, начали ужасным образом тормозить, скорость работы с диском упала где-то до 2 МБ/с, т.е. фактически все встало.

На самом насе это проявлялось в следующем:  после его перезагрузки sys не превышало 2-3%, но стоило включить что-то с iSCSI, как оно вырастало до 50-60% и там и оставалось до следующей перезагрузки, при этом драйвер контроллера генерировал тучу irq.

Убил целый день на поиск неисправности, думал на провода, свичи, диски в насе, контроллер там же, еще что-то. На самом деле проблема была в том, что внезапно включился scrub на zfs. Я на это тоже думал, но, видимо, в выводе статуса его просмотрел 🙁 В итоге, все починилось командой:

zpool scrub -s share

DKIM в exim на Debian Squeeze

Странно, что ничего не гуглится по этому вопросу. Есть dkim и exim, dkim и debian, но все вместе — увы. На самом деле все просто:

  1. apt-get install dkim-filter
  2. cd /etc/exim4; dkim-genkey -d example.com -t -r -s mail
    Это создаст пару открытый/закрытый ключ для домена example.com с селектором mail
  3. mv mail.private example.com.key
  4. chmod 640 example.com.key
  5. chgrp Debian-exim example.com.key
  6. Добавляем следующие строчки в файл /etc/exim4/exim4.conf.template перед секцией remote_smtp в transport (отмечена transport/30_exim4-config_remote_smtp)
    DKIM_DOMAIN = ${lc:${domain:$h_from:}}
    DKIM_FILE = /etc/exim4/${lc:${domain:$h_from:}}.key
    DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
    DKIM_SELECTOR = mail
  7. Перезапускаем exim, после этого нужно добавить в конфигурацию доменной зоны содержимое файла mail.txt (после этого он не нужен).
Вот и все. После этого нужно потестировать DKIM. Когда появится уверенность, что он работает полностью верно, можно заменить ключ t=y на t=s в TXT записи домена, что будет указывать на то, что DKIM находится не в режиме тестирования.

Настройки nginx для популярных движков

Только сегодня обнаружил, что на nginx.org существует целый раздел с настройками для популярных движков. Жаль, что мало, интересно посмотреть на различия со своими настройками.