GitLabでローカルリポジトリ構築

引用元:Gitlab

今回は、ローカルでのGitリポジトリを構築したいと思います。構成としては、Gitlab Community Editionでリポジトリを構築して、VSCodeから接続する形です。

Gitlab Community Edition

Gitlabといえばオンラインの有償ツールという印象ですが、無料版のCommunity Editionが存在します。ライセンスはMITライセンスです(*1)。

Gitlab Community EditionはSaasではなく、自前でサーバーを構築する形となります。主にLinux向けの提供となるため、windowsをご利用の方はDocker経由での利用となりそうです。今回は、手元にUbuntu環境があったので、そこに入れていきたいと思います。

インストール

まず、以下のコマンドでGitlabをインストールします。

sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install -y gitlab-ce
sudo gitlab-ctl reconfigure

インストールに成功したら、初期ユーザー「root」のパスワードを以下のコマンドで確認します。

sudo cat /etc/gitlab/initial_root_password

Gitlabにアクセスするには、以下のURLにブラウザから接続します。

インストールに成功していると、以下のようなログイン画面が表示されるので、ユーザー名「root」、パスワードは上記で確認した値を入力します。

ログイン

※ アクセスに失敗する場合、以下のコマンド等でファイアーウォール設定を見直してみてください

# ファイアーウォール設定の確認
sudo ufw status

# SSH(22)/HTTP(80)/HTTPs(443)を開ける
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# ファイアーウォール有効化
sufo ufw enable

HTTPS接続の有効化(サーバー側)

ブラウザアクセスする分にはHTTPだけつながれば大丈夫なのですが、後述のGitでの接続にはHTTPS接続が必須となります。今回はローカルIPアドレス「192.168.2.184」にサーバーを配置して、IPアドレスで接続+証明書作成を行います。
※ 以下手順では、簡略化のために自己証明書を利用します。商用利用の際には認証局から証明書を発行していただくことをお勧めします。

  1. HTTPS通信に必要な自己証明書の設定ファイルを作成します。以下のファイル「san.cnf」をカレントディレクトリに作成します。

    [req]
    default_bits = 2048
    prompt = no
    default_md = sha256
    distinguished_name = dn
    x509_extensions = v3_req
    [dn]
    C = JP
    ST = Tokyo
    L = Chiyoda
    O = Example
    OU = IT
    CN = 192.168.2.184
    [v3_req]
    subjectAltName = @alt_names
    [alt_names]
    IP.1 = 192.168.2.184
  2. 以下のコマンドを発行して、上記設定ファイルをもとに自己証明書を作成します。

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout server.key -out server.crt \
    -config san.cnf -extensions v3_req
  3. 自己証明書をGitlabのフォルダに配置します。

    sudo mkdir -p /etc/gitlab/ssl
    sudo chmod 700 /etc/gitlab/ssl
    sudo cp ./server* /etc/gitlab/ssl
  4. Gitlabの設定を変更します。※以下はnanoエディタを利用する例ですが、管理者権限で実行したエディタであれば何でもOKです

    sudo nano /etc/gitlab/gitlab.rb

    修正内容は以下の通りです。

    external_url 'https://192.168.2.184'
    nginx['redirect_http_to_https'] = true
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"

    その後、以下コマンドでGitLabサーバーに設定を反映させます。

    sudo gitlab-ctl reconfigure

HTTPS接続の有効化(クライアント側)

  1. 上記で作成した「server.crt」を、VSCode利用端末に複製します。

  2. 自己証明書「server.crt」をインストールします。以下はwindowsでのインストールの流れです。

  3. 「server.crt」をダブルクリックして開いた画面で、「証明書のインストール」ボタンを押下します。
    証明書インストール001

  4. 「現在のユーザー」を選択して、「次へ」ボタンを押下します。
    証明書インストール002

  5. 「証明書をすべて次のストアに配置する」を選択し、「参照」ボタンを押下して、「信頼されたルート証明機関」を選択します。その後、「次へ」ボタンを押下します。
    証明書インストール003

  6. 確認画面が表示されるので、「完了」ボタンを押下します。

  7. ブラウザで「https://192.168.2.184」にアクセスして、ログイン画面が表示されれば完了です。HTTPと同様のユーザー名/パスワードでログインしてください。
    ※「保護されていない通信」という文字は表示されてしまいます。
    証明書インストール004

初期設定

ログインに成功すると、以下のような画面になります。

HOME画面

日本語化

まずは、日本語化します。画面右上のアイコンをクリックして、「Preferences」を選択、その後表示された画面で「Localization – Language」で、日本語を選択します。選択後、ページを下にスクロールして「Save Changes」ボタンを押下して保存します。

日本語化

ブラウザで再読み込みすると、日本語ページに代わっています。

アクセストークン作成

  1. 画面右上のアイコンから「設定」を選択します。

  2. 表示されたユーザー設定画面の、左側メニューで「アクセス – パーソナルアクセストークン」を選択して、「新しいトークンを追加」ボタンを押下します。
    アクセストークン001

  3. トークン設定を入力して、「トークンを生成」ボタンを押下します。

    • トークン名:適当でOK
    • 有効期限:デフォルトは当日のみのため、最大である1年後を設定します
    • スコープを適用:「api」のみ選択します。
      アクセストークン002
  4. パーソナルアクセストークン画面に、「自分のトークン」が表示されるようになるため、コピーしておきます。
    アクセストークン003

グループ作成

次にグループを作成します。グループはユーザーにまとまりで、グループの下にプロジェクト(リポジトリ)が存在する構造になります。

  1. 画面左上のきつねアイコンを押下して、表示されるメニューから「グループ」を選択します。
    グループ画面

  2. グループ画面の「新しいグループ」ボタンを押下して、表示された画面で「新しいグループを作成」を選択します。
    グループ新規作成

  3. グループ名などを入力し、「グループを作成」ボタンを押下します。
    グループ設定

プロジェクト作成

次にプロジェクトを作成します。プロジェクトの中にGitリポジトリ等を構築していくことになります。

  1. 「プロジェクトを作成」ボタンを押下します。
    プロジェクト作成

  2. プロジェクトの作成方法は「空のプロジェクトの作成」を選択します。
    空のプロジェクト

  3. 最後にプロジェクト名等を設定します。今回はテスト用に以下のように入力しました。
    プロジェクトの設定

  4. 成功すると、以下のような画面が表示されます。
    プロジェクト

GitLab ↔ VSCode連携

次に、VSCodeと連携していきます。動作確認時は別PCのVSCodeからアクセスしていますが、localhost上でも同様の操作で対応できると思います。

  1. VSCodeを開き、以下の拡張機能をインストールします。
     - GitLab
    拡張機能

  2. 拡張機能をインストールすると、VSCodeの左メニューにGitLabのきつねアイコンが追加されます。アイコンをクリックして、「Authenticate to GitLab instance」ボタンを押下します。
    Gitlab認証001

  3. コマンドパレットに選択肢が表示されるので、「Mannually enter instance URL」を選択します。
    Gitlab認証002

  4. GitLabをインストールしたサーバーを指定します。
    ※画像を取り忘れたのでlocalhostになっていますが、「https://192.168.2.164」を設定します。
    GitLab認証003

  5. トークンはすでに作成したので、「Enter an existing token The token must have ‘api’ scope.」を選択し、続く入力欄にGitLab上で取得したアクセストークンを貼り付けます。
    GitLab認証004

  6. 認証に成功するときつねアイコンが一つ増えます。
    GitLab認証005

Git連携

最後にGitレポジトリに対して、VSCodeからファイルをコミットしていきます。

  1. クライアントPC(VSCodeを利用している端末)にGitが入っていない場合、Gitをインストールします。windowsの場合は以下からインストールできます。(選択肢が多いですが、わからない場合はすべてデフォルトで進めます)

    • Git for windows
      インストール後、VSCodeのコンソールを開き、以下のコマンドを実行して、gitの初期設定を完了させます。

      git config --global user.name (gitログ上に残る名前)
      git config --global user.email (gitログ上の残るメールアドレス)
      git config --global --list
  2. Gitがインストールされた状態でVSCodeを開いて、ソース管理タブを開き、以下のような状態になっていれば、VSCode上でGitが利用可能です。
    GitLab認証006

  3. 「リポジトリを初期化する」ボタンを押下します。

  4. 表示された画面で「リポジトリ」タブの「…」から「クローン」を選択します。
    GitLab認証007

  5. コマンドパレットの選択肢から、「GitLab(https://192.168.2.164 – root)」を選択します。
    GitLab認証008

  6. GitLab上で作成したグループとプロジェクトが表示されるので、対象の行を選択します。
    GitLab認証009

  7. 接続方式を聞かれるので「https://」で始まる行を選択します
    GitLab認証010

  8. 「開く」ボタンを選択すると、サーバー上のファイルがローカルにダウンロードされます。
    GitLab認証011

  9. 初期状態では「README.md」だけが存在しています。コミットできるか確認するため、ここにファイル「test00」を追加します。
    コミット001

  10. 画面左の「ソース管理」アイコンから、Git画面に移動します。「test00」の右にある「+」を押下して、ステージング状態にします。
    コミット002

  11. コミットコメントとして「test00を追加」と記載し、コミットボタンを押下します。
    コミット003

  12. ここまでで、ローカルGitリポジトリへのコミットは完了です。最後にGitLabサーバー上のリポジトリにコミットするため、「変更の同期」ボタンを押下します。
    コミット004

  13. 確認ダイアログは「OK」ボタンを押下します。
    コミット005

  14. ブラウザでGitLabの対象のプロジェクトを開き、「test00」が追加されていれば成功です
    コミット006

参考資料

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