アイビスヘッダー

IBS
ラベル Git の投稿を表示しています。 すべての投稿を表示
ラベル Git の投稿を表示しています。 すべての投稿を表示

2015年11月9日月曜日

gitolite3で作成したリポジトリをRedmine3から参照する

gitolite3はAWS EC2上に構築しました。
構築方法については「gitとgitolite3をAWS EC2上に構築する」を参考にしてください。

新しく作成したリポジトリはtest_repoとします。

リポジトリのミラーを作成する

gitサーバでの作業です。適当なディレクトリに、test_repoのミラーを作成します。
# sudo mkdir -p /opt/git
# cd /opt/git
# sudo git clone --mirror /opt/git/test_repo.git
# sudo chown -R gitolite3:gitolite3 test_repo.git

次に、test_repoリポジトリに変更があった時に、先ほど作ったミラーに同期させるため、gitolite3ユーザーにスイッチして、ミラー元のフックスクリプトを作成します。
# sudo su -o gitolite3
$ cd /var/lib/gitolite3/repositories/test_repo.git/hooks/
$ cat >> post-receive <<EOF
> #!/bin/sh
> /usr/bin/git push --mirror /opt/git/test_repo.git
> EOF
$ chmod 700 post-receive

次に、ミラー先をWebサーバからも参照できるように設定する
$ cd
$ vi .gitolite.rc
$REPO_UMASK =0077; を $REPO_UMASK = 0027; に変更する

次に、グループを変更する
$ sudo vi /etc/group
gitolite3グループにapacheユーザーを追加する


作成したミラーリポジトリをRedmineから参照する

Redmineにブラウザでアクセスし、プロジェクト->設定の「リポジトリ」タブにて以下の通り設定します。
リポジトリに変更を加えて、Redmineに表示されれば成功です。




疑問があります

わざわざミラーを作成する必要があるのか?ということです。
まあ、redmineから参照させたくないときに、/opt/gitのリポジトリを削除してしまうとか、運用している間で分かってくると思うので、とりあえずこの方法で運用してみようと思います。

2015年11月6日金曜日

gitとgitolite3をAWS EC2上に構築する

EC2上に、yumでgitolite3をインストールした場合、少し癖があって苦労したので情報を公開します。

gitとgitolite3のインストール

$ sudo yum install git gitolite3


gitolite3設定

初期状態では、sshでアクセスできるように構成されていないので設定します。
gitolite.conでgitolite-adminにアクセスできるのはadminユーザのみになっているのでadminユーザの設定を行います。

鍵の作成

$ su - gitolite3
-sh-4.2$ ssh-keygen -f ~/.ssh/admin
-sh-4.2$ openssl rsa -in ~/.ssh/admin -out ~/.ssh/admin.signed(パスワードが不要な場合のみ)

リポジトリ準備

ディレクトリ自体は色々と準備されいるが鍵の設定が全く行われていないので設定を行う。
-sh-4.2$ gitolite setup -pk ~/.ssh/admin.pub
これで公開鍵が配備されました。

以上でサーバ側の設定は終わりです。
次にクライアント側での設定になります。
自分はMac OS X El Capitanで行いました、OS Xでgitコマンドはxcodeに入っているようです。


鍵の準備

サーバに保管されている秘密鍵をコピーします。
ファイル名は/var/lib/gitolite3/.ssh/adminになります。
$ vi ~/.ssh/admin
内容を貼り付けます
$ chmod 600 ~/.ssh/admin
権限を変更します

sshの設定

$ vi ~/.ssh/config
host git.ibs.local
    user        gitolite3
    hostname    ipアドレス
    identitiesonly      yes
    identityfile        ~/.ssh/admin


確認

gitolite-adminリポジトリをcloneします。
$ git clone git.ibs.local:gitolite-admin
Cloning into 'gitolite-admin'...
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10/10), done.
Checking connectivity... done.

上記の様になれば成功です。


この後、Apacheを利用してLDAP認証(ActiveDirectory)での設定も成功したので、また後日ブログにアップする予定です。