GitLab CI/CD - ハンズオンラボ: ステージ・ジョブ・Runner を定義する
完了までの推定時間: 15〜20 分
目標
このラボでは、GitLab プロジェクトで CI/CD を有効にします。最初の .gitlab-ci.yml ファイルを作成した後、CI/CD パイプラインを調べてジョブとステージについてより深く理解します。最後に、Runner をインストール・実行・GitLab インスタンスに登録する方法を学びます。
このラボのパート D〜G は、ローカルマシンの管理者権限が必要です。GitLab Runner をローカルにインストールできない場合は、パート D〜G をスキップして、トレーニング環境の共有 Runner を使用することができます。
タスク A. ラボ環境にアクセスする
ウェブブラウザで https://gitlabdemo.com/invite にアクセスします。
Invitation Code フィールドに、インストラクターまたは LevelUp LMS から提供された招待コードを入力します。
Provision Training Environment を選択します。
セルフペースのコースでは GitLab.com のユーザー名が必要です。ユーザー名を確認するには GitLab にアクセスします。
左サイドバーでプロフィール画像を選択します。
表示されるドロップダウンに
@から始まる値があります。これが GitLab のユーザー名です。招待コードを入力すると、ポータルが GitLab.com のユーザー名を求めます。先頭の
@を除いた GitLab.com ユーザー名を入力します。Provision Training Environment を選択します。
ページ下部の My Group を選択します。
GitLab.com の認証情報でサインインします。
トレーニングラボの手順を実行するためのサンドボックスとなる My Test Group グループにリダイレクトされます。
このグループには GitLab Ultimate ライセンスが付与されており、すべての機能を確認できます。個人のユーザー名前空間では、すべての機能にアクセスするために有料サブスクリプションまたは無料トライアルが必要です。
グループにアクセスしたときに 404 エラーが表示される場合は、ラボのプロビジョニング時に入力したユーザー名が原因である可能性があります。GitLab ユーザー名が正しく入力されているかどうかを確認してください。
My Test Group トレーニングサブグループから New project ボタンをクリックします。
タスク B に進みます。
タスク B: プロジェクトを作成する
My Test Group トレーニングサブグループから New project ボタンをクリックします。
Create blank project タイルをクリックします。
Project name テキストボックスに
CICD Demoと入力します。プロジェクトスラッグは自動的に入力されます。自分のプロジェクトに合わせて短い文字列に変更することもできますが、このラボではデフォルトのままにしてください。
Project URL フィールドで URL の後半部分のドロップダウンをクリックし、グループ名(SPT の場合は gitlab-learn-labs/、ILT の場合は training-users/ から始まる)を指していることを確認し、ユーザー名ではないことを確認します。このプロジェクトはユーザーの名前空間ではなく、グループ内に作成してください。
Visibility Level で Private が選択されていることを確認します。
上位グループがプライベートであるため、その下のすべての子グループとプロジェクトもプライベートになります。プロジェクトの可視性レベルの詳細についてはドキュメントをご覧ください。
Initialize repository with a README にチェックを入れます。
Enable Static Application Security Testing (SAST) チェックボックスのチェックが外れていることを確認します。
Create project ボタンをクリックします。
タスク C. .gitlab-ci.yml ファイルを追加する
GitLab CI/CD を使用するには、プロジェクトのルートに
.gitlab-ci.ymlファイルを用意します。.gitlab-ci.ymlファイルには CI/CD パイプラインの設定が含まれています。このセクションでは、シンプルなgitlab-ci.ymlファイルを作成します。
(+) > This directory > New file をクリックして、main ブランチに新しいファイルを作成します。
Filename フィールドに
.gitlab-ci.ymlと入力します。Apply a templateドロップダウンからBashテンプレートを選択します。これによりファイルが事前に入力されます。最小限の
.gitlab-ci.ymlファイルを作成するには:build1より上のすべての行を削除します。test1セクションのecho "For example run a test suite"より下のすべての行を削除します。
ファイルの先頭に以下の行を貼り付けて
buildとtestステージを追加します。stages: - build - testYAML ファイルは 2 スペースでインデントする必要があることに注意してください。Web IDE が 4 スペースのタブを使用しようとする場合があります。コピー・アンド・ペーストしていない場合は、バックスペースで 2 スペースに設定してください。
コミットメッセージを
Creating a simple .gitlab-ci.yml fileに設定し、Target Branch をmainに設定します。Commit changes をクリックします。
変更をコミットした後、次のような
.gitlab-ci.ymlが作成されます:stages: - build - test build1: stage: build script: - echo "Do your build here" test1: stage: test script: - echo "Do a test here" - echo "For example run a test suite"
このファイルは build と test の 2 つのステージを定義しています。build1 ジョブは build ステージ中に実行され、script 内のすべてのコマンドを実行します。test1 ジョブは test ステージ中に実行され、script 内のすべてのコマンドを実行します。
タスク D. パイプラインのステータス・ステージ・ジョブ・GitLab Runner を表示する
.gitlab-ci.ymlファイルをコミットすると、パイプラインが作成されます。パイプラインはジョブとステージで構成されています。前のセクションでは、buildとtestの 2 つのステージを定義しました。これらのステージにはそれぞれscriptで定義されたジョブが含まれていました。このセクションでは、.gitlab-ci.ymlファイルから作成されたパイプラインを表示します。
左側のナビゲーションペインで Build > Pipelines をクリックして、すべてのパイプラインの概要を表示します。概要の一番上の行には、
.gitlab-ci.ymlをコミットした数秒後に開始されたパイプラインが表示されます。行の左側のステータスアイコンには running または passed のいずれかが表示されます。一番上の行のステータスアイコンをクリックして、最新のパイプラインの詳細を表示します。パイプラインのステージを表す列と、各ステージ内のジョブを表すウィジェットが表示されます。
ステージの実行順序は一般的に左から右に読みます。この例では、
buildステージが最初に実行されるステージなので、最左の列に表示されます。
2 つのジョブのそれぞれをクリックして、Web ターミナルの出力を確認します。各ジョブの gitlab-runner を特定します。
ヒント: 各ジョブの出力の上部付近に記載されています。
タスク E. GitLab Runner のローカルインストールを準備する
ジョブは
runnerによって実行されます。プロジェクトがGitLab.comでホストされている場合、アプリケーションをさまざまな環境でビルド・テスト・デプロイするための SaaS Runner が提供されています。場合によっては、独自の Runner をホストしたいこともあります。パート D・E・F では、GitLab インスタンスに Runner をインストールして登録するプロセスを概説します。
使用している OS に応じて、適切なコマンドを実行します:
Linux ターミナルの場合:
sudo gitlab-runner statusmacOS ターミナルの場合:
gitlab-runner statusWindows PowerShell ウィンドウの場合:
cd C:\GitLab-Runner .\gitlab-runner.exe status
コマンドの出力に
gitlab-runner: Service is runningと表示された場合、Runner はすでにシステムにインストールされています。Runner がすでにシステムにインストールされている場合は、以下のパート F にスキップしてください。コマンドがエラーをスローした場合は、次のセクションに進んでください。
タスク F. GitLab Runner バイナリをコンピューターにインストールする
このセクションでは、コンピューターに GitLab Runner をインストールするために必要な手順を概説します。使用しているオペレーティングシステムに一致する手順のみに従ってください。
Linux
このドキュメントの手順 1 と 2 のみに従います。
次のコマンドを実行して gitlab-runner サービスが開始されたことを確認します:
sudo gitlab-runner status
出力に Service is running と表示されれば、gitlab-runner サービスは正常に動作しています。
macOS
このドキュメントの手順 1 と 2 のみに従います。
gitlab-runner をサービスとしてインストールし、サービスを開始します:
cd ~ gitlab-runner install gitlab-runner start次のコマンドを実行して gitlab-runner サービスが開始されたことを確認します:
gitlab-runner status
出力に Service is running と表示されれば、gitlab-runner サービスは正常に動作しています。
Windows
このドキュメントの手順 1 と 2 のみに従います。
管理者権限の PowerShell ウィンドウを開きます:
Start をクリックします。
PowerShellと入力します。Windows PowerShell を右クリックします。
Run as administrator をクリックします。
管理者権限の PowerShell ウィンドウから、gitlab-runner サービスをインストールして開始します:
cd C:\GitLab-Runner .\gitlab-runner.exe install .\gitlab-runner.exe start次のコマンドを実行して gitlab-runner サービスが開始されたことを確認します:
.\gitlab-runner.exe status
出力に Service is running と表示されれば、gitlab-runner サービスは正常に動作しています。
タスク G. プロジェクト専用の特定の Runner を登録する
この時点で、システムに Runner がインストールされています。GitLab がこの Runner を CI/CD ジョブに使用できるようにするには、UI で Runner を登録する必要があります。
CICD Demo プロジェクトで、左側のナビゲーションペインの Settings > CI/CD をクリックします。
Runners セクションまでスクロールして、その隣の Expand ボタンをクリックします。
Project runners セクションで New project runner ボタンをクリックします。
Tags で Run untagged jobs を選択します。その他のオプションは空白のままにします。
タグのない Runner はあらゆるジョブを実行します。Runner が実行できるジョブを制御するには、Runner にタグを定義できます。このプロセスの詳細についてはこちらをご覧ください。
Create runner ボタンをクリックします。
次のページで、オペレーティングシステム(Linux・MacOS・Windows)を選択します。
Step 1 のコマンドをクリップボードにコピーします。
ターミナルに戻り、前のステップでコピーしたコマンドを貼り付けて実行します。インスタンス URL とRunner名はデフォルト値を使用するために Enter を押します(必要に応じてカスタム名を付けることもできます)。
エグゼキュータを求められたら
shellと入力します。OS に応じた適切なコマンドを実行して、gitlab-runner が正しく登録されたことを確認します:
Linux ターミナルの場合:
sudo gitlab-runner listmacOS ターミナルの場合:
gitlab-runner list通常の(管理者権限でない)Windows PowerShell ウィンドウの場合:
cd C:\GitLab-Runner .\gitlab-runner.exe list
Runner が正しく登録されている場合は、次のような出力が表示されます:
gitlab-runner run Executor=shell Token=your-gl-token URL=https://gitlab.com
Windows を使用している場合は、gitlab-runner が PowerShell を起動する正しいコマンドを使用するように設定するために、以下の追加手順に従ってください:
テキストエディタで
C:\GitLab-Runner\config.tomlを開きます。次の行を変更します:
shell = "pwsh"
変更後:
shell = "powershell"ファイルを保存します。
(オプション)タスク H: GitLab Runner の登録解除
デバイスに GitLab Runner を保持したくない場合は、以下の手順に従って GitLab Runner の登録を解除できます。
OS に応じたコマンドを実行して、GitLab Runner の URL とトークンを取得します:
- Linux ターミナルの場合:
sudo gitlab-runner list - macOS ターミナルの場合:
gitlab-runner list - 通常の(管理者権限でない)Windows PowerShell ウィンドウの場合:
cd C:\GitLab-Runner .\gitlab-runner.exe list- Linux ターミナルの場合:
URL とトークンを使用して、登録解除コマンドを実行します:
gitlab-runner unregister --url "https://gitlab.example.com/" --token t0k3n
ラボガイド完了
このラボ演習が完了しました。このコースの他のラボガイドを見ることができます。
ご提案は?
GitLab CI/CD のハンズオンガイドに変更を加えたい場合は、マージリクエストを通じて変更を送信してください!
