Redmine: различия между версиями
Дым (обсуждение | вклад) |
|||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{Stub}} | {{Stub}} | ||
== Установка == | == Установка == | ||
Альт сервер p10 в минимальной установке.<br> | |||
Имя хоста: redmine.dom.loc<br> | |||
Устанавливаем необходимое ПО:<br> | |||
: <code># 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</code> | |||
Запускаем apache и включаем автозапуск: | |||
: <code># systemctl enable httpd2 --now</code> | |||
Запускаем mariadb и включаем автозапуск: | |||
: <code># systemctl enable mysqld.service --now</code> | |||
Послеинсталяционная настройка mariadb:<br> | |||
: <code># mysql_secure_installation</code> | |||
Enter current password for root (enter for none):<br> | |||
(Поскольку пароля ещё нет, то жмём Enter)<br> | |||
Enable unix_socket authentication? [Y/n]<br> | |||
(Enter)<br> | |||
Change the root password? [Y/n] <br> | |||
(Enter, и устанавливаем пароль пользователя mariadb root)<br> | |||
Remove anonymous users? [Y/n]<br> | |||
(Enter)<br> | |||
Disallow root login remotely? [Y/n]<br> | |||
(Enter)<br> | |||
Remove test database and access to it? [Y/n]<br> | |||
(Enter)<br> | |||
Reload privilege tables now? [Y/n]<br> | |||
(Enter)<br> | |||
Подключаемся к СУБД:<br> | |||
: <code># mysql -u root -p</code> | |||
Создаем пользователя: | |||
: <code>CREATE USER 'redmineadmin'@'localhost' IDENTIFIED BY 'Пароль';</code> | |||
Создаём базу: | |||
: <code>CREATE DATABASE redmine;</code> | |||
Даём пользователю права на базу: | |||
: <code>GRANT ALL ON redmine.* TO 'redmineadmin'@'localhost';</code> | |||
Обновляем права: | |||
: <code>FLUSH PRIVILEGES;</code> | |||
Выходим: | |||
: <code>exit</code> | |||
Создаем пользователя redmine в системе: | |||
: <code># useradd -r -m -d /var/www/webapps/redmine redmine</code> | |||
Задаем ему пароль: | |||
: <code># passwd redmine</code> | |||
Устанавливаем права на домашнюю директорию пользователя redmine: | |||
: <code># chmod 750 /var/www/webapps/redmine</code> | |||
Добавляем пользователя apache2 в группу redmine, чтоб веб-серев мог читать из домашней директории пользователя redmine: | |||
: <code># usermod -aG redmine apache2</code> | |||
Переключаемся на пользователя redmine и далее команды от его имени: | |||
: <code># su - redmine</code> | |||
: <code>$ tar xzf /tmp/redmine-4.2.7.tar.gz -C /var/www/webapps/redmine/ --strip-components=1</code> | |||
: <code>$ cp config/configuration.yml{.example,}</code> | |||
: <code>$ cp public/dispatch.fcgi{.example,}</code> | |||
: <code>$ cp config/database.yml{.example,}</code> | |||
В данном конфиге комментируем всё кроме раздела production, изменив параметры подключения к базе: | |||
: <code>$ mcedit config/database.yml</code> | |||
<pre>production: | |||
adapter: mysql2 | |||
database: redmine | |||
host: localhost | |||
username: redmineadmin | |||
password: "Пароль" | |||
encoding: utf8mb4</pre> | |||
: <code>$ bundle install --without development test postgresql sqlite --path vendor/bundle</code> | |||
: <code>$ rake generate_secret_token</code> | |||
: <code>$ RAILS_ENV=production rake db:migrate</code> | |||
: <code>$ RAILS_ENV=production rake redmine:load_default_data</code> | |||
Разлогиниваемся от redmine и далее от root: | |||
: <code>$ logout</code> | |||
Установим passenger, тот что присутствует в репозитории имеет старую версию и у меня не заработал. | |||
: <code># gem install passenger</code><br> | |||
''(На момент написания статьи версия passenger 6.0.14, поэтому далее внимательнее в написании путей)''<br> | |||
: <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> | |||
Если всё успешно, то пару раз Enter.<br> | |||
Так же после сборки модуля будет выведена конфигурация для apache, которую мы ниже впишем в конфиг подключаемого модула apache:<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> | |||
<pre><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></pre> | |||
Включаем модуль passenger, виртуальный хост redmine и перезагружаем apache: | |||
: <code># a2enmod passenger</code> | |||
: <code># a2ensite redmine</code> | |||
: <code># systemctl restart httpd2</code> | |||
В браузере переходим по адресу (у вас адрес свой) и производим дальнейшую настройку: | |||
: <code><nowiki>http://redmine.dom.loc</nowiki></code> | |||
(Логин/пароль: admin/admin) | |||
== Интеграция с LDAP == | == Интеграция с LDAP == | ||
Рассмотрим интеграцию Redmine с LDAP.<br> | Рассмотрим интеграцию Redmine с LDAP.<br> | ||
Строка 10: | Строка 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).
Сохраняем и пробуем зайти доменным пользователем, преварительно настроив браузер