GitBucketを導入してみた
仕事ではSubversionを使用しているので個人的に開発しているときのソース管理ではGitを使いたいと思い環境を構築することにしました。いくつかの候補から自分のサーバ環境で動かしやすく環境構築が楽らしいのでGitBucketを使うことにしました。
以下、環境構築用のメモです。
作業の流れは、
・Javaのバージョンを確認
・GitBucketのダウンロード
・Apacheのプロキシ設定
・(GitBucket)ユーザ、リポジトリの作成
・サーバ上にリポジトリの作成
・(必要に応じて)SSH用のポート開放
・EclipseでSSH鍵を作成して登録
・Eclipseから接続
# Javaのバージョンを確認 # 1.8 ではなければ、yumで1.8をダウンロード java -version yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 # 1.8を選択 alternatives --config java # GitBucketのダウンロード cd /usr/local/tomcat/webapps wget https://github.com/takezoe/gitbucket/releases/download/3.11/gitbucket.war service tomcat restart ls -l /usr/local/tomcat/webapps/gitbucket/ # Apacheのプロキシ設定 vi /etc/httpd/conf/httpd.conf 以下を追記 <Location /gitbucket/> ProxyPass ajp://localhost:8009/gitbucket/ </Location> service httpd restart
# ユーザ、リポジトリの作成(ブラウザ)
ブラウザで http://ドメイン名/gitbucket/ でアクセスできればインストールは成功です。
初期はUsername「root」、Password「root」です。
右上のアイコンから「System administration」を選択し[New User]ボタンからユーザ追加。
右上のアイコンから「System administration」を選択し「System Settings」でBase URLに「https://」から始まるURLを入力し「Enable SSH access to git repository」にチェックを入れて登録します。このときのポート番号をiptablesなどで許可にしないと外部から接続する際に拒否られますのでご注意を。
新規で作成したユーザでログインし直します。
右上のアイコンから「Account settings」を選択し「SSH Keys」でSSHの公開鍵を登録してください。
リポジトリをコマンドで接続するユーザで鍵を作るか別途ユーザを用意して鍵を作ります。
cd ~/.ssh ssh-keygen -b 2048 # この結果を「SSH Keys」ページに貼り付けます cat id_rsa.pub
右上のプラスアイコンから「New repository」を選択し新しいリポジトリを作成。
完了画面で以下のようなコマンドが表示されるので適用なパスにディレクトリを作成。
リポジトリ名は「sample」とします。
mkdir -p /usr/local/repositories/sample/ cd /usr/local/repositories/sample/ touch README.md git init git add README.md git commit -m "first commit" git remote add origin ssh://[ユーザ名]@[ドメイン名]:[ポート番号]/[ユーザ名]/sample.git git push -u origin master
ここで「Permission denied (publickey).fatal: The remote end hung up unexpectedly」と出力されたら、SSHの公開鍵が登録できていませんので先述の通り設定してください。
パスフレーズを聞かれるのでssh-keygen コマンドの時に入力したパスフレーズを入力します。
# EclipseでSSH鍵を作成して登録
[ウィンドウ]→[設定]→[一般]→[ネットワーク接続]→[SSH2]の「鍵管理」タブから「RSA鍵の生成」をクリック。表示される鍵をリポジトリを作成したユーザの「SSH Keys」ページに登録してください。
パスフレーズを入力して「秘密鍵の保管」ボタンをクリックして任意の場所に保管してください。反映するためにEclipseの再起動をオススメします。
# Eclipseから接続
[ウィンドウ]→[パースペクティブを開く]→[Gitリポジトリ・エクスプローラー]でGitリポジトリーで右クリック[リポジトリー・パスまたはURIの貼り付け]で「ssh://[ユーザ名]@[ドメイン名]:[ポート番号]/[ユーザ名]/sample.git」をコピーしておきます。
それぞれの情報が入力された状態でウィンドウが開くのであとは「次へ」で進んでいけばサーバのリポジトリとつなげることができます。