Gitポケットリファレンスで紹介されました。ALMiniumによるGitのリポジトリ運用方法が書かれています。ALMiniumでGitを使いたい人にお勧めです!!
ALMiniumとは、ALM(Application Lifecycle Management)とRedmineの合金(..nium)という意味から名づけられました。
Redmineを利用してALMを実現するためのツールです。アルミニウムの持つ軽量性と伝導性を備えています。軽量性は、簡単に使えること、熱伝導性は他のプロジェクトへ徐々に広げていける仕組みです。
ALMiniumは、次のような特徴を持っています。
- 簡単なインストーラ
- Redmine,Subversion,Git,Mercurialなどプロジェクトマネージメントに必要なツールを一通りインストールしてくれます。ツール間のアカウント・アクセス権の連携や、チェンジセット・チケットの連携も自動で行ってくれます。
- アジャイル開発や、CIに便利な各種プラグインもインストールしてくれます。
- アジャイル開発をサポート
- Backlogsプラグインによりアジャイル開発をサポートします。スプリント、ストーリー、タスクの管理からバーンダウンチャートによる進捗の確認、ベロシティの計測にも対応しています。
- Hudson/Jenkinsと連携するプラグインが導入ずみであり、CIを簡単に行うことができます。
- 品質管理
- ALMinium固有の機能ではありませんが、バグの管理とソースコードの変更履歴を対応づけることができ、変更をトレースできます。
- コードレビュー支援機能があります。コードがコミットされたら自動的にレビュー対象にすることができ、レビューされていないコミットを一目で確認することができます。また、指摘事項が修正されたかどうかの管理も行えるので、レビューしたけど、修正漏れがあって意味がないということもなくなります。
- アジャイルでない開発でも使えます:)
- 使いやすさの追求
- ブラウザのクラッシュ時に嬉しい書きかけのチケットの自動復元機能やクリップボードからのスクリーンショットの添付など無償とはいえ、使いやすさに妥協を許しません。
- Git,Mercurial,Subversionのリポジトリ作成がプロジェクト作成画面から行えます。リポジトリサーバの小難しい設定も不要で、勝手にやってくれます。
- Excelのインポートなど、既存ツールとの連携を行うことができます。
- マルチプロジェクト対応
- 構築したALMiniumサーバ上で複数のプロジェクトを管理することができます。ALMinium(Redmin)のカスタマイズやプラグインによる拡張は全てのプロジェクトが恩恵を受けることができます。
- 高い品質
- 自分でRedmineを構築すると、バージョンの不整合やプラグインの競合などで正しく動作しなくハマル場合があります。ALMiniumは検証済みなので、安心して使えます。
- ALMiniumの開発者はRedmine Backlogs, Redmine SCM Creatorなどにコントリビュータとして活動し、また、幾つかのプラグインはバグ修正を行ったバージョンをGitHubで管理して利用しています。
ALMiniumは、次のRedmineプラグインを同梱しています。
プラグイン | 説明 |
---|---|
Backlogs | スクラム開発のサポート |
Jenkins Plugin | Jenkinsとの連携 |
Code Review | コードレビュー支援 |
XLS export | Excelでチケットを出力 |
Git Branch Hook | Gitのブランチでの作業をチケットに連動させます |
DMSF | 文書管理 |
OAuth Provider | OAuthプロバイダー(see https://github.com/suer/redmine_oauth_provider) |
OAuth GitLab | GitLabアカウントでログイン(see https://github.com/applewu/redmine_omniauth_gitlab) |
その他のプラグインついては、プラグインリストファイルをご覧ください。
インストールするプラグインを除外したい場合は、このプラグインリストファイルを編集し、不要なプラグインをコメントアウトしてください。
- CentOS 6, 7
- Ubuntu 14.04, 16.04, 18.04
32ビット版OSはサポートしていません。64ビット版をお使いください。
下記の通り実行すれば、ALMiniumのインストーラを実行できます。
# yum install git
もしくは
# apt-get install git
# git clone https://github.com/alminium/alminium.git
# cd alminium
# bash ./smelt
たったのこれだけで、チケットシステム、バージョン管理システム、Redmineの様々なプラグインのインストール、連携設定を行うことができます。なお、smeltは、金属を溶解して製錬するという意味で、様々なソフトウェア/プラグインを混合してALMiniumを作成するという意味からとっています。 なお、Ubuntuの場合、インストール途中にMySQLのパスワードの設定を聞かれますが、空欄にしてください。
インストールが終了すると、http://localhost/ (SSLを有効にした場合https://localhost/ )にWebブラウザで接続するとチケットシステムにアクセスできます。管理者権限でログインすると、設定やプロジェクトの作成を行うことができます。管理者情報は下記の通りです。
プロキシ環境下で利用する場合は、次のようにしてプロキシを設定してから上記の設定を行なってください。
$ http_proxy=http://okamototk:password/proxyhost.com:8080/
$ https_proxy=http://okamototk:password/proxyhost.com:8080/
- ユーザ名: admin
- パスワード: admin
リポジトリの作成は、プロジェクトの作成画面から可能です。リポジトリパスは、下記の通りです。
- Gitのリポジトリパス
- https://<ホスト名>/git/<プロジェクト名>
- (ex. $ git clone https://hostname/git/yourproject)
- Subversionのリポジトリパス
- https://<ホスト名>/svn/<プロジェクト名>
- (ex. $ svn checkout https://hostname/svn/yourproject)
- Mercurialのリポジトリパス
- https://<ホスト名>/hg/<プロジェクト名>
- (ex. $ hg clone https://hostname/hg/yourproject)
インストール時にSSLを無効にした場合は、httpを利用してください。gitをhttpsで利用する場合、不正な証明書を利用しているというエラーが発生しているので、クライアント側で下記のコマンドを実行し、証明書の検証を無効にしてください。
$ git config --global http.sslverify false
管理者・開発者のロールのユーザをリポジトリに対応するRedmineプロジェクトに追加することにより、コミット権を与えることができます。例えば、testrepoという名前のリポジトリに対して、testrepoという名前のRedmineプロジェクトを作成します。アクセスさせたいユーザを「開発者」ロールでtestrepoプロジェクトに追加すれば、アクセス権を付与することができます。
ALMiniumはRedmineのアカウントとバージョン管理システムのアカウントを連携させています。アクセスさせたいユーザをRedmineプロジェクトに追加してください。
リポジトリが空場合、リポジトリブラウザでリポジトリを参照できません。リポジトリブラウザでに何かコミットしてみてください。例えば、Gitの場合、
$ git clone http://ユーザ名@ホスト名/git/リポジトリ名
$ cd リポジトリ名
$ touch dummy.txt
$ git add dummy.txt
$ git commit -a -m "add dummy file."
$ git push
とするとリポジトリが見れるようになると思います。(SSLを有効にしている場合はhttpをhttpsとすること)
mod_sslのパッケージをアンインストールするとHTTPのみのアクセスになります。
また、Apacheのredmineの設定(/etc/httpd/conf.d/redmine or /etc/apache/sites-availabled/redmine)のRewriteEngineをOffにするとhttpsへのリダイレクトを無効にできます。 RewriteEngineの設定はmod_sslの有無を判定しているので、mod_sslパッケージをアンインストールした場合設定の必要はありません。
Redmineプロジェクトを公開にした場合、全てのユーザからのリポジトリの閲覧を許可します。Redmineプロジェクトを非公開にしてください。
Redmineを公開にした場合、リポジトリの認証に制限をかけたとしてもRedmineのリポジトリブラウザからリポジトリが見れてしまいます。 これでは意味ありませんよね?
Redmineの管理画面の「ロールと権限」から、「Non Member」と「Anonymous」のロールから「リポジトリの閲覧」を削除してください。 するとあら不思議、リポジトリのアクセスも受付なくなります。このようにALMiniumのリポジトリアクセス制御はRedmineと高度に連携しています
ALMiniumは俗に言うオレオレ証明書を利用してHTTPSを実現しています。Mercurialの最近のバージョンでは、SSL証明書の検証を行うようになっており、HTTPSでの接続にエラーになります。
$ hg clone https://192.168.10.224/hg/hgtest
abort: error: _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:
certificate verify failed
そのような場合は、cloneやpushに--insecureオプションを付けることにより、証明書の検証を無効にし、正しくMercurialリポジトリへアクセスできるようになります。
$ hg clone --insecure https://192.168.10.224/hg/hgtest
ALMiniumはセキュリティを考えてサーバ上のブランチの上書きを禁止しています。 上書きを有効にするには、/var/opt/alminium/git/リポジトリ名 に移動し、下記のコマンドによりブランチの上書きを有効にしてください。
# git config receive.denynonfastforwards false
ただし上記の設定を行うと、過去のコミットが削除されたり、ブランチの内容を消去されることがあるのでご注意ください。
上記と同じ理由でリモートブランチの削除も禁止してます。ブランチの削除きを有効にするには、/var/opt/alminium/git/リポジトリ名 に移動し、下記のコマンドによりブランチの削除を有効にしてください。
# git config receive.denydeletes false
ただし上記の設定を行うとブランチが削除される可能性があるので、ご注意ください。
できます。詳細は、下記の記事をお読みください。 また、下記を参考にupgradeスクリプトを作成しました。お役に立てれば幸いです。
- ALMiniumのアップグレード
- http://www.sssg.org/blogs/hiro345/archives/13007.html
ALMiniumは、Redmine,Git,Jenkinsを初め様々なオープンソースソース ソフトウェアをセットアップしてインストールするツールです。 インストールしたソフトウェアについては、個々のライセンスに 従います。
ALMiniumが用意するインストーラ及びスクリプトは、修正BSDライセンスで 提供します。修正BSDライセンスについては、下記のURLをご覧ください。