Redmine: различия между версиями
Нет описания правки |
Дым (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 3 участников) | |||
Строка 107: | Строка 107: | ||
: <code># /usr/lib/ruby/gems/2.7.0/gems/passenger-6.0.14/bin/passenger-install-apache2-module</code> | : <code># /usr/lib/ruby/gems/2.7.0/gems/passenger-6.0.14/bin/passenger-install-apache2-module</code> | ||
В более поздних версиях путь может быть таким: | |||
: <code># /usr/lib/ruby/gemie/gems/passenger-6.0.23/bin/passenger-install-apache2-module</code> | |||
Соглашаемся и ждём сборки<br> | Соглашаемся и ждём сборки<br> | ||
Если всё успешно, то пару раз Enter.<br> | Если всё успешно, то пару раз Enter.<br> | ||
Так же после сборки модуля будет выведена конфигурация для apache, которую мы ниже впишем в конфиг:<br> | Так же после сборки модуля будет выведена конфигурация для apache, которую мы ниже впишем в конфиг подключаемого модула apache:<br> | ||
(опять же внимание на версию passenger)<br> | (опять же внимание на версию passenger)<br> | ||
Создаем модуль passenger для apache: | |||
: <code># mcedit /etc/httpd2/conf/mods-available/passenger.load</code> | |||
<pre>LoadModule passenger_module /usr/lib/ruby/gems/2.7.0/gems/passenger-6.0.14/buildout/apache2/mod_passenger.so</pre> | |||
И конфиг к нему: | |||
: <code># mcedit /etc/httpd2/conf/mods-available/passenger.conf</code> | |||
<pre><IfModule mod_passenger.c> | |||
PassengerRoot /usr/lib/ruby/gems/2.7.0/gems/passenger-6.0.14 | |||
PassengerDefaultRuby /usr/bin/ruby | |||
</IfModule></pre> | |||
Создаем конфиг виртуального хоста apache: | |||
: <code># mcedit /etc/httpd2/conf/sites-available/redmine.conf</code> | : <code># mcedit /etc/httpd2/conf/sites-available/redmine.conf</code> | ||
<pre><VirtualHost *:80> | <pre><VirtualHost *:80> | ||
Строка 121: | Строка 134: | ||
ServerAlias redmine.dom.loc | ServerAlias redmine.dom.loc | ||
DocumentRoot /var/www/webapps/redmine/public | DocumentRoot /var/www/webapps/redmine/public | ||
<Directory /var/www/webapps/redmine/public> | <Directory /var/www/webapps/redmine/public> | ||
Options Indexes ExecCGI FollowSymLinks | Options Indexes ExecCGI FollowSymLinks | ||
Строка 135: | Строка 143: | ||
</VirtualHost></pre> | </VirtualHost></pre> | ||
Включаем | Включаем модуль passenger, виртуальный хост redmine и перезагружаем apache: | ||
: <code># a2enmod passenger</code> | |||
: <code># a2ensite redmine</code> | : <code># a2ensite redmine</code> | ||
: <code># systemctl restart httpd2</code> | : <code># systemctl restart httpd2</code> | ||
Строка 151: | Строка 160: | ||
*'''Учётная запись:''' uid=redmine,cn=sysaccounts,cn=etc,dc=example,dc=test (аккаунт для доступа к LDAP, [[FreeIPA#Создание_аккаунта_для_доступа_к_LDAP|создание аккаунта]]) | *'''Учётная запись:''' uid=redmine,cn=sysaccounts,cn=etc,dc=example,dc=test (аккаунт для доступа к LDAP, [[FreeIPA#Создание_аккаунта_для_доступа_к_LDAP|создание аккаунта]]) | ||
*'''Пароль:''' Secret123 (пароль) | *'''Пароль:''' Secret123 (пароль) | ||
*'''Создание пользователя на лету:''' отметить | *'''Создание пользователя на лету:''' отметить чек-бокс | ||
Атрибуты LDAP, используемые для создания пользователя на лету: | Атрибуты LDAP, используемые для создания пользователя на лету: | ||
*'''Login:''' uid (имя для входа в Redmine) | *'''Login:''' uid (имя для входа в Redmine) | ||
*'''Имя:''' givenName (имя в | *'''Имя:''' givenName (имя в информации о пользователе) | ||
*'''Фамилия:''' sn (фамилия в | *'''Фамилия:''' sn (фамилия в информации о пользователе) | ||
*'''email:''' mail (email пользователя) | *'''email:''' mail (email пользователя) | ||
После этого можно попробовать зайти в Redmine под доменным пользователем, пользователь должен создаться автоматически. | После этого можно попробовать зайти в Redmine под доменным пользователем, пользователь должен создаться автоматически. |
Текущая версия от 10:12, 1 ноября 2024
Установка
Альт сервер 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).
Сохраняем и пробуем зайти доменным пользователем, преварительно настроив браузер