Redmine
Установка
Альт сервер p10 в минимальной установке.
Имя хоста: redmine.dom.loc
Устанавливаем необходимое ПО:
# apt-get install ruby rpm-build libmariadb-devel ImageMagick-tools gcc-c++ curl-devel apache2-devel mariadb-server zlib-devel libruby-devel libssl-devel wget
Запускаем apache и включаем автозапуск:
# systemctl enable httpd2 --now
Запускаем mariadb и включаем автозапуск:
# systemctl enable mysqld.service --now
Послеинсталяционная настройка mariadb:
# mysql_secure_installation
Enter current password for root (enter for none):
(Поскольку пароля ещё нет, то жмём Enter)
Enable unix_socket authentication? [Y/n]
(Enter)
Change the root password? [Y/n]
(Enter, и устанавливаем пароль пользователя mariadb root)
Remove anonymous users? [Y/n]
(Enter)
Disallow root login remotely? [Y/n]
(Enter)
Remove test database and access to it? [Y/n]
(Enter)
Reload privilege tables now? [Y/n]
(Enter)
Подключаемся к СУБД:
# mysql -u root -p
Создаем пользователя:
CREATE USER 'redmineadmin'@'localhost' IDENTIFIED BY 'Пароль';
Создаём базу:
CREATE DATABASE redmine;
Даём пользователю права на базу:
GRANT ALL ON redmine.* TO 'redmineadmin'@'localhost';
Обновляем права:
FLUSH PRIVILEGES;
Выходим:
exit
Создаем пользователя redmine в системе:
# useradd -r -m -d /var/www/webapps/redmine redmine
Задаем ему пароль:
# passwd redmine
Устанавливаем права на домашнюю директорию пользователя redmine:
# chmod 750 /var/www/webapps/redmine
Добавляем пользователя apache2 в группу redmine, чтоб веб-серев мог читать из домашней директории пользователя redmine:
# usermod -aG redmine apache2
Переключаемся на пользователя redmine и далее команды от его имени:
# su - redmine
$ tar xzf /tmp/redmine-4.2.7.tar.gz -C /var/www/webapps/redmine/ --strip-components=1
$ cp config/configuration.yml{.example,}
$ cp public/dispatch.fcgi{.example,}
$ cp config/database.yml{.example,}
В данном конфиге комментируем всё кроме раздела production, изменив параметры подключения к базе:
$ mcedit config/database.yml
production: adapter: mysql2 database: redmine host: localhost username: redmineadmin password: "Пароль" encoding: utf8mb4
$ bundle install --without development test postgresql sqlite --path vendor/bundle
$ rake generate_secret_token
$ RAILS_ENV=production rake db:migrate
$ RAILS_ENV=production rake redmine:load_default_data
Разлогиниваемся от redmine и далее от root:
$ logout
Установим passenger, тот что присутствует в репозитории имеет старую версию и у меня не заработал.
# gem install passenger
(На момент написания статьи версия passenger 6.0.14, поэтому далее внимательнее в написании путей)
# /usr/lib/ruby/gems/2.7.0/gems/passenger-6.0.14/bin/passenger-install-apache2-module
В более поздних версиях путь может быть таким:
# /usr/lib/ruby/gemie/gems/passenger-6.0.23/bin/passenger-install-apache2-module
Соглашаемся и ждём сборки
Если всё успешно, то пару раз Enter.
Так же после сборки модуля будет выведена конфигурация для apache, которую мы ниже впишем в конфиг подключаемого модула apache:
(опять же внимание на версию passenger)
Создаем модуль passenger для apache:
# mcedit /etc/httpd2/conf/mods-available/passenger.load
LoadModule passenger_module /usr/lib/ruby/gems/2.7.0/gems/passenger-6.0.14/buildout/apache2/mod_passenger.so
И конфиг к нему:
# mcedit /etc/httpd2/conf/mods-available/passenger.conf
<IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/gems/2.7.0/gems/passenger-6.0.14 PassengerDefaultRuby /usr/bin/ruby </IfModule>
Создаем конфиг виртуального хоста apache:
# mcedit /etc/httpd2/conf/sites-available/redmine.conf
<VirtualHost *:80> ServerName redmine ServerAlias redmine.dom.loc DocumentRoot /var/www/webapps/redmine/public <Directory /var/www/webapps/redmine/public> Options Indexes ExecCGI FollowSymLinks Require all granted AllowOverride all </Directory> ErrorLog /var/log/httpd2/redmine_error.log CustomLog /var/log/httpd2/redmine_access.log combined </VirtualHost>
Включаем модуль passenger, виртуальный хост redmine и перезагружаем apache:
# a2enmod passenger
# a2ensite redmine
# systemctl restart httpd2
В браузере переходим по адресу (у вас адрес свой) и производим дальнейшую настройку:
http://redmine.dom.loc
(Логин/пароль: admin/admin)
Интеграция с LDAP
Рассмотрим интеграцию Redmine с LDAP.
Выберем пункт Администрирование -> Авторизация с помощью LDAP -> Новый режим аутентификации:
В открывшемся окне необходимо ввести следующие параметры:
- Имя: LdapAuth (имя режима)
- Компьютер: dc.example.test (имя сервера LDAP)
- Порт: 389 (порт LDAP)
- Учётная запись: uid=redmine,cn=sysaccounts,cn=etc,dc=example,dc=test (аккаунт для доступа к LDAP, создание аккаунта)
- Пароль: Secret123 (пароль)
- Создание пользователя на лету: отметить чек-бокс
Атрибуты LDAP, используемые для создания пользователя на лету:
- Login: uid (имя для входа в Redmine)
- Имя: givenName (имя в информации о пользователе)
- Фамилия: sn (фамилия в информации о пользователе)
- email: mail (email пользователя)
После этого можно попробовать зайти в Redmine под доменным пользователем, пользователь должен создаться автоматически.
Настройка SSO аутентификации
Для работы прозрачной аутентификации (SSO) необходимо настроить web-сервер (Apache, Nginx) и установить необходимый плагин.
Для Nginx необходимо также добавить строчку передающую переменную REMOTE_USER в redmine:
location / { error_log /var/log/nginx/error.log debug; auth_gss on; auth_gss_realm IPA.EXAMPLE.TEST; auth_gss_keytab /etc/http.keytab; auth_gss_service_name HTTP/redmine.ipa.example.test; auth_gss_allow_basic_fallback on; proxy_set_header REMOTE_USER $remote_user; proxy_pass http://127.0.0.1:3000; }
Далее необходимо установить плагин для SSO http://www.redmine.org/plugins/single_auth
Переходим в настройки плагина и указываем переменную отвечающую за имя авторизованного пользователя (HTTP_REMOTE_USER).
Сохраняем и пробуем зайти доменным пользователем, преварительно настроив браузер