技術共有

GitLab CI/CD でプロジェクトのデプロイの自動化を実現

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 GitLab CI/CD の概要

  • GitLab CI/CD は、ソフトウェア開発のために GitLab に統合された継続的インテグレーション (Continuous Integration)、継続的デリバリー (Continuous Delivery)、および継続的デプロイ (Continuous Deployment) ツールのセットです。このシステムを使用すると、開発チームは、コード変更の検出、構築、テスト、そして最終的には運用環境への展開に至るまで、ソフトウェア配信プロセスを自動化できます。

  • 継続的インテグレーション (CI)

    • コードがバージョン管理システム (GitLab ウェアハウスなど) にプッシュされるたびに、システムはコードを自動的にビルドしてテストします。これにより、統合エラーが発見されて修正されると同時に、コードの変更が迅速に master ブランチに統合されることが保証されます。
  • 継続的デリバリー (CD)

    • 継続的統合に基づいて、検証済みのコード変更を実稼働前環境または実稼働準備が整った環境に配信することをさらに自動化します。この段階には、ソフトウェアを運用環境に展開する準備が整っていることを確認するために、より複雑なテスト スイートやパフォーマンス テストなどが含まれる場合がありますが、実際の展開には手動の承認が必要になる場合があります。
  • 継続的展開 (CD)

    • 継続的デリバリーに基づいて、デリバリープロセスは完全に自動化されており、すべてのテストに合格したコードは手動介入なしで実稼働環境に直接デプロイできます。これは、すべてのコード変更がテストされ、迅速かつ安全にユーザーに提供されることを意味します。

2 GitLab CI/CD と GitLab Runner

  • GitLab CI/CD は、ソフトウェア開発ライフサイクルにおけるビルド、テスト、デプロイメントのプロセスを管理する GitLab プラットフォームに統合された一連のサービスです。プロジェクト内の .gitlab-ci.yml 構成ファイルを読み取り、さまざまなタスク (ジョブ) とプロセス (パイプライン) を定義し、継続的インテグレーションと継続的デプロイメントの目標を達成します。

  • GitLab Runner は、これらの CI/CD プロセスを実装する実際のワーカーまたは実行エンジンです。これは、別のオペレーティング システム (Linux、macOS、Windows など) にインストールして、GitLab インスタンスに登録してバインドできる、個別にデプロイされるプログラムです。新しいコミットによって GitLab CI/CD プロセスがトリガーされると、GitLab は登録された Runner が .gitlab-ci.yml で定義されたタスクを実行するようにスケジュールします。

  • 簡単に言えば、GitLab CI/CD はプランナーおよびコーディネーターであり、いつどのようにタスクを実行するかを定義する責任を負います。一方、GitLab Runner はこれらのタスクを具体的に実行するエンティティです。 ランナーは共有 (複数のプロジェクトに対応) または専用 (単一プロジェクトのみに対応) することができ、プロジェクトのニーズに基づいて異なる実行環境で構成できます (Docker コンテナを使用してビルド環境を分離するなど)。

3 GitLabランナー

3.1 インストール

  • Centos を例に挙げます
  • gitlab-runner インストール パッケージのダウンロード、「パッケージ」列で gitlab-runner を検索すると、このバージョン el/7/x86_64/gitlab-runner-16.6.0-1.x86_64.rpm をダウンロードできます。
  • インストールコマンドは以下の通り
  •   # 安装
      sudo rpm -ivh gitlab-runner-16.6.0-1.x86_64.rpm	
      # 查看是否安装成功
      gitlab-runner -h