Gitサーバーのセットアップ


57

最近、Amazon EC2でubuntu-serverをセットアップしました。gitサーバーとして使用したいので、リポジトリをそこに保存できます。

だから、ubuntuサーバーでgitをセットアップする方法の詳細な指示はどこにありますか?これらすべてのSSHキーとそのようなもの、複数のユーザーなど。


2
これはUbuntu関連の質問ではないと思います(明らかな「Linuxです」以外)、また、gitのドキュメントを見たことがありますか?設定のあっ言及あります公共だけでなく、プライベートリポジトリを。
ワードミュイラト

22
@BonboBingo「Googleで検索するだけ」というのは、実際には解決策ではありません。ここでの質問の大半は、「あなたは...十分な長さ検索する場合、」Ubuntuがなることを目指して掲載して答えられる可能性がより多くの情報のため-第一レベルの答えの代わりに「Googleだけ」と言う回答の壁を提供する権限の質問と回答のサイトFAQを確認してください
マルコ・セッピ

1
ここに役立つステップガイドがあります:help.ubuntu.com/community/Git。@Marco Ceppi申し訳ありませんが、私は論争的ではありませんでした。そして、私が投稿したリンクは質問に非常に関連しているようです...答えとして今は大丈夫ですか?
ボンボビンゴ

@BonboBingoのコメントは回答としてカウントされません!私はあなたのコメントの「Search Google」の部分にコメントしていました。UbuntuヘルプガイドのGit記事に関する詳細を回答したい場合は、このページの下部にある[回答]ボックスを使用してください。:)
マルコ・セッピ

2
「「Just Google」と言う答えの壁の代わりに-詳細については、「...」を確認してください。大丈夫です:)ここで止めましょう。
ボンボビンゴ

回答:


38

aking1012が提案したように、チュートリアルを使用してGitサーバーをインストールできます。または、EC2インスタンスにSSHサーバーをインストールすることもできます(おそらく、セキュリティを確保してデフォルトポートを変更するのが賢明でしょう)。

Gitは、サーバーを使用せずにリポジトリを初期化してから、SSH経由でリモートからアクセスできます。したがって、Ubuntu Serverでのこのような指示はそれを行う必要があります。

GIT_DIR=project.git git init  
cd project.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

最後に、サーバーにSSHをインストールします。

sudo apt-get install ssh-server

次に、SSHを構成してセキュリティを確保する必要があります。

プロジェクト(開発マシンにすでにあるデータ)をオンラインにするときです。

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

これで、クローン作成を開始できます。開発用マシンに行きます:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Gitでこの優れたリソースを確認してください。

そして、より安全な認証のためのsshキーを生成するために、SSH認証に関するこの記事を読むことができます。


そうじゃないopenssh-server
ホルヘカストロ

1
@jorge ssh-serverは、少なくともUbuntu 10.04では、openssh-serverのエイリアスのようです。
ホイヘンス

1
まあ、これは動作しますが、SSH経由でAmazon EC2マシンにログインするには、公開/秘密キーペア(ssh -i key.pem ubuntu @ address)が必要です。だけではなく、gitのクローンgit.mydomain.com/repositoryの、:(は/ var / www /のDIR1 / DIR2 Ubuntuの@アドレス)また、私はパスを覚えている
Pawełkowy

1
@Pawel良い点。そのため、一部の人々はgitリポジトリをファイルシステムルートに配置します。しかし、はい、sshキーまたはアカウントが必要です。または、HTTPを使用することもできますが、その場合、あなたは本当に素晴らしいアクセス制御AFAIKを持っていません。
ホイヘンス

3
@PawełKarpiński-クライアント側のSSH構成ファイルをセットアップして~/.ssh/config、ユーザー名/ホストアドレス、キー入力、ポートなどを処理できます。
シャウナ

15

私のすべてのGitサーバーのセットアップでは、Graniteを使用しますこれにより、「ブランチごと」のアクセスのセキュリティ粒度が可能になります。セットアップは、リモートサーバーで実行している場合は非常に簡単です。インタラクティブスクリプトを実行するのと同じくらい簡単です。この「セットアップが簡単」な性質に加えて、NattyおよびMaverickにもパッケージがあります。

sudo apt-get install gitolite

これはGithubやGitwebのようなWebフロントエンドを提供しませんが、Gitoliteのようなものの上にそれらを簡単に構成してインストールできます。


9

私はジトライトが好きです。Pro Gitブックにはセクションがありますが、本全体を読むことをお勧めします。

複数のユーザーの要件に関して:

Gitoliteを使用すると、リポジトリ(Gitosisのように)だけでなく、各リポジトリ内のブランチ名またはタグ名によって権限を指定できます。つまり、特定の人々(または人々のグループ)は特定の「参照」(ブランチまたはタグ)のみをプッシュでき、他はプッシュできないように指定できます。


7

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-wayは、目的に合わせてわずかに変更できます...同様のチュートリアルhttp:// blog .agdunn.net /?p = 277


1
注:現在、開発クライアントと開発サーバーのチュートリアル用に0をrvm、ree / ruby​​、rails、gitチュートリアルにまとめています。たくさんのオンラインチュートリアルを1か所にまとめて少し修正するだけですが、現時点ではまだ進行中の作業です。
RobotHumans

これらのチュートリアルは素晴らしいですが、まあ、かなり複雑です。「より短い」チュートリアルはありませんか?:)
パウェコヴィ

私はこれ以上簡単なものを見ていません... gitoriousとgitosisのチュートリアルのほとんどは、サンプルプロジェクトの作成とテスト(すべてのチュートリアルにあるべきだと思うもの)を通過しません。もっと直接的な別のタットを
見つけたら

@PawełKarpiński-それらについて何がそんなに複雑なのですか?Gitosisセットアップを使用したことがありますが、実際には非常に簡単です。
シャウナ


4

私にとって最適なソリューションは、WebDAVのセットアップでした。

  • sudo a2enmod sudo dav_fs

  • sudo a2enmod dav

  • 新しいファイルを追加し/etc/apache2/sites-availableて名前を付けます(例:)git.yourserver.com。それを編集して、次の行を追加します。

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews

<Location />
    DAV On
    AuthType Basic
    AuthName "git repos"
    AuthUserFile /var/www/git.yourserver.net/password.dav
    Require valid-user
</Location>

</VirtualHost>

  • ID内にディレクトリ/var/www/git.yourserver.comとディレクトリを作成しますrepos
  • sudo chown www-data /var/www/git.yourserver.com/repos
  • sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login という名前のユーザーのパスワードを入力します user_login
  • sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • sudo chmod 640 /var/www/git.yourserver.com/password.dav

今、sudo a2ensite git.yourserver.comそしてsudo service apache2 restart

  • /var/www/git.yourserver.com/reposディレクトリを入力して作成します。たとえば、myrepo.git
  • cd myrepo.git
  • git --bare init
  • git update-server-info

次に、リモートサーバーからログアウトし、ファイルを編集するローカルディレクトリに移動します。

git clone http://user_login:user_password@git.yourserver.com/myrepo.git

そしてあなたは終わった。コミットした変更をサーバーに送信する場合:

git push origin master

を使用して、必要な数のユーザーを作成できますsudo htpasswd-c古いファイルは削除されるため、ユーザーを追加するときにスイッチを使用しないでください。


3
HTTPは、サポートされているが強く推奨されていない「ダム」プロトコルです。ネイティブのgitプロトコルの方がはるかに優れており、動作するsshサーバー(既に必要です)をインストールしてgit-coreをインストールするだけなので、セットアップが簡単です。Apacheをいじる必要はまったくありません。
-psusi

3

ユーザーとセキュリティを管理するためのgitoliteアプローチも気に入っています。現在テスト中のEC2用のGit + gitoliteサーバーAMIがあります。試してみてください。ドキュメントはここから入手できます。

Alestic Gitサーバー

このアプローチを使用すると、プライベートリポジトリを備えた中央のGitサーバーを数分で実行できます。あなたがそれらに精通していない場合、gitoliteとEC2の学習曲線があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.