Amazon Linux2にJenkinsをインストールする

ローカル環境でJenkinsを試しましたが、エラーになるケールがあったため、検証のために、Amazon Linux2にJenkinsをインストールしてみました。 構築するJenkinsの環境 Amazon Linux2 AMI ID : ami-0f27d081df46f326c AMI名 : amzn2-ami-hvm-2.0.20210303.0-x86_64-gp2 Jenkins version : Jenkins 2.284 EC2インスタンス作成及びJenkinsインストール EC2インスタンス作成ととセキュリティグループ設定 一番上に表示されているAMIを利用して作成しました。 Jenkinsアクセス用の8080ポートと、SSH接続用の22ポートを設定します。 Jenkinsインストール Jenkins公式サイトのインストール方法 の順番通りに実行。 sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key sudo yum upgrade sudo yum install jenkins java-1.8.0-openjdk-devel.x86_64 sudo systemctl daemon-reload Jenkins 実行 sudo systemctl start jenkins サービス実行状態を確認し、active状態になっていることを確認します。 Jenkins 初期設定 Jenkinsへアクセスします。http://xxxxxxxxxx:8080/ 初期パスワードを入力します。 プラグインをインストールします。 初期ユーザーを登録します。 インスタンスURLを設定します。 設定が完了しました。 メイン画面が表示されました。 ...

2021-03-17 · bokyung

CircleCIのContextsを利用し、AWS ECSへデプロイする

springboot + kotlinで開発したbackendAPIをCircleCIを利用してデプロイしています。 staging/production環境毎の環境変数はContextsを利用すればもっと簡単に設定することが可能です。 Contexts設定 Organization Settings > Contexts でサービスの各環境毎の環境変数を設定します。 staging/productionの環境名で追加しました。 staging環境の環境変数です。 ecrとecsのorbsを利用するため、AWSの環境変数を追加し、プロジェクト内で共通で利用するためにSERVICE_PREFIXを追加しました。 CircleCI config.yml 設定 build-and-push-image backend-buildを実行します。 releaseブランチの場合、build-and-push-image-stagingを実行します。 masterブランチの場合、build-and-push-image-productionを実行します。 contextにはCircleCI Contextsで指定した名前を指定します。 version: 2.1 orbs: aws-ecr: circleci/aws-ecr@6.15.3 aws-ecs: circleci/aws-ecs@1.4.0 gradle: circleci/gradle@2.2.0 executors: openjdk-executor: docker: - image: circleci/openjdk:14-jdk-buster-node-browsers ..... jobs: backend-build: executor: openjdk-executor ..... workflows: build-deploy: jobs: - backend-build - aws-ecr/build-and-push-image: name: build-and-push-image-staging requires: - backend-build context: DEMO_STAGING attach-workspace: true checkout: false repo: '${SERVICE_PREFIX}' tag: 'latest,${CIRCLE_SHA1}' filters: branches: only: - /release\/.*/ - aws-ecr/build-and-push-image: name: build-and-push-image-production requires: - backend-build context: DEMO_PRODUCTION attach-workspace: true checkout: false repo: '${SERVICE_PREFIX}' tag: 'latest,${CIRCLE_SHA1}' filters: branches: only: - master deploy-service-update backend-buildを実行します。 releaseブランチの場合、build-and-push-image-stagingの実行が完了されたらdeploy-service-update-stagingを実行します。 masteブランチの場合、build-and-push-image-productionの実行が完了されたらbuild-and-push-image-productionを実行します。 contextにはCircleCI Contextsで指定した名前を指定します。 - aws-ecs/deploy-service-update: name: deploy-service-update-staging requires: - build-and-push-image-staging context: DEMO_STAGING family: '${SERVICE_PREFIX}-backend' cluster-name: '${SERVICE_PREFIX}-backend' service-name: '${SERVICE_PREFIX}-backend-ec2-service' container-image-name-updates: 'container=${SERVICE_PREFIX}-backend,tag=${CIRCLE_SHA1}' filters: branches: only: - /release\/....

2021-02-02 · bokyung