пятница, 26 апреля 2013 г.

Подключение OTRS на CentOS к Microsoft SQL Server

OTRS, установленный на Linux может использовать в качестве сервера базы данных MySQL и PostgreSQL, в середине 2012 года Microsoft выпустила ODBC драйвер для Linux, и этот список можно дополнить Microsoft SQL Server.
Далее будет описан процесс установки OTRS на CentOS 6.3, который будет использовать Microsoft SQL Server в качестве сервера БД.

Внимание! Шаги установки описаны для CentOS 6.3 64-bit minimal. Разярдность ОС связана с тем, что Microsoft предоставляет ODBC драйвер только для 64-разрядных RHEL5 или RHEL6 систем.

Первое, что необходимо установить, это веб-сервер (apache), планировщик (cron) и компилятор(gcc), который понадобится для сборки драйвера.
sudo -i
yum install httpd crontabs gcc make
Дальше необходимо изменить ServerName в файле /etc/httpd/conf/httpd.conf, хотя это не критично и, если этот параметр не указан, то apache будет использовать имя хоста вместо имени ServerName. После изменения имени сервера нужно добавить автозагрузку веб-сервера и запустить необходимые службы.
chkconfig httpd on
service crond start
Запускается crond:         [  OK  ]
service httpd start
Запускается httpd:         [  OK  ]
Если используется iptables, то нужно разрешить клиентам подключаться к веб-серверу
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart
По этой ссылке приведено описание конфигурации SELinux для корректной работы OTRS.

Теперь необходимо скачать и установить rpm-пакет OTRS
mkdir /home/user/install
cd /home/user/install
wget http://ftp.otrs.org/pub/otrs/RPMS/rhel/6/otrs-3.2.6-01.noarch.rpm
rpm -ivh otrs-3.2.6-01.noarch.rpm
Так как установка происходит на minimal редакцию ОС, то на этом шаге, с большой вероятностью, может появиться сообщение о том, что есть неудовлетворенные зависимости. Тут всё просто, в консоли пишем
yum install имя пакета из списка зависимостей
то же касается, если в системе отсутствуют пакеты wget, nano, sudo. Чтобы не искать правильные имена пакетов нужно в консоли писать имя пакета в апостофах, например для perl(Date::Format) нужно написать
yum install 'perl(Date::Format)'
После того, как все необходимые зависимости будут удовлетворены нужно повторить команду
rpm -ivh otrs-3.2.6-01.noarch.rpm
и перейти к установке драйвера.

На странице Microsoft Download Center можно узнать ссылки для скачивания и прочитать инструкцию по установке.
Итак, приступим! Скачиваем и распаковываем архив с сайта Microsoft.
wget http://download.microsoft.com/download/6/A/B/6AB27E13-46AE-4CE9-AFFD-406367CADC1D/Linux6/sqlncli-11.0.1790.0.tar.gz
tar xvf sqlncli-11.0.1790.0.tar.gz
cd sqlncli-11.0.1790.0
Далее, согласно инструкции, которую можно прочесть на странице загрузки или в файле README из архива, устанавливаем Driver Manager (имя папки, в которую нужно перейти для установки может быть иным, но оно будет указано после выполнения build_dm.sh)
./build_dm.sh
cd /tmp/unixODBC.10574.19140.10264/unixODBC-2.3.0
make install
и сам драйвер
cd /home/user/install/sqlncli-11.0.1790.0
./install.sh verify
./install.sh install
При установке будет показано лицензионное соглашение (куда же без него), перейти на следующую страницу можно при помощи клавиши "Пробел".
Чтобы проверить корректность установки нужно выполнить следующую команду
odbcinst -q -d -n "SQL Server Native Client 11.0"
 [SQL Server Native Client 11.0]
 Description=Microsoft SQL Server ODBC Driver V1.0 for Linux
 Driver=/opt/microsoft/sqlncli/lib64/libsqlncli-11.0.so.1790.0
 Threading=1
 UsageCount=1

Тут стоит отметить, что для использования Microsoft SQL Server нужно на нём создать базу данных и пользователя, от имени которого будет авторизоваться OTRS.
Проверяем соединение с сервером
sqlcmd -Ssql -U <пользователь> -P <пароль> 
1> use Otrs
2> GO
Контекст базы данных изменен на "Otrs".
1> select count(*) from users
2> GO
-----------
          1
(1 rows affected)
1> quit

После того, как проверена корректность работы подключения нужно указать OTRS, как обратиться к базе, для этого нужно изменить файлы odbc.ini и Config.pm
nano /etc/odbc.ini
[mssqlotrs]
Server   = tcp:sql,1433
Driver   = SQL Server Native Client 11.0
Database = Otrs
Тут всё понятно, но уточню, что sql - имя сервера БД, и имя источника данных должно обязательно начинаться с mssql, это необходимо для того, чтобы OTRS могла распознать подключение к Microsoft SQL Server.
nano /opt/otrs/Kernel/Config.pm
    # (The database name.)
     $Self->{Database} = 'Otrs';
    # DatabaseUser
    # (The database user.)
     $Self->{DatabaseUser} = 'пользователь';
    # DatabasePw
    # (The password of database user. You also can use bin/otrs.CryptPassword.pl
    # for crypted passwords.)
     $Self->{DatabasePw} = 'пароль';
    # DatabaseDSN
    # (The database DNS for MS SQL)
     $Self->{DatabaseDSN} = 'DBI:ODBC:mssqlotrs';
Всё что необходимо установлено и настроено, пришло время проверить, как OTRS подключается к базе, для этого запускаем скрипт
perl /opt/otrs/bin/otrs.CheckDB.pl
Если всё прошло успешно, то увидим следующее
Trying to connect to database
DSN: DBI:ODBC:mssqlotrs
DatabaseUser: otrs
It looks Ok!
Но и на последнем шаге может появиться ошибка о том, что не полностью установлен драйвер ODBC. Есть готовые rpm-пакеты, но при их использовании появляется другая ошибка, которая указывает на ошибочную версию unixODBC. Преодолеть эту проблему поможет CPAN.
yum install perl-CPAN
cpan 'DBD::ODBC'
Так же нужно проверить все ли необходимые модули присутствуют, выполнив скирпт otrs.CheckModules.pl из того же каталога /opt/otrs/bin/.
После того, как проверена корректность подключения к базе данных можно перейти по адресу http://<имя хоста>/otrs/index.pl и завершить настройку через веб-интерфейс. Имя входа и пароль по умолчанию root@lcalhost:root.
Так же нужно добавить службу OTRS в автозагрузку и запустить её.
chkconfig otrs on
service otrs start

Англоязычный источник.

Комментариев нет:

Отправка комментария