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

Материал из ALT Linux Wiki
Строка 160: Строка 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:11, 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/assenger-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).
Сохраняем и пробуем зайти доменным пользователем, преварительно настроив браузер