Configuração de implantação automática de código com CodeDeploy - mvneves/codedeploy-example GitHub Wiki
Essa página é destinada aos alunos que estão usando uma conta AWS privada. Se você está usando uma conta AWS Academy, seguir o roteiro correspondente.
- Acessar a console do serviço IAM em https://console.aws.amazon.com/iam
- Criar uma nova política de acesso:
- Acessar a opção Polices / Políticas no menu e depois criar no botão Create policy / Criar política
- Clicar na aba JSON e colar o seguinte conteúdo:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
- Depois, clicar em Review policy / Revisar política
- Especificar o nome CodeDeployDemo-EC2-Permissions e clicar em Create policy / Criar política
- Acessar a opção Roles / Funções no menu lateral e depois criar no botão Create role / Criar função
- Escolher AWS service / Serviço da AWS e, da lista que aparecerá abaixo, escolher EC2
- Clicar em Next / Próximo: permissões
- Na página Attach permissions policy / Attach políticas de permissões, escolher o nome da política criada anteriormente (com nome CodeDeployDemo-EC2-Permissions)
- Clicar em Next / Próximo até a etapa final, escolher o nome do role CodeDeployDemo-EC2-Instance-Profile e clicar em Create role / Criar função
- Acessar a console do serviço EC2
- Iniciar o wizard através do botão Launch Instance / Executar instânica;
- Escolher o sistema operacional Ubuntu Server 18.04 LTS e tipo t2.micro (Free-tier eligible);
- Na etapa Step 3: Configure Instance Details, atribuir para a VM o IAM role criado anteriormente (com nome CodeDeployDemo-EC2-Instance-Profile);
- Na etapa Step 5: Add Tags, atribuir uma tag para a VM (ex: usar chave codedeploy e valor producao)
- Na etapa Step 6: Configure Security Group, configurar o security group para abrir a porta 8080
- Baixar chave de acesso (ou usar uma existente se já tiver a chave em sua máquina local);
- Conectar via SSH na VM e realizar a instação do agente do CodeDeploy:
sudo apt-get update sudo apt-get install -y ruby wget cd /home/ubuntu wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/latest/install chmod +x ./install sudo ./install auto
- Verificar se o agente está executando:
sudo service codedeploy-agent status
- Obter o código fonte de https://github.com/mvneves/codedeploy-example
- Gerar um arquivo aplicacao.zip contendo o conteúdo do repositório e fazer upload em um bucket do S3
- Acessar a console do IAM: https://console.aws.amazon.com/iam/.
- Acessar a opção Roles / Funções no menu lateral e clicar em Create role / Criar função
- Escolher AWS service / Serviço da AWS e, da lista que aparecerá abaixo, escolher CodeDeploy
- Na opção Select your use case / Selecione seu caso de uso, selecionar CodeDeploy
- Clicar em Next / Próximo até a última etapa
- Por fim, atribuir o nome do role CodeDeployServiceRole e clicar em Create role / Criar função
- Acessar o serviço CodeDeploy
- Acessar a opção Applications / Aplicativos no menu lateral e clicar em Create application / Criar aplicativo
- Escolher um nome qualquer para a aplicação, escolher a plataforma EC2/On-premises / EC2/local e clicar botão Create application / Criar aplicativo
- Acessar a aplicação récem criada e clicar em Create deployment group / Criar grupo de implantação
- Atribuir um nome para o grupo (ex: producao)
- Selecionar o service role criado anteriormente: CodeDeployServiceRole
- Selecionar o tipo do deploy como In-place / No local
- Escolher a configuração do ambiente como Amazon EC2 Instances / Instâncias do Amazon EC2 e escolher a mesma tag atribuída para a VM (ex: chave codedeploy e valor producao)
- Escolher a opção nunca na etapa Instalar o agente do AWS CodeDeploy
- Desabilitar a opção Enable load balancing / Habilitar balanceamento de carga
- Clicar em Create deployment group
- Navegar novamente para a aplicação criada no serviço CodeDeploy
- Na aba Deploys / Implantações, clicar no botão Create deploy / Criar implantação
- Escolher o Deployment group / Grupo de implantação criado anteriormente (ex: producao)
- Escolher a opção de obter o código fonte do S3
- Especificar o caminho do arquivo .zip no S3 (ex: s3://nome-do-bucket/aplicacao.zip)
- Na seção Additional deployment behavior settings / Configurações adicionais do comportamento de implantação, marcar a opção Não causar a falha da implantação... e a Substituir o conteúdo
- Clicar em Create deployment / Criar implantação
- Acompanhar o progresso da implantação e, quando concluída, verificar se a aplicação subiu com sucesso (Obs: acessar o IP público da VM usando a porta 8080 pelo browser)
- Create a Service Role for CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html
- Create an IAM Instance Profile for Your Amazon EC2 Instances (Console): https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-iam-instance-profile.html