環境
ホスト:Windows 7
仮想マシン:CentOS 6.6
概要
- VagrantでGitサーバを構築し、ホストマシン以外からGitサーバへ接続できるようにする。
- Gitサーバへの接続プロトコルはSSHを利用する。
https://git-scm.com/book/ja/v1/Git-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB - 内部ネットワークからのみ動作確認を行っていますが、ルータのポートを開放すればWAN越しに公開もできるかと思います。
構築手順
Vagrantで仮想マシンの作成
Vagrantfileに下記を追記し、ホストマシン以外から仮想マシンのGitサーバのポートへ接続できるようにする。
Vagrantfile
config.vm.network "forwarded_port", guest: 22, host: xxxxx
※ホストマシンのポート番号についてはnetstat -an
等を使用して空きポートを確認して設定してください。
※外部から接続する際にはホストマシンのポートを開放する必要があります。
http://27bit.com/os-7-port.html
編集後、仮想マシンを起動してください。
vagrant up
仮想マシン起動後、netstat -an
で指定ポートがリッスンしているか確認してください。(TCPの0.0.0.0:xxxxxがLISTENINGとなっているはずです)
Gitサーバ構築
Gitのインストール
SSHで仮想マシンへ接続後、Gitをインストールする
sudo yum install -y git
Gitユーザの作成
# git-shellはGitに関する作業しかできない制限付きシェル
sudo useradd -s /usr/bin/git-shell git
cat /etc/passwd | grep git
# 公開鍵登録用のファイルを作成
# - authorized_keysにはgitユーザ用の公開鍵を登録してください
# ssh-keygen -b 2048 -t rsa -f ./id_rsa
sudo mkdir /home/git/.ssh
sudo vi /home/git/.ssh/authorized_keys
sudo chown -R git:git /home/git/.ssh
sudo chmod 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys
Gitリポジトリの作成
# Gitリポジトリ格納用ディレクトリの作成
sudo mkdir /var/git
# リポジトリの作成
sudo mkdir /var/git/test.git
cd /var/git/test.git/
sudo git init --bare
sudo chown -R git:git ./
外部からリポジトリをクローンする
git clone ssh://git@[host]:[port]/var/git/test.git
※パスはルート(/)から指定する必要あり