Gitポケットリファレンスで紹介されました。ALMiniumによるGitのリポジトリ運用方法が書かれています。ALMiniumでGitを使いたい人にお勧めです!!
ALMiniumとは、ALM(Application Lifecycle Management)とRedmineの合金(..nium)という意味から名づけられました。
Redmineを利用してALMを実現するためのツールです。アルミニウムの持つ軽量性と伝導性を備えています。軽量性は、簡単に使えること、熱伝導性は他のプロジェクトへ徐々に広げていける仕組みです。
ALMiniumは、次のような特徴を持っています。
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) |
その他のプラグインついては、プラグインリストファイルをご覧ください。
インストールするプラグインを除外したい場合は、このプラグインリストファイルを編集し、不要なプラグインをコメントアウトしてください。
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/
リポジトリの作成は、プロジェクトの作成画面から可能です。リポジトリパスは、下記の通りです。
インストール時に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は、Redmine,Git,Jenkinsを初め様々なオープンソースソース ソフトウェアをセットアップしてインストールするツールです。 インストールしたソフトウェアについては、個々のライセンスに 従います。
ALMiniumが用意するインストーラ及びスクリプトは、修正BSDライセンスで 提供します。修正BSDライセンスについては、下記のURLをご覧ください。