自前で管理しているgitlab-ceのレポジトリを、AWS CodeCommitにミラーリングした時の流れをまとめてみました。
今までは、EC2上にgitlab-runnerを走らせてCI/CDを頑張ってきましたが、主のプラットフォームをAWSに移していってるし、CI/CDはAWS側に寄せて行こうと思い、まずはレポジトリミラーリングから始めてみた。
- 受け側を作る(AWS CodeCommit)
- ミラーリング用IAM設定を行う(AWS)
- 送る側を設定する(gitlab-ce)
AWS CodeCommitの受け側を作る
AWS CodeCommitを開いて、「レポジトリを作成」を行います
- レポジトリ名は仮に「codecommit001」で作ると、以下のレポジトリURLが発行されるので、これをメモします(後で使います)
ミラーリング用IAM設定を行う
IAMポリシーの作成
- サービスは、CodeCommitを選択
- アクションは、GitPullとGitPushのみでOK
- ARNの編集で先ほど作成したcodecommitのレポジトリを指定します
IAMユーザーの作成
- ミラーリングに使うIAMユーザーを作成し、先ほどのポリシーを割り当てます
- 作成後に、IAMユーザーの認証情報タブで以下の認証情報を生成します(HTTPSでの認証の場合は、「HTTPS Git認証情報の作成」)
- ここで生成された、ユーザー名、パスワードを後で利用します
送る側を設定する
- gitlab-ceのミラーしたいプロジェクトの、「設定 > レポジトリ」を開き、以下のように、ミラー先のCodeCommitの情報を入力し、「レポジトリのミラー」を実行
反映確認
しばらくすると、以下のようにgitlab-ceのレポジトリがミラーされていることが確認できます。
この後は
ここまでできると、gitlab-ceのレポジトリの更新がCodeCommitにミラーされるので、CodePipelineで、CodeCommit/CodeBuild/CodeDeploy等によるCI/CDもできるようになりますね