1.はじめに
2024年7月にCodeCommitの新規利用廃止が発表されたことを受けて、今後のソースコード管理構成を考え直す機会がありました。今回はCodeCommitの代替としてGitLab Self Managedを採用した場合のCodePipeline設定手順を載せます。
GitLab Self ManagedはEC2上でホストすることが可能であり、SaaS版のGitLabと比較すると、ソースコードを外部に持ち出す必要がないというセキュリティ面でのメリットがあります。
目次
- はじめに
- 前提条件
-
CodePipeline設定手順
3-1. ホストの作成
3-2. 接続の作成
3-3. CodePipelineの作成 - まとめ
- 【番外編】GitLab個人用アクセストークンの取得方法
2.前提条件
- 今回GitLab Self Managedは、EC2上にホストされている前提で話を進めていきます。
GitLabをこれからインストールする場合は以下の公式サイトを参考にしてください。
3.CodePipeline設定手順
まずは任意のユーザーでAWSマネジメントコンソールへログインしてください。
3-1.ホストの作成
▼デベロッパー用ツールのメニューバーから接続をクリックします。
▼必要な設定値を入力し、ホストを作成をクリックします。
- ホスト名:任意のホスト名
- プロバイダー:GitLab Self Managed
- URL:GitLab Self ManagedのURL
- VPC設定:非VPC
注意
ホストに登録できるURLは "https" のみになります。
"http" で登録した場合は【URL の形式が無効です。URL は「https://」で始める必要があります。】という警告が出るので注意しましょう。
HTTPS接続の実現方法
私はApplication Load Balancer (ALB) を作成することでHTTPS接続を実現しました。
▼ホストが作成されたら、ホストをセットアップをクリックし、GitLab Self Managedとホストを同期させます。
▼ここで個人用アクセストークンを求められます。アクセストークンはGitLab側で払い出したものを登録してください。
GitLabのアクセストークン取得方法はこちら
3-2.接続の作成
続いて接続を作成していきます。
▼デベロッパー用ツールのメニューバーから接続を選択した後、接続タブを開きます。その後、接続を作成をクリックします。
▼必要な項目を入力し、GitLab Self Managedに接続をクリックします。
- プロバイダー:GitLab Self Managed
- 接続名:任意の接続名
- URL:GitLabのURL
- ホストを選択:先程作成したホストを選択
▼以下のようなウィンドウが立ち上がるのでAuthorize~をクリックします。
3-3.CodePipelineの設定
個々からは、CodePipelineの設定を行っていきます。
▼デベロッパー用ツールのメニューバーからパイプラインをクリックします。
▼Build custom pipelineを選択し、次にをクリックします。
▼CodePipelineの作成に必要な設定値を入力し、次へをクリックします。
- パイプライン名:任意のパイプライン名
- 実行モード:キュー(パイプラインV2が必須)
- サービスロール:新しいサービスロール
▼ソースステージの設定を行い、次にをクリックします。
今回はmainブランチへのプッシュをトリガーにします。
- ソースプロバイダー:GitLab Self Managed
- 接続:手順②で作成した接続を選択
- リポジトリ名:ソースステージとして登録したいリポジトリを選択
- デフォルトブランチ:任意のブランチを選択(今回はmainブランチを選択)
▼今回はBuildステージを設定しないので、ビルドステージをスキップをクリックします。
▼デプロイステージでは、デプロイ先をS3バケットにし、指定したバケット内にソースコードを展開します。デプロイ設定値を入力した後、次にをクリックします。
- デプロイプロバイダー:Amazon S3
- リージョン:デプロイ先のバケットが存在するリージョン
- 入力アーティファクト:SourceArtifact(デフォルト)
- バケット:デプロイ先のバケット名
- S3オブジェクトキー:バケット内に保存する時のファイル名を指定
※デプロイする前にファイルを抽出するにチェックを入れると、zipファイルが解凍された状態でデプロイされます。(詳しくはこちら)
▼最後に設定値を確認し、問題なければパイプラインを作成するをクリックします。
(中略)
▼CodePipelineが作成に成功すると、ソースステージおよびデプロイステージで成功のステータスが表示されます。
▼デプロイ先のS3バケットを確認すると、zipファイルが作成されています。
設定手順は以上になります!
4.まとめ
今回GitLab Self ManagedをCodePipelineのソースステージに設定するまでの手順をまとめました。私の中では次の2点が設定するうえでの注意点になるのではないかと思います。
- CodePipelineを作成する前にホストと接続を作成する必要がある。
→GitLabの個人アクセストークンを間違えず登録する - ホストに登録できるURLはHTTPSのみが許可されている。
→ALBを作成してGitLabサーバーの前に配置する
5.【番外編】GitLab個人用アクセストークンの取得方法
① GitLabにサインインしたら、ユーザーアイコンから設定を選択します。
④任意のトークン名を入力し、apiにチェックを入れた後、「パーソナルトークンを作成」をクリックします。
⑤作成したAccess Tokenをコピーします。
※Access Tokenは一度しか表示されないので、忘れずコピーしておきましょう。
⑥コピーしたAccess TokenをAWSの方で登録します。
AWS側の設定に戻る