8
https://www.conoha.jp/

 · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

https://www.conoha.jp/

Page 2:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

 Gitとはソースコードなどの変更点を管理するための分散型の

バージョン管理ツールです。イマドキの開発にGitは欠かせない

ツールで、この本を読んでくださっている皆様の中にも、すでにお

使いの方も多いと思います。Gitは「分散型」という特徴を持って

いて、複数の開発者がリポジトリを持つことができ、それぞれのリ

ポジトリ間で変更点をやりとりしながら変更管理を行います。その

ため、Gitはスタンドアローンの環境で使うこともできますが、ネッ

トワークを経由してリモートにあるリポジトリを利用することが一般

的に行われています。Gitのリポジトリをホストするためのサービス

がいくつかあり、代表的なものはGitHub https://github.com/

です。しかしこの本では、オープンソースソフトウェアのGitLab

https://about.gitlab.com/ を使用して、自分だけのGitサーバ

を構築して、プライベートなリポジトリ運用を試していきます。

まえがき

■ Gitに触れてみる。■ ConoHaでGitLabを使いGitサーバを構築する。■ 簡単なプロジェクトを作成し、作成したリモートリポジトリに送信(git push)してみる。

■ とりあえずConoHaでVPSを1台契約済みであること。■ GitやSubversionなど、バージョン管理ツールを触ったことがあること。

前 提

目 標

Page 3:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

I. さぁはじめよう

補足: 「Git」はバージョン管理ツールのことで、「GitLab」はGitのリポジトリをホストするためのソフトウェアです。

混乱しやすいので注意!

[conoha@VPS]$ sudo yum -y install wget postfix git

II. リモートリポジトリを作る

GitLabをインストールしてみよう1

 最初にGitLab(原稿執筆時のバージョンは7.1.1)のインストールを行います。OSは

ConoHaの標準OSであるCentOS6.5(64bit)を使用します。作業は一般ユーザで行い、

root権限が必要な作業はsudoで行うようにしています。

 また、ConoHaの標準OSをお使いでない場合は、wget, postfix, gitをインストールしておいてください。CentOSなどではyumを使用して、以下のようなコマンドになります。

 さぁ GitLabのインストールに進みましょう。基本的にはオフィシャルのドキュメント通りで

すが、わかりやすいように少し解説を入れてあります。まず、GitLabのRPMファイルをダウ

ンロードしてインストールします。

[conoha@VPS]$ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT[conoha@VPS]$ sudo service iptables saveiptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

 さらに、標準OSはファイアーウォール(iptables)が設定されていて、Webサーバへのアク

セスができません。以下のコマンドで設定を変更しましょう。

 Gitのリポジトリを2つ作成して、ソースコードをやりとりしてみます。ひとつはローカルリポジトリ、もうひとつはリモートリポジトリになります。ローカルリポジトリはgitコマンドで作成し、リモートリポジトリはGitLabをインストールして構築します。本来はローカルリポジトリとリモートリポジトリはネットワーク越

しにアクセスすることになりますが、今回はチュートリアルなので両方とも同じVPSの中で作成します。 gitに慣れている人は簡単でしょうが、初めてgitに触る方向けに解説も入れてありますので、頑張っていきましょう!

「ConoHa」のVPS

Gitプロジェクト作成

ローカルリポジトリ

git push

リモートリポジトリ

やさしいやろ〜(ー́`)y─┛~~

Page 4:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

GitLabでリモートリポジトリを作る2

GitLabで使用するSSHキーペアを作成する3

 リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

成して、公開鍵をGitLabに登録します。

[conoha@VPS]$ sudo -e /etc/gitlab/gitlab.rb

 次に、GitLabの設定ファイルを変更します。URLが書いてあるので、ホスト名の部分を

VPSのIPアドレスに置き換えればOKです。

これでGitLabのインストールは完了です!

[conoha@VPS]$ sudo gitlab-ctl reconfigure

 最後にGitLabの最終設定と、アプリケーションサーバ、Webサーバを起動します。これは

GitLabにコマンドが用意されているので、以下のコマンド一つで行えます。

 Webブラウザからhttp://[VPSのIPアドレス]/にアクセスすると、GitLabが表示されます。初期設定ではユーザ名が「root」、パスワードが「5iveL!fe」に設定されているので、ログインしてください。初回ログインの時だけ、パスワードの変

更を求められます。

[conoha@VPS]$ wget https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab-7.1.1_omnibus-1.el6.x86_64.rpm[conoha@VPS]$ sudo rpm -i gitlab-7.1.1_omnibus-1.el6.x86_64.rpm

[conoha@VPS]$ ssh-keygen -b 2048Generating public/private rsa key pair.

(中略、Enterを押して進めて構いません)[conoha@VPS]$ cat ~/.ssh/id_rsa.pub

 次に、新しいプロジェクトを作成し

てみましょう。「New project」をクリックして、プロジェクトの情報を入

力します。ここでは「conoha」としました。

 「Create project」クリックするとプロジェクトが作成されます。このプ

ロジェクトが、今回使用するリモート

リポジトリになります。

ここにプロジェクト名を入力やv(・ω・)

Page 5:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

ここからが本番やで(°Д°)

### 名前、メールアドレスを設定します。[conoha@VPS]$ git config --global user.name "Mikumo Conoha"[conoha@VPS]$ git config --global user.email "[email protected]"

 公開鍵が表示されますので、先頭の

ssh-rsa から末尾までをコピーします。

次に、GitLabの右上のメニューから

「Profile Setting」→「SSH Keys」と進み、緑色のボタン「Add SSH Key」をクリックします。これでリモートリポジトリの準

備は完了です!

III. ローカルリポジトリを作る

gitコマンドでローカルリポジトリを作る1

 まずは、Gitの設定を行いましょう。Gitはリポジトリに対して操作をした時に、変更者の名

前やメールアドレスを同時に記録する仕組みになっています。まずはあなたの名前、メールア

ドレスの設定を行いましょう。configというサブコマンドを使用します。

 設定が終わったところで、今度はローカルリポジトリを作成します。今度はinitというサブコマンドです。

 さてリモートリポジトリができたので、ここからは本格的にGitを使っていきます。Git慣れていない方は、一つずつ確認しながら進めてみてください。 Gitにはコマンドラインから操作するためのgitというコマンドが用意されています。gitコマンドは、スペースに続いてサブコマンドを追加することで、様々な機能を実現します。

# ホームディレクトリにプロジェクトのディレクトリを作成して、そのディレクトリに移動[conoha@VPS]$ cd[conoha@VPS]$ mkdir conoha-project[conoha@VPS]$ cd conoha-project

# gitのリポジトリを作成する[conoha@VPS]$ git initInitialized empty Git repository in /path/conoha_project/.git/[conoha@VPS]$

[conoha@VPS]$ git status# On branch master## Initial commit#nothing to commit (create/copy files and use "git add" to track)[conoha@VPS]$

 これでリポジトリが出来ました! これだけです、簡単ですね。 えっ、何も起きてないじゃ

ないかって? ではstatusサブコマンドを実行してみましょう。

ここにSSH公開鍵を

貼り付けるんやでv(・ω・)

ここからが本番やで(°Д°)

Page 6:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

ここからが本番やで(°Д°)

これはリポジトリが作成され、現在のブランチが"master"であることを意味しています。また「nothing to commit」なので、まだ何もコミットがされていない、つまり空のリポジトリであるということです。

なにかプロジェクトを作ってみよう2

 さあリポジトリができたので、ファイルを追加してみましょう。今回はチュートリアルです

ので、簡単なHTMLファイルを用意してみました。

[conoha@VPS]$ echo "<html><body><p>ConoHa - VPSは、まだまだ楽しくなれる。</p></body></html>" > index.html

このファイルをローカルリポジトリに追加してみましょう。

[conoha@VPS]$ git add index.html[conoha@VPS]$ git status# On branch master## Initial commit## Changes to be committed:# (use "git rm --cached <file>..." to unstage)## new file: index.html#[conoha@VPS]$

-m オプションでコミットの際のコメントを指定しています。これでリポジトリにファイルが追加されましたが、せっかくなのでファイルが追加されたことを確認してみましょう。サブコマ

ンドlogを使用します。

[conoha@VPS]$ git logcommit 32ba3657964b18762ed9c5294154fb2bbeeb547fAuthor: Mikumo Conoha <[email protected]>Date: Thu Jul 31 18:43:27 2014 +0900

Initial commit.[conoha@VPS]$

サブコマンドのaddを使用しました。しかしこの状態では、ファイルはまだリポジトリに追加されていません。Gitはリポジトリに対してコミットという操作を行うことで、リポジトリに対する変更を確定させます。ファイルの追加もリポジトリに対する変更なので、コミットを行う

必要があります。

[conoha@VPS]$ git commit -m "Initial commit." [master (root-commit) 32ba365] Initial commit. 1 files changed, 42 insertions(+), 0 deletions(-) create mode 100644 index.html[conoha@VPS]$

カクニンが大事や(̄ ∠  ̄ )

ここからが本番やで(°Д°)

Page 7:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

IV. ローカルリポジトリとリモートリポジトリの連携

[conoha@VPS]$ git push -u origin masterCounting objects: 3, done.Delta compression using up to 4 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 719 bytes, done.Total 3 (delta 0), reused 0 (delta 0)To [email protected]:root/conoha.git * [new branch] master -> masterBranch master set up to track remote branch master from origin.

コミットした情報がログとして表示されました(commitに続く文字列は、環境によって異

なります)。

そしてpushを実行します。

 ようやくチュートリアルの目的である、リポジトリ同士の連携です。ローカルリポジトリ

の内容を、リモートリポジトリに送信してみましょう。これにはpushというサブコマンドを使用します。 まずはローカルリポジトリ上で以下のコマンドを実行します。これはリモート

リポジトリの接続先を設定するものです。

これでローカルリポジトリの変更が、リモートリポジトリに反映されました。ブラウザから

GitLabにアクセスし、確認してみましょう。トップページに戻り、メニューから「Projects」→「(作成したプロジェクト名)」と選択していくとプロジェクトのページにアクセスできます。さらにメニューから「Files」を選びindex.htmlを選択してみましょう。

作成したHTMLファイルが表示されました。これでローカルリポジトリとリモートリポジトリ

が同期されたことになります。

チュートリアルはここで終わりですが、実際の開発では、このあとリモートリポジトリを複数の開発者で共有して、開発を進めていくことができます。このチュートリアルではリモートリポジトリを自分で構築しましたが、GitHubなどを使う場合でも基本的な考え方や、Gitの操作は同じです。皆様もGitを活用して、楽しい開発ライフを送ってください。

[conoha@VPS]$ git remote add origin git@(VPSのIPアドレス):root/conoha.git

Happy Hackingやでーヾ (́ε`●)ノ

長く苦しい戦いだった…(́ Д` ;)/ヽ ァ・・・

Page 8:  · 2015-05-17 · 2 GitLabでリモートリポジトリを作る 3 GitLabで使用するSSHキーペアを作成する リモートリポジトリへの接続にはSSHが使われます。なので接続に使うSSHキーペアを作

VPSは、まだまだ楽しくなる。

2014年8月23日 初版発行

編集:ConoHaの中の人たち

発行者:児玉公宏

発行所:GMOインターネット株式会社

住所:東京都渋谷区桜丘町26-1セルリアンタワー

TEL: 03-6702-0428

「ConoHaの薄い本!」vol.5 Gitを使ってみよう & 自分だけのGitサーバーを構築してみよう!

https://www.conoha.jp/

Happy Hackingやでーヾ (́ε`●)ノ