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
      
      





Redminewww.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は自動的にプロジェクト参加者に通知を送信します。



All Articles