Redmine: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «{{Stub}} == Установка == == Интеграция с LDAP == Рассмотрим интеграцию Redmine с LDAP.<br> Выберем пункт Адм...»)
 
 
(не показано 9 промежуточных версий 4 участников)
Строка 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>
Выберем пункт Администрирование -> Авторизация с помощью LDAP -> Новый режим аутентификации:
Выберем пункт Администрирование -> Авторизация с помощью LDAP -> Новый режим аутентификации:
[[Файл:Remine01.jpg]]<br>
В открывшемся окне необходимо ввести следующие параметры:
В открывшемся окне необходимо ввести следующие параметры:
*'''Имя:''' LdapAuth (имя режима)
*'''Имя:''' LdapAuth (имя режима)
Строка 11: Строка 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 под доменным пользователем, пользователь должен создаться автоматически.
== Настройка SSO аутентификации ==
Для работы прозрачной аутентификации (SSO) необходимо настроить web-сервер ([[Apache2/AD-auth|Apache]], [[Nginx/AD-auth|Nginx]]) и установить необходимый плагин.<br>
Для Nginx необходимо также добавить строчку передающую переменную REMOTE_USER в redmine:
<pre>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;
}</pre>
Далее необходимо установить плагин для SSO http://www.redmine.org/plugins/single_auth<br>
Переходим в настройки плагина и указываем переменную отвечающую за имя авторизованного пользователя (HTTP_REMOTE_USER).<br>
Сохраняем и пробуем зайти доменным пользователем, преварительно [[Настройка_браузеров_для_SSO|настроив браузер]]

Текущая версия от 10:12, 1 ноября 2024

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Установка

Альт сервер 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).
Сохраняем и пробуем зайти доменным пользователем, преварительно настроив браузер