【Ubuntu 16.04 LTS Server】Gitリポジトリ管理ツール「gitolite」を使う

スポンサーリンク

Gitリポジトリ管理には、GitLabとか高機能のものもあるが、手軽に使えそうなので「gitolite」を導入する。

gitoliteのaptパッケージはなくなってるので、GitHubから取得しREADMEを参考にインストールする。
尚、gitパッケージはインストール済みとする。
gitoliteでは、管理リポジトリのファイルを編集しpushする事で、ユーザ追加・リポジトリ追加・アクセス制限などができる。

ユーザ名「git」を作成する

$ sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
$ sudo su - git      (gitユーザにログインする)
$ mkdir -p $HOME/bin
$ cp /etc/skel/.* .     ($HOME/bin にPATHを通す為にログインスクリプトを取得)
$ exit

※ユーザ名は「git」以外でも可能なよう。

管理する端末ユーザで、SSHの公開鍵を作成し、gitユーザからアクセスできる所に置いておく

$ ssh-keygen -t rsa
$ cp .ssh/id_rsa.pub /tmp/hoge.pub

gitユーザで、GitHubよりgitoliteを取得しインストール

$ sudo su - git
$ git clone git://github.com/sitaramc/gitolite
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk /tmp/hoge.pub     ($HOME/binにPATHが通ってるものとする)
$ exit

※リポジトリの所在は、/home/git/repositories/ となる。

/home/git/.gitolite.rc の編集

新しく作成するリポジトリが、git-daemon,gitwebのサービスからReadできるように、gitグループからのアクセス権限が設定されるようにしておく。(gitグループに、各サービスのユーザを追加して対応)

#UMASK => 0077,
UMASK => 0027,

※git-daemon, gitwebとの連携 は、それぞれのページ参照

リポジトリのアクセス権変更

gitグループのユーザーがリポジトリにアクセスできるようにするため、リポジトリがあるディレクトリとリポジトリのディレクトリ・ファイルのパーミションを変更する。

# chmod 750 /home/git/repositoris/
# chmod g+r /home/git/projects.list

# chmod -R g+r /home/git/repositories/testging.git
# find /home/git/repositories/testing.git -type d -exec chmod g+x {} +

管理するパソコンのユーザから、管理リポジトリデータを取得

$ git clone git@<サーバIP>:gitolite-admin
  • gitolite-admin/conf/フォルダの、gitolite.conf のファイルを編集しpushする事で管理する。
  • ユーザの追加はkeydir/に公開鍵のファイルを追加してcommit,push。同じユーザ名で複数のマシンからアクセスしたい場合は、user@hostname.pubというファイル形式にすればOK。

テスト用リポジトリの取得して動作確認する

$ git clone git@<サーバIP>:testing

留意点

  • アクセスユーザに、「@all」を指定すると、daemon, gitweb も同時に指定した事になる。

教訓

日本語の説明が欲しいくて、とにかくググってWebを探したりするが、時にはオリジナルの原文を参考にした方が早い。

追記(2016/9月)

Gitサーバは、GitLabに移行した。

【Ubuntu 16.04 LTS Server】GitLabでGitサーバを構築する
gitliteをGitサーバとして使ってきたが、GitLabもaptで簡単にインストール出来るようになってるようで、Ubuntu 16.04 LTS Server にインストールして試す。 <追記 2018/05/04> Ubuntu 18...

参考

  1. GitHub gitolite
  2. Git – Official Ubuntu Documentation
  3. Git管理の神ツール「Gitolite」なら、ここまでできる! (1/2)
  4. Git管理の神ツール「Gitolite」なら、ここまでできる! (2/2)
  5. GitHubで複数のアカウントを使う場合のSSHの設定
  6. gitolite-tools(リポジトリのバックアップなど)
  7. gitosisからgitoliteに移行(Ubuntu)
  8. gitolite v3.2.0 を入れてみた
  9. CentOS7でgitoliteを導入
  10. gitoliteとgitweb
  11. gitリポジトリの公開 web, ssh, git
  12. gitoliteドキュメントの本拠地?

コメント

タイトルとURLをコピーしました