AWS — CodeDeploy на EC2 Instance

Пример создания AWS Pipeline, где CloudWatch отслеживает состояние репозитория в CodeCommit, при изменении запускает CodeBuild который выкачивает содержимое репозитория и загружает его в S3 Bucket. CodeDeploy обращается к EC2 Instance и codedeploy-agent скачивает с S3 архив с содержимым репозитория и выполняет действия, описанные в скрипте.

 

S3 Bucket необходим только для передачи артефакта от CodeBuild до codedeploy-agent'а на EC2 инстансе, так как агент не может скачивать напрямую репозиторий с CodeCommit.

 

CloudWatch - Logs - Action - Create log group

CodeBuild

CodeDeploy

CodeDeploy -> Applications -> Create application
Deployment Groups -> Create deployment group

Environment configuration - выбираем EC2 Instance

Теперь по уникальному имени и значению тега нужно определить инстанс. Для его, если не создавали тег, то добавьте его к EC2 Instance. В данном примере тег с именем "ENV" и значением "Staging"

Проверьте количество уникальных совпадений.

Load balancer - снимаем галочку, в данном примере один EC2 Instance

Deployment group deployment -> Create deployment

https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html

https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/codedeploy-agent-operations-install-linux.html

sudo service codedeploy-agent start

service codedeploy-agent status

wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/latest/install

Создать роль для EC2 !!!!!!!!!!!!!!!!

CodeDeploy-EC2

Добавляем следующую полиси:

CodeDeploy-EC2-Permissions

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
0 0 vote
Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments