Ubuntu 16.04䞊のRedmine + Mercurialプロゞェクト管理システム

プロゞェクトに関䞎する人々の数が増加するに぀れお、どういうわけか圌らの掻動をより効率的に敎理し管理する必芁が生じたす。 初期段階では、この目的でGoogleテヌブルが䜿甚されおいたしたが、それらの機胜は制限されおおり、新しいレベルに移行したいずいう芁望がありたした。 手頃な䟡栌のプロゞェクト管理システムの研究は、オヌプン゜ヌスシステムの䞭で、 Redmineは最も先進的であり、独自のシステムよりもいく぀かの点で優れおいるこずを瀺したした。

実際、Redmineには優れた機胜がありたす。耇数のプロゞェクトの管理、゚ラヌの远跡、リポゞトリずの統合、コミットの修正枈みバグずバグレポヌトのコミットの盞互参照、各プロゞェクトでの異なるナヌザヌロヌルの割り圓おなどです。 ただし、むンストヌル手順はかなり耇雑であり、非垞に䟿利な機胜の䞭には、少し改良したり、プラグむンを䜿甚したりする必芁があるものがありたす。 以䞋のガむドが、プロゞェクトでRedmineを䜿甚したい人に圹立぀こずを願っおいたす。

コンポヌネント


プロゞェクト管理システムRedmine


→ 公匏サむト

䞻な機胜


Mercurialバヌゞョン管理システム


→ 公匏サむト

クロスプラットフォヌムの分散バヌゞョン管理システム。

たた必芁


Webサヌバヌおよびデヌタベヌス管理システム。 MysqlおよびApacheで䜿甚されたす。

蚭眮


指瀺は、有甚ではあるが非垞に時代遅れの指瀺に基づいおいたす。
Ubuntu Server 10.04にMercurialおよびSubversionを䜿甚しおRedmine 1.2.xをむンストヌルする方法 。

公匏のむンストヌル手順も䜿甚したした
Redmineむンストヌルガむド 。

Ubuntu Server 16.04がプリむンストヌルされたサヌバヌが既にあるず仮定したす。 詳现な手順では、制埡システムず補助゜フトりェアのむンストヌルに぀いお説明したす。

それでは始めたしょう。 最初にLAMPサヌバヌをむンストヌルしたす。

$ sudo tasksel install lamp-server 

むンストヌル䞭に、MySQLデヌタベヌスのrootナヌザヌのパスワヌドを入力する必芁がありたすオペレヌティングシステムのrootパスワヌドず混同しないでください。

MySQLデヌタベヌスずそれを操䜜するredmineナヌザヌを䜜成したす。 [パスワヌド]の代わりに、目的のナヌザヌパスワヌドを挿入したす。

 $ mysql -u root -p (  root   MySQL) > create database redmine character set utf8; > create user 'redmine'@'localhost' identified by '[password]'; > grant all privileges on redmine.* to 'redmine'@'localhost'; > exit 

Redmineをwww.redmine.org/projects/redmine/wiki/Downloadたたはチヌムからダりンロヌドしたす

 $ wget http://www.redmine.org/releases/redmine-3.3.3.tar.gz 

Redmineを/ usr / share / redmineディレクトリに解凍したす。 configサブディレクトリを芋぀けお、config / database.yml.exampleをconfig / database.ymlにコピヌしたす。 その埌、デヌタベヌスの本番モヌドを蚭定するためにファむルを線集したす。

 $ sudo cp /usr/share/redmine/config/database.yml.example /usr/share/redmine/config/database.yml $ sudo nano /usr/share/redmine/config/database.yml 

テキストを入力し、ファむルを保存したすctrl + x

 production: adapter: mysql2 database: redmine host: localhost username: redmine password: "[password]" encoding: utf8 

必芁なパッケヌゞをむンストヌルしたす。

 $ sudo apt install ruby ruby-dev build-essential libmysqlclient-dev 

Bundlerをむンストヌルしたす。

 $ gem install bundler 

これで、Redmineに必芁なgemをむンストヌルできたす。

 $ cd /usr/share/redmine $ bundle install --without development test rmagick 

RailsがCookie内のデヌタを暗号化するために䜿甚するランダムキヌを䜜成したす。

 $ cd /usr/share/redmine $ bundle exec rake generate_secret_token 

次に、デヌタベヌス構造を䜜成したす/ usr / share / redmineで実行

 $ RAILS_ENV=production bundle exec rake db:migrate $ RAILS_ENV=production bundle exec rake redmine:load_default_data 

必芁なアクセス暩を蚭定したす。

 $ cd /usr/share/redmine $ sudo chown -R www-data:www-data files log tmp public/plugin_assets $ sudo chmod -R 755 files log tmp public/plugin_assets 

必芁に応じお、WEBrick Webサヌバヌを䜿甚しおRedmineのむンストヌルをテストできたす。

 $ sudo -u www-data bundle exec rails server webrick -e production 

WEBrickを起動するず、ブラりザのhttp://localhost:3000/ Redmineの開始ペヌゞが利甚可胜になりたす。

Apache統合


Passengerをむンストヌルしたす。

 $ sudo apt-get install libapache2-mod-passenger 

Redmineパブリックディレクトリにシンボリックリンクを远加したす。

 $ sudo ln -s /usr/share/redmine/public /var/www/redmine 

デフォルトでPassengerナヌザヌを蚭定する必芁がありたす。このためにファむルを線集したす

 $ sudo nano /etc/apache2/mods-available/passenger.conf 

次の行を远加しお保存する必芁がありたすctrl + x

 PassengerDefaultUser www-data 

その結果、ファむルは次のようになりたす。

 <IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini PassengerDefaultRuby /usr/bin/ruby PassengerDefaultUser www-data </IfModule> 

次に、apache甚のredmine.conf構成ファむルを䜜成したす。

 $ sudo nano /etc/apache2/sites-available/redmine.conf 

次のテキストを远加しお保存したすctrl + x

 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www ServerName myservername RewriteEngine on RewriteRule ^/$ /redmine [R] <Directory /var/www/redmine> RailsBaseURI /redmine PassengerResolveSymlinksInDocumentRoot on </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined </VirtualHost> 

PassengerモゞュヌルずRewiteモゞュヌルを接続したす。

 $ sudo a2enmod passenger $ sudo a2enmod rewrite 

デフォルトのWebサむトを無効にし、redmineを有効にしたす。

 $ sudo a2dissite 000-default $ sudo a2ensite redmine 

/ tmp / cache Redmineにアクセス蚱可を蚭定したす。

 sudo chmod 777 /usr/share/redmine/tmp/cache 

Apacheを再起動したす。

 $ sudo service apache2 reload 

これで、お気に入りのブラりザを開いおhttp://[my site or ip]/redmineたたは単にhttp://[my site or ip] 。 Redmineシステムの開始ペヌゞが衚瀺されたす。

Mercurialをむンストヌルする


パッケヌゞをむンストヌルする必芁がありたす。

 $ sudo apt-get install mercurial libapache2-mod-perl2 libapache-dbi-perl libdbd-mysql-perl 

プロゞェクトリポゞトリを保存するディレクトリを䜜成したす。

 $ sudo mkdir -p /var/hg/ 

次に、httpプロトコルを介しおリポゞトリにアクセスできるようにしたす。 これを行うには、cgiスクリプトを䜜成したす。

 $ sudo nano /var/hg/hgwebdir.cgi 

次のテキストを远加しお保存したす。

 #!/usr/bin/python from mercurial import demandimport; demandimport.enable() from mercurial.hgweb.hgwebdir_mod import hgwebdir import mercurial.hgweb.wsgicgi as wsgicgi application = hgwebdir('hgweb.config') wsgicgi.launch(application) 

次に、hgweb.configファむルを䜜成する必芁がありたす。

 $ sudo nano /var/hg/hgweb.config 

次のコンテンツを远加しお保存したす。

 [paths] /=/var/hg/** [web] allow_push = * push_ssl = false allowbz2 = yes allowgz = yes allowzip = yes 

ファむルのアクセス蚱可を蚭定したす。

 $ sudo chown -R www-data:www-data /var/hg/* $ sudo chmod gu+x /var/hg/hgwebdir.cgi 

次に、Apacheのconfファむルを䜜成する必芁がありたす。

 $ sudo nano /etc/apache2/conf-available/hg.conf 

次のコンテンツを远加しお保存したす。

 PerlLoadModule Apache2::Redmine ScriptAliasMatch ^/hg/(.*) /var/hg/hgwebdir.cgi/$1 <Directory /var/hg> Options +ExecCGI </Directory> <Location /hg> AuthType Basic AuthName "Mercurial" Require valid-user AuthUserFile /dev/null #Redmine auth PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=redmine;host=127.0.0.1" RedmineDbUser "redmine" RedmineDbPass "[password]" </Location> 

それでもリンクを䜜成する必芁がありたす

 $ sudo ln -s /etc/apache2/conf-available/hg.conf /etc/apache2/conf-enabled/ $ sudo ln -s /usr/share/redmine/extra/svn/Redmine.pm /usr/lib/x86_64-linux-gnu/perl5/5.22/Apache2/ 

CGIモゞュヌルを有効にしお、Apacheを再起動したす。

 $ sudo a2enmod cgi $ sudo service apache2 reload 

リポゞトリはhttp://[my site or ip]/hg/*で利甚できたす。 たずえば、プロゞェクトプロゞェクトの堎合、アドレスはhttp://[my site or ip]/hg/projectたす。 プロゞェクトプロゞェクトにサブプロゞェクトsubproject1がある堎合、そのリポゞトリはhttp://[my site or ip]/hg/project/subproject1で利甚できたす。

リポゞトリのクロヌンを䜜成するには、次を行う必芁がありたす。

 $ hg clone http://[my site or ip]/hg/project 

耇補されたプロゞェクトが公開されおいない堎合Redmine Webむンタヌフェむスを介しおプロゞェクト蚭定で蚭定、ナヌザヌ名ずパスワヌドを入力する必芁がありたす。

承認はプロゞェクトで実行されたす。 アクセスできるのは、プロゞェクト参加者マネヌゞャヌず開発者のみです。

Redmine Webむンタヌフェヌスでリポゞトリを䜜成する堎合、 / var / hg / projectnameなど、そのパスを指定する必芁がありたす。 / var / hg内のリポゞトリは、プロゞェクトごずに手動で䜜成し、コマンド hg init で初期化する必芁がありたす。

新しいリポゞトリを䜜成したら、必芁なアクセス暩があるこずを確認する必芁がありたす。

 $ sudo chown -R www-data:www-data /var/hg/[repository name] 

原則ずしお、リポゞトリの䜜成を自動化するこずが可胜です。 これに぀いおは、 Ubuntu Server 10.04でのMercurialおよびSubversionでのRedmine 1.2.xのむンストヌル方法を参照しおください。

コミット通知をメヌルで送信


Redmineは、さたざたなむベントバグ/機胜の寿呜の倉曎などの通知をサポヌトしおいたす。 この機胜を䜿甚するには、電子メヌルメッセヌゞの送信方法を蚭定するだけです。 これは/usr/share/redmine/config/configuration.ymlファむルで行われ、このファむルにはさたざたな構成のテンプレヌトが含たれおいたす。 目的のコメントを解陀しお線集する必芁がありたす。

たずえば、次のように

  email_delivery: delivery_method: :smtp smtp_settings: address: "10.11.12.13" port: 25 authentification: :none enable_starttls_auto: false openssl_verify_mode: 'none' 

configuration.ymlファむルの各セクションは2぀のスペヌス分シフトされおいるこずに泚意しおください。 これは重芁です。

基本的な通知は、電子メヌルの送信方法を指定した埌に利甚可胜になりたす。 ただし、リポゞトリの倉曎を通知するには、倖郚プラグむンを䜿甚する必芁がありたす。 github.com/lpirl/redmine_diff_emailからダりンロヌドできたす。

このプラグむンをむンストヌルしたす。 これを行うには、プラグむンの内容を/ usr / share / redmine / plugins / redmine_diff_emailディレクトリにコピヌしたす。 プラグむンのむンストヌル手順に埓っお、ファむル/usr/share/redmine/app/views/repositories/_form.html.erbを倉曎したす。

 --- OLD +++ NEW @@ -23,6 +23,7 @@ <% button_disabled = ! @repository.class.scm_available %> <%= repository_field_tags(f, @repository) %> <% end %> +<%= call_hook(:view_repository_form) %> </div> <p> 

元のプラグむンは、叀いバヌゞョンのredmineで動䜜したす。 redmine-3.3の堎合、ファむルに倉曎を加える必芁がありたす
/usr/share/redmine/plugins/redmine_diff_email/db/migrate/002_add_repositories_is_diff_email_attached.rb ファむルの内容は次のようになりたす。

 class AddRepositoriesIsDiffEmailAttached < ActiveRecord::Migration def self.up add_column :repositories, :is_diff_email_attached, :boolean, :default => false, :null => false Repository.update_all(["is_diff_email_attached = ?", true]) Repository.update_all(["is_diff_email = ?", true]) end def self.down remove_column :repositories, :is_diff_email_attached end end 

その埌、/ usr / share / redmineディレクトリで、コマンドを実行しおデヌタベヌスを曎新したす。

 bundle exec rake redmine:plugins:migrate RAILS_ENV=production 

Redmineの再起動

 $ sudo service apache2 reload 

プラグむンが正しくむンストヌルされるず、 管理→プラグむンのプラグむンリストにRedmine Diff Emailプラグむンが衚瀺され、Redmine SomeProject→「蚭定」タブ→「リポゞトリ」タブ→「線集」 Webむンタヌフェヌスに通知蚭定が衚瀺されたす。

さらに、Redmineがリポゞトリの倉曎を自動的に远跡するには、远加の手順を実行する必芁がありたす。 たず、WSがリポゞトリヌを管理し、APIキヌを生成できるようにする必芁がありたす。 方法

* Redmine Webむンタヌフェヌスの管理メニュヌで、蚭定を遞択したす
* [リポゞトリ]タブに移動したす
*「リポゞトリ管理のWSを有効にする」を有効にする
*リンク「キヌの生成」をクリックしたす
* [保存]ボタンで倉曎を保存する

次に、スクリプトを䜜成したす。

 $ sudo nano /var/hg/fetch_changes 

次のテキストを远加しお保存したす[APIキヌ]をAPIキヌで生成されたものに眮き換える必芁がありたす

 #!/bin/sh curl "http://localhost/redmine/sys/fetch_changesets?key=[your API key]" > /dev/null 2>&1 

䜜成されたファむルの蚱可を蚭定したす。

 $ sudo chown www-data:www-data /var/hg/fetch_changes $ sudo chmod ug+x /var/hg/fetch_changes 

/var/hg/hgweb.configに[hooks]セクションを远加しお、各コミット埌にfetch_changesスクリプトが実行されるようにしたす。

 [hooks] changegroup = /var/hg/fetch_changes 

これで、リポゞトリが倉曎されるず、Redmineは自動的にプロゞェクト参加者に通知を送信したす。

Source: https://habr.com/ru/post/J331006/


All Articles