⚙️

【GitLab初心者向け】CI/CDをこれから始める人のための超入門ガイド

に公開

0.はじめに

CI/CDやDevOpsという言葉をよく耳にするけれど、実際にGitLabで何ができるのかよくわからない。

GitHubとの違いや、どのツールが自社に向いているのかも判断しづらいし、そもそも導入のハードルが高そう…。

そんな悩みを抱えている開発者やマネジメント層の方は多いのではないでしょうか。

「GitLabって名前は聞くけど、具体的に何ができて、どんなメリットがあるの?」
「GitHubと何が違うの?選ぶならどっち?」
「CI/CDやDevOpsとの関係がよく分からない…」

この記事は、そんな悩みを持つ“GitLab初心者”の方に向けて、わかりやすく解説します。

1.GitLabとは何か?基礎から理解しよう

GitLabは、ソースコードのバージョン管理を行うGitリポジトリに加え、CI/CDやIssue管理、コードレビュー、セキュリティチェックなど、開発から運用までのプロセスを一元的に管理できる統合プラットフォームです。

GitHubと比較されることが多いですが、GitLabは自己ホスト型としても使えるため、企業や組織内でのセキュリティ要件に応じた柔軟な運用が可能です。

さらに、DevOps文化を支援するツールとしても注目されており、開発・運用の壁を越えたチーム連携を加速させます。

https://about.gitlab.com/ja-jp/

2.GitLabで何ができるの?

GitLabには、以下のような機能が備わっています。

機能 できること
ソースコードのバージョン管理 Gitをベースとしたリポジトリ管理
CI/CD機能 コードの変更を検知して自動でビルド・テスト・デプロイが可能
Issue管理 課題やバグ、タスクをチームで共有・管理
マージリクエスト コードレビューや承認フローの設定が可能
Wikiやドキュメント管理 プロジェクトに紐づけたナレッジ共有
セキュリティチェック SASTやDependency Scanで安全性を確保

つまり、開発の上流から下流までをGitLabひとつで完結させることができます。

3.GitLab × CI/CD × DevOpsの関係性

CI/CDとは、コードの変更を素早くかつ安全にリリースするためのプロセスです。

GitLabでは、.gitlab-ci.ymlというファイルに手順を記述することで、開発フローに自動化を組み込むことができます。

DevOpsとは、開発(Development)と運用(Operations)の連携を強化し、リリースのスピードと品質を向上させる考え方。その手段の1つがCI/CDであり、GitLabはこれを強力に支援するツールです。

例:コードをpushしたら自動テストが走り、問題なければ本番環境に自動反映する

このように、GitLabはDevOps実現の足掛かりとして非常に有効です。

https://zenn.dev/gachigachi/articles/b93a02045426d7

4.GitLab vs GitHub vs 他ツールの比較

CI/CDの導入にあたっては、さまざまなツールの選定が必要です。
特にGitLabとGitHubはよく比較される存在で、それぞれ特徴や適した使い方が異なります。

ここでは、代表的な3種類のツールを比較し、どのような場面でGitLabが適しているのかを明らかにします。

項目 GitLab GitHub Jenkins / CircleCIなど
ソース管理 ◯(Git) ◯(Git) ×
CI/CD機能 ◯(統合) ◯(GitHub Actionsで追加)
ホスティング方法 SaaS / オンプレ選択可 主にSaaS 自己ホスト
UI/UX やや技術寄り 初心者に優しい 技術者向け
セキュリティ機能 ◯(標準で多数の機能) △(一部有料) ×(プラグイン依存)

GitHubもGitHub Actionsを使えばCI/CDは実現可能です。

ただ、GitLabは最初からCI/CD機能が統合されており、UIからの操作や権限設定、ログの確認などが一貫して行いやすいという強みがあります。

また、GitLabは自己ホストが可能なため、内部ネットワークやセキュリティ制約の強い組織でも柔軟に導入できます。

GitHubは初心者にはとっつきやすいですが、エンタープライズ用途やCI/CDを本格運用したい場合はGitLabが優れています。

5.GitLabの始め方(アカウント登録からプロジェクト作成まで)

GitLabは、https://gitlab.com/users/sign_up にアクセスし、無料のアカウントを作成すればすぐに使い始められます。

  • 1.https://gitlab.com/users/sign_up にアクセス
  • 2.名前・メールアドレス・パスワードを入力して登録
  • 3.初回ログイン後、「New Project」から新しいプロジェクトを作成

https://tracpath.com/works/development/learn-gitlab-tutorial-for-beginners/

以降で、基本概念である「ユーザー」「グループ」「プロジェクト」について簡単に解説します。

5.1.ユーザー、グループ、プロジェクトについて

「ユーザー」「グループ」「プロジェクト」については、以下関係性を覚えておけば大丈夫です。

  • GitLabではGitリポジトリの管理を「プロジェクト」という単位で取り扱う
  • プロジェクトは「ユーザー」によって管理・利用される
  • ユーザーは特定の「グループ」にまとめることが可能。ユーザーはグループメンバーになるか、直接プロジェクトのメンバーになることでプロジェクトへ参加できるようになる。

次から「ユーザー」「グループ」「プロジェクト」の初期設定を実際にやってみます。

5.2.ユーザーの管理

はじめにGitLabのユーザーアカウントを作成し、プロジェクト管理に必要な設定を行います。

5.2.1.ユーザーアカウントの作成

GitLabの登録ページにアクセスし、必要な情報を登録しましょう。

利用者情報の登録が終わると、登録したメールアドレス宛に「確認コード」が送信されるので、それをサインアップページに入力したらアカウント登録は完了です。

アカウント登録が完了すると、簡単なアンケートを求められるので回答しましょう。

5.2.2.初期プロジェクトの作成

初期プロジェクト作成ページが出てくるので、必要に応じて内容を編集して「プロジェクトを作成」を押下しましょう。今回はお試しなので、デフォルトのままいきます。

5.2.3.ユーザープロファイルの設定

GitLabのWebページにアクセスすると、サイドバーの上に「アバター」のアイコンボタンがあります。
ここから、「プロファイルの編集」を押下すると、ユーザープロファイルが設定できます。

アバターやタイムゾーンの設定を行い、開発者の特定やステータスを把握しやすいようにしておきましょう。

5.2.4.二要素認証の設定

次にユーザーアカウントのセキュリティ強化のため、二要素認証を設定しましょう。

二要素認証とは、ユーザー名とパスワードの組み合わせと、他の認証要素を組み合わせる認証プロセスです。

GitLabでは、二要素認証として以下をサポートしてます。

認証 内容
時間ベースのワンタイムパスワード これを有効にするとGitLabはサインイン時に「認証コード」の入力が求められます。この認証コードは、ワンタイムパスワード認証システムによって生成されます。
WebAuthnデバイス認証 これを有効化するとWebAuthnデバイスをアクティブにするように求められます。あらかじめ設定された端末のPINコードや生体認証を使って認証を行います。

「ユーザー設定」→「アカウント」→「2要素認証を有効にする」から、上記どちらか選んで設定しておきましょう。

5.2.5.個人アクセストークンの設定

コマンドラインベースでGitLabのリソースにアクセスするためには、ユーザーアカウントのパスワードの代わりに個人アクセストークンを使用します。

そのため、事前に個人アクセストークンを発行しておき、それを利用してGitLab上のリソースにアクセスします。

個人アクセストークンは、ユーザープロファイルの設定ページのサイドバーにある「アクセストークン」を選択し、「新しいトークンを発行」から作成します。

以下3つを設定してきましょう。

  • トークン名:トークンの名前
  • 有効期限:トークンの有効期限。入力しない場合は365日後に設定
  • スコープ:トークンに付与する権限の選択

5.3.グループの管理

5.3.1.概要

グループを活用することによってプロジェクトの各コンテンツにアクセスできるユーザーをまとめて制限できるため、効率よくプロジェクトを管理できます。

GitLabでは、グループを作成したユーザーがそのグループのOwnerとなり、グループに所属する各グループメンバーに役割を付与します。

グループメンバーには、以下の5つの役割があります。

グループメンバー 役割
Guest グループの開発計画に関する参照権限に持ちます。
Reporter 開発計画の参照権限とマイルストーンなどの管理権限を持ちます。
Developer 開発計画に関する管理権限に加え、パッケージなどの開発コンテンツへの管理権限を持ちます。
Maintainer グループの開発コンテンツに対するポリシーやルールの管理権限を持ちます。
Owner グループメンバーの管理者やグループの管理権限を持ちます。

5.3.2.グループの作成

グループはトップページの「新しいグループ」から作成することができます。

グループ作成での主な設定項目は「表示レベル」です。この設定によって、グループページの公開レベルが決まります。

  • 非公開:グループとそのプロジェクトはメンバーのみが閲覧可能
  • 公開:グループと公開されたプロジェクトは認証なしで閲覧可能

上記とグループ名を設定できたら、「グループの作成」を押下してグループを作成しましょう。

5.3.3.グループメンバーの登録

グループメンバーの管理は、グループページのサドバーにある「管理」>「メンバー」から実施します。

「メンバーを招待」ボタンを押下すると、ポップアップでグループメンバーの招待内容が表示されます。

グループメンバーを招待する際、グループメンバーの役割を参加者に割り当てることができます。

5.4.プロジェクトの管理

Gitリポジトリやwiki、パッケージやコンテナイメージなどを含め、GitLabに保存するコンテンツはすべて「プロジェクト」という単位で取り扱われます。

プロジェクトは必ず特定のユーザーまたはグループに属しており、所属するユーザーやグループによって利用用途が分かれます。

プロジェクト名 利用用途
ユーザープロジェクト 各ユーザーが新しいプロジェクトを作成すると、プロジェクトはユーザー個人の所有物となります。たとえば、外部にソースコードを公開することなく、個人の開発コンテンツを管理する場合に使用されます。
グループプロジェクト チーム開発を行うときには、グループの中にプロジェクトを立ち上げます。グループプロジェクトを作成することで、グループメンバーの役割と権限をグループプロジェクトへ継承できます。

6.マネジメント層から見た導入メリットとは

GitLabの導入は、開発者だけでなくマネジメント層にも多くの恩恵をもたらします。

  • リリースのスピードアップ → 市場競争力向上
  • 品質の安定化 → 顧客満足・サポート負荷の軽減
  • 開発メンバーのモチベーション向上 → 離職率低下
  • ログや履歴の可視化 → トラブル原因分析が容易に

結果として、投資対効果の高いツール導入となり、継続的な改善文化の定着にもつながります。

7.おわりに

GitLabは、単なるGitリポジトリではなく、CI/CDやセキュリティ、プロジェクト管理機能を備えた統合型のDevOpsプラットフォームです。

今後、ソフトウェア開発がさらに加速していくなかで、「開発のインフラ」としてのGitLabの重要性はますます高まるはずです。

最初の一歩として、まずは小さく導入し、チームで運用を試してみるのがいいかもです。

おわりっ!

Discussion