公開:2025年5月27日
7分で読めます
CI/CD変数の概要、DevSecOpsにおいてCI/CD変数が重要な理由、活用するためのベストプラクティスについてご紹介します。
「GitLab入門」シリーズへようこそ。このシリーズでは新たにGitLabを使い始める方向けに、GitLab DevSecOpsプラットフォームに慣れ親しむために役立つ内容をお届けします。
以前の記事で、GitLab CI/CDについて取り上げました。今回はCI/CD変数の世界をさらに深く掘り下げ、その力を最大限に引き出す方法について説明します。
CI/CD変数とは、GitLab環境内においてさまざまなレベル(プロジェクト、グループ、インスタンスなど)で定義できる動的なキーと値のペアのことです。.gitlab-ci.yml
ファイルで使用できる値のプレースホルダーとして機能するため、パイプラインをカスタマイズしたり、機密情報を安全に保存したりできるほか、CI/CD設定を管理しやすくなります。
CI/CD変数の使用には、以下のような多くのメリットがあります。
柔軟性 - 主要なCI/CDスクリプトに手を加えることなく、さまざまな環境、設定、またはデプロイ対象にパイプラインを簡単に適応させられます。
セキュリティ - API キー、パスワード、トークンのような機密情報を安全に保存して、コード内で直接公開されることのないようにします。
保守性 - 変数の値を一元化することで、CI/CDの設定がきれいに整理された状態に保たれるため、更新や修正作業を簡単に行えます。
再利用性 - 一度定義した変数は複数のプロジェクトで再利用できるため、重複が減り、一貫性を保ちやすくなります。
GitLabでは、次のようなさまざまなスコープでCI/CD変数を定義し、その可視性と有効範囲を制御できます。
プロジェクトレベルの変数 - 単一のプロジェクト専用の変数で、次のようなプロジェクト固有の設定を保存するのに適しています。
DPROD_DEPLOY_URL
という名前の変数を作成し、https://mywebapp.com
という値を格納します。グループレベルの変数 - グループレベルの変数を作成すると、GitLabグループ内の全プロジェクトで共有されます。次のような複数のプロジェクトに共通する設定がある場合に便利です。
DOCKER_HUB_API_KEY
という名前の変数を作成し、対応するAPIキーの値を格納します。インスタンスレベルの変数 - GitLabインスタンスの全プロジェクトで利用可能な変数です。通常は、次のような組織全体に適用するグローバル設定がある場合に使用します。
DEFAULT_DOCKER_IMAGE
という名前の変数を作成し、ubuntu:latest
という値を格納します。CI/CD変数は以下の手順で定義できます。
プロジェクト、グループ、またはインスタンスで、設定 > CI/CDボタンの順にクリックします。
変数セクションに移動します。
変数を追加をクリックします。
キー(例:API_KEY
)と値を入力します。
機密情報を扱う場合は、必要に応じて変数を保護ボックスをオンにします。オンにすると、保護ブランチまたは保護タグで実行されているパイプラインでのみ、変数が利用可能になります。
必要に応じて、変数をマスクボタンをオンにすると、ジョブログで変数の値が非表示になります。これにより、誤って公開されるのを防げます。
変数を保存をクリックします。
.gitlab-ci.yml
ファイルでCI/CD変数を使用する方法は簡単です。変数名の前にプレフィックスとして$
を付けるだけです。
deploy_job:
script:
- echo "Deploying to production..."
- curl -H "Authorization: Bearer $API_KEY" https://api.example.com/deploy
GitLabでは、パイプラインでご利用いただけるように、定義済みのCI/CD変数を一式ご用意しています。これらの変数は、現在のパイプラインやジョブ、プロジェクトなどに関する情報を提供します。
その中でも、使用されることの多い定義済み変数をいくつかご紹介します。
$CI_COMMIT_SHA
:現在のパイプラインのコミットSHA。
$CI_PROJECT_DIR
:プロジェクトの複製先のディレクトリ。
$CI_PIPELINE_ID
:現在のパイプラインのID。
$CI_ENVIRONMENT_NAME
:デプロイ先の環境名(該当する場合)。
機密性の高い変数は安全に管理する:APIキーやパスワード、その他の機密情報を扱う場合は、保護およびマスクされた変数を使用しましょう。
値のハードコーディングは行わない:設定値を保存する際は変数を使用しましょう。そうすることで、パイプラインの柔軟性と保守性が高まります。
変数を整理する:変数をわかりやすい名前を付けて、関連する変数をまとめると、うまく整理できます。
適切なスコープを選ぶ:希望する変数の用途と可視性に基づいて、適切なスコープ(プロジェクト、グループ、またはインスタンス)を選びましょう。
CI/CD変数は、GitLabパイプラインをカスタマイズし、保護するための強力なツールです。変数を使いこなし、各スコープを理解することで、より柔軟で保守しやすく、効率的なワークフローを作成できます。
開発プロジェクトにおいて、GitLabの機能を活用していただくために必要な情報をお届けしました。ご紹介した情報がお役に立てば幸いです。
Duo Enterpriseが搭載されたGitLab Ultimateの無料トライアルに今すぐ申し込んで、CI/CD変数を早速ご利用ください。
「GitLab入門」シリーズのその他の記事もぜひご覧ください。