Управление поставленными задачами через Redmine

Posted by

Хочу для себя разобрать как установить, ну как обычно по шагам, Webориентированное приложением для управления поставленными задачами самому себе имя которому Redmine. С ним я столкнулся работая в довольно крупной компании и работая в нем привело в меня в неописуемый восторг, удобно, есть возможность не только ставить задачи, но и организовать собственную Wiki, что для меня особенно актуально. Все работы такие как:

  • Постановка задачи
  • Отслеживание задачи
  • Баг репорт
  • Создание Wiki заметок и наработок
  • Интеграция в Active Directory
  • Русифицированный интерфейс
  • и т.д.

Все дальнейшие действия я буду делать применительно на системе .5 Server amd64

  • RAM = 4Gb
  • HDD = пока начальный в 25Gb
  • CPU = 2

также потребуется настроить использование системы с использованием почты, я к примеру буду использовать настроенную службу ssmtp нацеленную на сервис для моего домен «Яндекс для Домена» — ekzorchik.ru

ekzorchik@srv-mon:~$ sudo apt-get install ssmtp mailutils -y

root=ekzorchik@ekzorchik.ru

mailhub=smtp.yandex.ru:465

rewriteDomain=ekzorchik.ru

UseSTARTTLS=YES

AuthUser=ekzorchik

AuthPass=секретный_пароль

FromLineOvveride=Yes

ekzorchik@srv-mon:~$ sudo nano /etc/ssmtp/revaliases

root:ekzorchik@ekzorchik.ru:smtp.yandex.ru:465

ekzorchik:ekzorchik@ekzorchik.ru:smtp.yandex.ru:465

Проверяю, что отправка работает, но не тут то было

ekzorchik@srv-mon:~$ echo "" | ssmtp -v -s Hello ekzorchik@ekzorchik.ru

и пусто/висит, в логах syslog Жалуется на строку: FromLineOvveride, комментировал, изменял значение результата не дает. Блин один большой огромный блин — вот если завязываешься на кого-то, то этот кто-то всегда мозжен подвести в самый не подходящий момент. Лучше чтобы все было самолично настроенно тогда винить можно только себя. Но вот что примечательно с конфигурационным файлом выше (Но ориентированным на используемый на работе почтовый сервер все отрабатывает) у меня все до сих пор работает на сервере с сервисом glpi & zoneminder и многими другими, но вот строка: FromLineOvveride=yes => где «yes» должно быть маленькими буквами, а не заглавными выше, хотя еще раз повторюсь работало ранее в заметках именно большими. А вот для «Почта для домена от Yandex» вдруг перестала. Еще раз проверив все конфигурационные файлы нашел что в файле /etc/ssmtp/revaliases у меня опечатка — нет такого ssmtp:

ekzorchik:ekzorchik@ekzorchik.ru:ssmtp.yandex.ru:465

ekzorchik@srv-mon:~$ echo "" | ssmtp -v -s Hello alexander.ollo@nemdom.ru

в другой консоли смотрю логи:

Mar 5 08:00:39 srv-mon sSMTP[2380]: Unable to set FromLineOvveride=»yes»

Mar 5 08:00:39 srv-mon sSMTP[2380]: Creating SSL connection to host

вместо: UseSTARTTLS нужно UseTLS, поправив проверяю:

ekzorchik@srv-mon:~$ echo "" | ssmtp -v -s Hello alexander.ollo@nemdom.ru

[<-] 220 smtp2o.mail.yandex.net ESMTP (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)

[->] EHLO srv-mon

[<-] 250 ENHANCEDSTATUSCODES

[->] AUTH LOGIN

[<-] 334 VXNlcm5hbWU6

[->] ZWt6b3JjaGlr

[<-] 334 UGFzc3dvcmQ6

[<-] 535 5.7.8 Error: authentication failed: Invalid user or password!

ssmtp: Authorization failed (535 5.7.8 Error: authentication failed: Invalid user or password!)

Вместо: AuthUser=ekzorchik нужно использовать: AuthUser=ekzorchik@ekzorchik.ru

и только уже после этого отправка писем работает как надо, итоговый конфигурационный файл вот такой:

root=ekzorchik@ekzorchik.ru

mailhub=smtp.yandex.ru:465

rewriteDomain=ekzorchik.ru

UseTLS=YES

AuthUser=ekzorchik@ekzorchik.ru

AuthPass=секретный_пароль

FromLineOvveride=yes

Итого: все у меня в заметках по части ssmtp было настроено правильно, просто здесь и сейчас я по своей невнимательности допустил слишком много ошибок.

Продолжаю:

Задействую заметку по первоначальной настройки системы:

ekzorchik@srv-host:~$ uname -a && lsb_release -a

Linux srv-host 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 12.04.5 LTS

Release: 12.04

Codename: precise

Устанавливаю Webсервер связки Apache+MySQL+PHP:

ekzorchik@srv-host:~$ sudo tasksel install lamp-server

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@

Преднастраиваю первоначальную безопасность mysql:

ekzorchik@srv-mon:~$ sudo mysql_secure_installation

Enter current password for root (enter for none): 712mbddr@

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

У меня уже несколько раз в процессе установки LAMP получалась вот такая вот ошибка:

tasksel: aptitude failed (100)

решение следующее:

ekzorchik@srv-host:~$ sudo rm -Rf /var/lib/apt/lists/

ekzorchik@srv-host:~$ sudo apt-get update

запускаю установку LAMP и она запустилась

ekzorchik@srv-host:~$ sudo tasksel install lamp-server

ekzorchik@srv-host:~$ sudo nano /etc/apache2/apache2.conf

ServerName srv-host

Устанавливаю из репозитариев системы пакеты разворачиваемого сервиса Redmine:

ekzorchik@srv-host:~$ sudo apt-get install redmine redmine-mysql -y

Otherwise, you should probably choose this option: Ok

Configure database for redmine/instances/default with dbconfig-common? Yes

Database type to be used by redmine/instances/default: mysql

Password of the database’s administrative user: 712mbddr@

MySQL application password for redmine/instances/default: 712mbddr@

Password confirmation: 712mbddr@

Настраиваю сайт для Webсервера Apache:

ekzorchik@srv-host:~$ sudo nano /etc/apache2/mods-available/passenger.conf

<IfModule mod_passenger.c>
PassengerDefaultUser www-data
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
</IfModule>

ekzorchik@srv-host:~$ sudo ln -s /usr/share/redmine/public/ /var/www/redmine

ekzorchik@srv-host:~$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/redmine.conf

ekzorchik@srv-host:~$ sudo unlink /etc/apache2/sites-available/default

ekzorchik@srv-host:~$ sudo unlink /etc/apache2/sites-enabled/000-default

Создаю сайт Redmine:

ekzorchik@srv-host:~$ sudo nano /etc/apache2/sites-available/redmine.conf

<VirtualHost *:80>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/

<Directory /var/www/redmine>

RailsBaseURI /redmine

PassengerResolveSymlinksInDocumentRoot On

</Directory>

</VirtualHost>

ekzorchik@srv-host:~$ sudo a2ensite redmine.conf

Enabling site redmine.conf.

To activate the new configuration, you need to run:

service apache2 reload

ekzorchik@srv-host:~$ sudo service apache2 reload

Warning: DocumentRoot [/var/www/remine] does not exist

Syntax error on line 6 of /etc/apache2/sites-enabled/redmine.conf:

Invalid command ‘RailBaseURI’, perhaps misspelled or defined by a module not included in the server configuration

Action ‘configtest’ failed.

The Apache error log may have more information.

…fail!

ekzorchik@srv-host:~$ sudo a2enmod passenger

ERROR: Module passenger does not exist!

Инсталлирую в систему пакет недостающего модуля:

ekzorchik@srv-host:~$ sudo apt-get install libapache2-mod-passenger -y

*** passenger.conf (Y/I/N/O/D/Z) [default=N] ? Y

ekzorchik@srv-host:~$ sudo a2enmod passenger

Module passenger already enabled

ekzorchik@srv-host:~$ sudo service apache2 reload

ekzorchik@srv-host:~$ ip r

default via 192.168.1.9 dev eth0 metric 100

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.180

http://IP&DNS/redmine

Страница доступа в Web-ориентированное приложение Redmine

Нажимаю “Войти”, авторизуюсь:

  • Login: admin
  • Password: пустой_пароль

странно меня не пускает, говорит: Неправильное имя пользователя или пароль (Invalid user or password)

Ладно, тогда сброшу пароль на свой дефолтно административный.

Все пользователи Redmine хранятся в базе данных в таблице users. Пароль формируется следующим принципом: 'SHA1\(salt + SHA1)'

Сам пароль хранится в поле hashed_password, соль в поле salt.

ekzorchik@srv-host:~$ ls /usr/share/redmine/app/models/user.rb

/usr/share/redmine/app/models/user.rb

Необходимо сбросить соль и обновить значение поля hashed_password. Для начала получим новое значение hashed_password:

ekzorchik@srv-host:~$ echo -n 712mbddr@ | sha1sum | awk '{print $1}'

202c31e6e1773bfbae218996cf491f76913f909e

ekzorchik@srv-host:~$ echo -n 202c31e6e1773bfbae218996cf491f76913f909e | sha1sum | awk '{print $1}'

539ba8c66ebe5bfad877b8ca97f814c0c1836922

Теперь подключаемся к mysql и изменяем пароль пользователя admin (или другого пользователя)

ekzorchik@srv-host:~$ mysql -u root -p712mbddr@;

mysql> show databases;

+———————+

| Database |

+———————+

| information_schema |

| mysql |

| performance_schema |

| redmine_default |

+———————+

4 rows in set (0.00 sec)

mysql> use redmine_default;

mysql> update users set hashed_password='539ba8c66ebe5bfad877b8ca97f814c0c1836922' where login='admin';

mysql> update users set salt='' where login='admin';

, где salt='' (две одинарные кавычки)

mysql> quit;

Bye

Теперь возвращаюсь к странице авторизации и ввожу логин и изменный выше пароль (admin:712mbddr@) и я успешно авторизован:

Авторизовавшись в Redmine я у административном окружении

 Перехожу в My account и настраиваю:

  • First name: admin
  • Last name: admin
  • Email: ekzorchik@ekzorchik.ru
  • Language: Russian (Русский)
  • Email notification: For any event on all my project

и нажимаю Save (Учетная запись успешно обновлена.)

Теперь можно создать свой первый проект: Проекты – Новый проект

  • Имя: Ubuntu Precise
  • Описание: Особенности работы с релизом Ubuntu 12.04.5 Server/Dekstop
  • Уникальный идентификатор: precise

Все остальные параметры оставляю дефолтными и нажимаю “Создать и продолжить”, теперь перейдя “Домашня страница” — вижу отображение “Последние проекты”

Так выглядит созданный проект

Перехожу в созданный проект: Ubuntu Precise и внутри него создаю задачу, вкладка “Новая задача”.

  • Трекер: support
  • Тема: Asterisk+FreePBX+Cisco
  • Описание:

Поднятие АТС для связки телефонов беспроводных телефонов Cisco

* Как сбросить настройки на телефонах

* Как зайти на Web-интерфейс телефона

* Как развернуть Asterisk+FreePBX

* Как развернуть tftpd

* Как обновить телефоны через tftpd

* и т.д

По окончании заполнения необходимых параметров постановки задачи нажимаю “Создать и продолжить”.

Это так можно создавать задачи, назначать их (в Redmine потребуется завести учетные записи для сотрудников кому будет делегирована задача), отслеживать за статусом их выполнения.

Что еще интересно в Redmine есть возможность создания собственной Wiki, для этого следует в основном интерфейсе перейти на вкладку Wiki, так можно закачивать файлы чтобы были всегда под рукой.

Создам первую заметку в Wiki: вкладка Wiki, после делаю следующее:

Создаю первую заметку в Wiki Redmine

и нажимаю «Сохранить»

Нельзя взять просто и скопировать Ваши наработки из odt,doc,docx документов в “Новый документ”, их нужно посредством встроенного редактора оформить (ну все тоже что Вы видите при просмотре сайта wikipedia или любого другого ресурса в интернете), но поверьте несколько раз поднатаскавшись Вы будете довольны результатом.

А пока я завершу повествование по Redmine чтобы не засорять заметку всеми описания работы с данной системой. Чуть позже когда оформлю дальнейшие заметки я познакомлю Вас и себя в том числе с тем функционалом который обычно остается за кадром при работе с данной системой. По большинству найденного в интернете все описано как-то не очень внятно и понятно, повторив которое оно не работает, но только не у меня. Я же стараюсь сделать на совесть и последующее использование. До встречи на заметках моего блога уважаемый читатель, с уважением автор блога – ekzorchik.