Skip to content

Instantly share code, notes, and snippets.

@skyriser
Created June 7, 2016 09:01
Show Gist options
  • Save skyriser/0c86b236d8b1ddab7324bdfaca5eb4e4 to your computer and use it in GitHub Desktop.
Save skyriser/0c86b236d8b1ddab7324bdfaca5eb4e4 to your computer and use it in GitHub Desktop.
Travis CI with AWS Code Deploy メモ

Travis CI with AWS Code Deploy メモ

IAM サービスロールの作成

ロールは2つ必要となる。

  • EC2用
  • CodeDeploy用

EC2用

EC2のサービスロールとして作成する。

EC2用はEC2のインスタンス起動時に必ず割り当てること。 すでに起動してしまった場合は削除するしかない。

AWSCodeDeployRoleの管理ポリシーをアタッチする。

CodeDeploy用

CodeDeployのサービスロールとして作成する。 AWSCodeDeployRoleの管理ポリシーをアタッチする。

またTrustedEntiries(信頼関係)を編集し、

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "codedeploy.ap-northeast-1.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

などと入力する。利用するリージョンによって変更すること。

CodeDeployAgentのインストール

$ aws s3 cp s3://aws-codedeploy-ap-northeast-1/latest/install . --region ap-northeast-1
$ chmod +x ./install
$ ./install auto

EC2ロールが正しく設定されていればCredentialの入力は求められないはず。 (面倒になってAnsibleでCredentialを送りつけてしまったため真相の程は不明)

Travis CIからのデプロイ実行

$ travis setup codedeploy

してから

deploy:
- provider: codedeploy
  access_key_id: AKIAXXXXXXXXX
  region: ap-northeast-1
  application: XXXXXXX
  deployment_group: XXXXXXX
  on:
    branch: develop
after_deploy:
- /bin/bash ci/after_deploy.sh

記述はこんな感じで。 access_keyの入力は

travis encrypt --add deploy.secret_access_key

で暗号化される。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment