Хочу для себя разобрать как установить, ну как обычно по шагам, Web–ориентированное приложением для управления поставленными задачами самому себе имя которому Redmine. С ним я столкнулся работая в довольно крупной компании и работая в нем привело в меня в неописуемый восторг, удобно, есть возможность не только ставить задачи, но и организовать собственную Wiki, что для меня особенно актуально. Все работы такие как:
- Постановка задачи
- Отслеживание задачи
- Баг репорт
- Создание Wiki заметок и наработок
- Интеграция в Active Directory
- Русифицированный интерфейс
- и т.д.
Все дальнейшие действия я буду делать применительно на системе Ubuntu 12.04.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
Нажимаю “Войти”, авторизуюсь:
- 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@) и я успешно авторизован:
Перехожу в 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, после делаю следующее:
и нажимаю “Сохранить”
Нельзя взять просто и скопировать Ваши наработки из odt,doc,docx документов в “Новый документ”, их нужно посредством встроенного редактора оформить (ну все тоже что Вы видите при просмотре сайта wikipedia или любого другого ресурса в интернете), но поверьте несколько раз поднатаскавшись Вы будете довольны результатом.
А пока я завершу повествование по Redmine чтобы не засорять заметку всеми описания работы с данной системой. Чуть позже когда оформлю дальнейшие заметки я познакомлю Вас и себя в том числе с тем функционалом который обычно остается за кадром при работе с данной системой. По большинству найденного в интернете все описано как-то не очень внятно и понятно, повторив которое оно не работает, но только не у меня. Я же стараюсь сделать на совесть и последующее использование. До встречи на заметках моего блога уважаемый читатель, с уважением автор блога – ekzorchik.