アプリケーションシナリオ
GitLab ランナーの概要
GitLab Runner は、GitLab CI/CD タスクを実行するためのツールであり、Linux、macOS、および Windows で利用でき、パッケージ マネージャー、バイナリ ファイル、または Docker イメージを介してインストールできます。GitLab CI と組み合わせて使用すると、チームは手動介入を最小限に抑えて CI/CD プロセスを自動化できます。
GitLab Runner は、Shell Runner、Docker Runner、Kubernetes Runner など、複数の Runner タイプをサポートしています。シェル ランナーは最も基本的なタイプのランナーで、ランナーが配置されているマシン上でターミナルを開き、ジョブで定義されたコマンドを実行します。Docker Runner は、Docker コンテナーでジョブを実行するランナー タイプです。つまり、ホスト マシンにソフトウェアや依存関係をインストールすることなく、特定のコンテナー環境でジョブを実行できます。Kubernetes Runner は、Kubernetes クラスター内でジョブを実行する Runner タイプで、ジョブを実行するための Pod を作成し、リソースを自動的にクリーンアップします。
次のプロセスでは、GitLab Runner と GitLab インスタンスの関係について説明します。
GitLab Runner を使用したプロジェクト CI/CD パイプラインの実行
以下では、GitLab Runner サービスを Huawei Cloud Yaoyun Server L インスタンスにデプロイし、簡単に使用する方法を示します。
この方法は、Porttainer アプリケーション イメージを使用して実行されます。
リソースとコストの計画
この実践では、Portainer イメージを使用します。
この実践では、次のリソース計画を例として使用します。実際のニーズに応じて調整できます。
リソース | 構成 | 説明する |
---|---|---|
Yunyao クラウド サーバー L インスタンス | - CPU: 2コア - メモリ: 2GB - システムディスク: 40GiB | Porttainer アプリケーション イメージを実行するための最小構成は、2 GB の 2 コアと 40 GiB のシステム ディスクです。ニーズに基づいて Yunyao Cloud Server L インスタンスを選択することをお勧めします。 |
鏡 | ポーテイナー | Porttainer アプリケーション イメージを選択します。 |
セキュリティグループ | インバウンドルール: - プロトコル: TCP - ポート: 80、443、8093 - 送信元アドレス: 0.0.0.0/0 | - 80: HTTP プロトコルを使用した Web サイトへのアクセスを許可します。- 443: HTTPS プロトコルを使用した Web サイトへのアクセスを許可します。- 8093: GitLab Runner サービスへのアクセスを許可する |
ドメイン名 | ドメインテスト.com | - 個人的な開発やテストのみに使用する場合は、ドメイン名を追加する必要はありません。- アプリケーションが外部に公開されている場合は、クラウド サーバーのドメイン名を追加して解決してください。 |
作業手順
Yunyao Cloud Server L インスタンスを購入して構成する
- Yunyao Cloud Server L インスタンスコンソールにログインします。
- [リソースの購入] をクリックし、ドロップダウン リストから [Yunyao クラウド サーバー L インスタンスの購入] または [Yunyao サービス ポートフォリオの購入] を選択します。
- クラウドサーバーのリソースを設定します。この例では、「Yunyao クラウド サーバー L インスタンスを購入」を選択した場合を例にしています。
パラメータ | 説明する |
---|---|
エリア | 異なるリージョンにある Yunyao Cloud Server L インスタンスのイントラネットは相互に接続されていません。ネットワーク遅延を軽減し、アクセス速度を向上させるために、ビジネスに近いエリアを選択してください。 |
シーンミラーリング | Porttainer アプリケーション イメージを選択します。 |
パッケージ仕様 | パッケージ仕様を選択してください。最小構成は 2 コア 2GB、システムディスク 40GiB です。 |
インスタンス名 | 識別しやすいようにインスタンス名をカスタマイズしてください (Porttainer-Example など)。 |
追加サービス(オプション) | これは、「Yunyao クラウド サーバー L インスタンスを購入する」が選択されている場合にのみサポートされます。必要に応じて、データ ディスク、ホスト セキュリティ、クラウド バックアップなどの追加サービスを選択します。 |
購入期間 | 1 回の購入の最小期間制限は 1 か月、最大期間制限は 3 年です。 |
購入数量 | 購入した Yunyao Cloud Server L インスタンスの数を設定します。 |
- 「今すぐ購入」をクリックして注文詳細ページに入ります。インターフェイスのプロンプトに従って、構成情報を確認し、同意書を読んで確認してください。
- 「支払いに進む」をクリックし、ページの指示に従って支払いを完了します。
- 「Huawei Cloud Yunyao Cloud Service Solution Console に戻る」をクリックして、作成された Yunyao Cloud Server L インスタンスを表示します。
Yunyao Cloud Server L インスタンスのパスワードを設定する
- Yunyao Cloud Server L インスタンス カードをクリックします。
- 「概要」ページの「イメージ情報」で「管理」をクリックして管理画面にログインし、アプリケーションイメージが正常に起動するか確認してください。
**注意:** アプリケーション イメージの起動中に、パスワードのリセット、Yunyao Cloud Server L インスタンスの再起動または電源オフを行うと、アプリケーション イメージ管理インターフェイスのログインが異常になります。管理インターフェイスに通常のブート インターフェイスまたはログイン インターフェイスが表示された場合、アプリケーション イメージが正常に起動されたことを意味します。それ以外の場合は、1 ~ 2 分間辛抱強く待ってから、もう一度試してください。4. Yunyao Cloud Server L インスタンスの管理者 root のパスワードを設定するには、「パスワードの設定/リセット」
を参照してください。
セキュリティグループの構成
セキュリティ グループの受信アクセス ルールを構成して、アプリケーション イメージへの通常のアクセスを確保します。
- Yunyao Cloud Server L インスタンス カードをクリックしてリソース ページに入ります。
- 左側のリストで「Yunyao Cloud Server L Instance」をクリックし、クラウドサーバー名をクリックして、クラウドサーバーの詳細ページに入ります。
- 「セキュリティグループ」タブを選択し、「ルールの追加」をクリックし、以下のルールを追加します。この例では基本的なルールのみを追加します。必要に応じてさらにルールを追加できます。
優先度 | 戦略 | タイプ | プロトコルポート | 送信元アドレス | 説明する |
---|---|---|---|---|---|
100 | 許可する | IPv4 | TCP:8093 | 0.0.0.0/0 | GitLab Runner サービスへのアクセスを許可します。 |
100 | 許可する | IPv4 | TCP:443 | 0.0.0.0/0 | HTTPS プロトコルを使用したアプリケーション管理インターフェイスへのアクセスを許可します。 |
100 | 許可する | IPv4 | TCP:80 | 0.0.0.0/0 | HTTP プロトコルへのアクセスを許可して、アプリケーション管理インターフェイスにアクセスします。 |
- **図 1 **構成結果 便宜上、ここではすべてのポートを開いてあります。運用環境ではこれを構成しないでください。あまり安全ではありません。
ポーターの初期化
- サーバーの「概要」ページの「イメージ情報」で「管理」をクリックして管理インターフェースにログインします。Porttainer の初期化には一定の適時性があり、ユーザーをすぐに作成できない場合は、次のプロンプトが表示されます。クラウドサーバーにログインし、コマンドsudo docker restart porttainerを実行して Porttainerを再起動し、すぐにユーザーを作成してください。
- Porttainer 管理者のユーザー名とパスワードを設定し、「ユーザーの作成」をクリックします。データをバックアップしている場合は、「バックアップから Porttainer を復元」設定項目で、バックアップ データをローカルにアップロードして、Porttainer 環境を迅速にセットアップできます。
- 「ホーム」メニューを選択し、ローカル プロジェクトをクリックして、Docker のビジュアル管理に Porttainer の使用を開始します。
この時点で、完全な Porttainer アプリケーション Yunyao Cloud Server L インスタンスを取得しました。Porttainer の使用を開始できます。このプラットフォーム上で GitLab Runner プラットフォームのデプロイを続けてみましょう。
Porttainer を使用して GitLab Runner コンテナをデプロイする
以下では、GitLab Runner コンテナのデプロイを例として、Docker のビジュアル管理に Porttainer を使用する方法を紹介します。より詳細な操作方法については、公式 Web サイトのガイダンスを参照してください。
GitLab Runnerコンテナの作成
- 「コンテナ」メニューを選択し、「コンテナの追加」をクリックして GitLab Runner コンテナを追加します。
- GitLab Runner コンテナーのパラメーターを図のように構成します。
- ①名前:カスタマイズされたコンテナ名
- ②イメージ: コンテナイメージ名。たとえば、GitLab Runner/tb-postgres を設定すると、システムは DockerHub 内の GitLab Runner の最新イメージを自動的にプルします。
- ③「新しいネットワークポートの公開」をクリックし、ポート8093を追加してGitLab Runnerサービスに正常にアクセスできることを確認します。
- ④再起動ポリシー:コンテナがどのような状況で停止しても常に自動的に再起動するように、「常に」を選択することをお勧めします。
GitLab Runner のサービスには他のサービスと比べて Web アクセス ページがありません。次に、ディレクトリのマウントを指定する必要があります。
上記の設定は基本的に次の命令と同等です。
docker run -d --name gitlab-runner -p 8093:8093 --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
- 「コンテナのデプロイ」をクリックして、GitLab Runner コンテナを作成します。
GitLab Runner サービスの使用
GitLab Runner をデプロイした後、Porttainer プラットフォーム上のコンテナーのステータスを確認するだけでなく、サーバーに入り、コマンドを使用して実行中のdocker ps -a
すべてのコンテナーを表示することもできます。
GitLab Runner コンテナが正常に起動することを確認したら、Git リポジトリに Runner を登録しましょう。
GitLab で、左側のメニューの [設定] をクリックし、[CI/CD] をクリックして [
ランナー] メニュー パネルを開き、ランナーの登録に使用するトークンをコピーします。
SSH を使用してサービスに入り、いくつかのコマンドを実行し、プロジェクトのトークンを登録します。
docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "https://gitlab.com/" \
--registration-token "YOUR_TOKEN" \
--description "docker-runner" \
--tag-list "docker,global" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
登録が成功すると、このページで使用できる緑色のランナーが表示されます。
次に、CI/CD パイプライン ファイルを作成します。このファイルはデフォルトでプロジェクトのルート ディレクトリにあり、次の名前が付けられます。.gitlab-ci.yml
variables:
USER_NAME: 'fizz'
default:
tags:
- docker
job1:
variables:
USER_NAME: 'Tom'
script: echo 'hello' $USER_NAME
送信後、パイプラインが自動的に作成されます。
ログを開くと確認できます。
詳細なコンテンツについては、GitLab CI/CD コラム
https://blog.csdn.net/github_35631540/category_10804590.htmlを参照してください。