Como faço para executar o agente CodeDeploy com um perfil de usuário que não é o perfil raiz?

6 minuto de leitura
0

Quero executar o agente do AWS CodeDeploy com um perfil de usuário que não seja o perfil raiz.

Breve descrição

Para executar o atendente CodeDeploy com um perfil de usuário que não seja o perfil raiz, faça o seguinte:

1.    (Pré-requisito) Verifique se o atendente CodeDeploy está instalado na sua instância do Amazon Elastic Compute Cloud (Amazon EC2).

2.    Altere o usuário em seu arquivo de configuração do atendente CodeDeploy e conceda ao usuário as permissões necessárias.

3.    Crie um modelo de configuração de lançamento do Amazon EC2 e um grupo do Auto Scaling para automatizar o processo de mudança de usuário.

4.    Teste a configuração verificando se o atendente CodeDeploy está instalado e em execução com o usuário correto em sua instância do Amazon EC2.

Observação: essas etapas se aplicam a instâncias que usam o Amazon Linux 1 ou Amazon Linux 2 Amazon Machine Image (AMI). No entanto, o Amazon Linux 1 AMI está em status de suporte de manutenção. Nesse status, a AMI recebe apenas atualizações de segurança críticas para um conjunto reduzido de pacotes. Também não é mais garantido que a AMI ofereça suporte aos novos recursos da plataforma EC2 ou aos novos recursos da AWS.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está usando a versão mais recente da AWS CLI.

(Pré-requisito) Verifique se o atendente CodeDeploy está instalado em sua instância do Amazon EC2

Siga as instruções em Verificar se o atendente CodeDeploy está sendo executado no Guia do usuário do CodeDeploy.

Para obter instruções sobre como instalar o atendente CodeDeploy, consulte Instalar o atendente CodeDeploy.

Altere o usuário em seu arquivo de configuração do atendente CodeDeploy e conceda ao usuário as permissões necessárias

1.    Conecte-se à sua instância do Amazon EC2 usando SSH.

2.    Pare o atendente host do CodeDeploy que está instalado na instância executando o seguinte comando:

sudo service codedeploy-agent stop

3.    Altere o usuário no arquivo de configuração do atendente CodeDeploy executando o seguinte comando sed stream editor:

Importante: substitua ec2-user pelo nome de usuário no qual você deseja que o atendente host CodeDeploy seja executado.

sudo sed -i 's/""/"ec2-user"/g' /etc/init.d/codedeploy-agent

Importante: para as AMIs do Amazon Linux 2, você também deve executar os dois comandos a seguir:

sudo sed -i 's/#User=codedeploy/User=ec2-user/g' /usr/lib/systemd/system/codedeploy-agent.service
sudo systemctl daemon-reload

4.    Conceda ao novo usuário permissões para os diretórios necessários executando os dois comandos a seguir:

Importante: substitua ec2-user pelo nome de usuário no qual você deseja que o atendente host CodeDeploy seja executado.

sudo chown ec2-user:ec2-user -R /opt/codedeploy-agent/
sudo chown ec2-user:ec2-user -R /var/log/aws/

5.    Reinicie o atendente CodeDeploy e confirme se suas atualizações no arquivo de configuração foram bem-sucedidas executando os dois comandos a seguir:

sudo service codedeploy-agent start
sudo service codedeploy-agent status

Exemplo de saída de comando bem-sucedida

The AWS CodeDeploy agent is running as PID ####

6.    Verifique quais processos estão sendo executados e qual usuário está executando esses processos executando o seguinte comando:

ps aux | grep codedeploy-agent

Criar um modelo de configuração de lançamento do Amazon EC2 e um grupo de Auto Scaling para automatizar o processo de mudança de usuário

Para confirmar se o atendente CodeDeploy está instalado e em execução com o usuário correto quando novas instâncias forem iniciadas, faça o seguinte:

1.    Abra o console do Amazon EC2.

2.    No painel de navegação, escolha Launch Configurations (Configurações de inicialização).

3.    Escolha Create launch configuration (Criar configuração de inicialização).

4.    Selecione o Amazon Linux AMI.

5.    Escolha Next (Avançar): Configure os detalhes.

6.    Para o perfil do IAM, escolha uma função pré-configurada do AWS Identity and Access Management (IAM). O perfil deve conceder permissão à sua instância do EC2 para acessar os recursos do Amazon Simple Storage Service (Amazon S3).

7.    Escolha Advanced Details (Detalhes avançados).

8.    Na seção User data (Dados do usuário) do arquivo de configuração do atendente, digite os comandos para instalar o atendente CodeDeploy. Em seguida, atualize o arquivo para usar um usuário específico.

Exemplo de arquivo de configuração do atendente

Importante: substitua ec2-user pelo nome de usuário no qual você deseja que o atendente host CodeDeploy seja executado. O código de exemplo a seguir é executado automaticamente quando uma nova instância é iniciada usando a configuração de execução definida.

#!/bin/bash
REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone/ | sed 's/[a-z]$//')
yum -y update
yum install ruby wget -y
cd /home/ec2-user
wget https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install
chmod +x ./install
./install auto
service codedeploy-agent stop
#adduser username <--- this is only required if you use a username that does not already exist
sed -i 's/""/"ec2-user"/g' /etc/init.d/codedeploy-agent
#sed -i 's/#User=codedeploy/User=ec2-user/g' /usr/lib/systemd/system/codedeploy-agent.service  <--- Uncomment this line for Amazon Linux 2
systemctl daemon-reload
chown ec2-user:ec2-user -R /opt/codedeploy-agent/
chown ec2-user:ec2-user -R /var/log/aws/
service codedeploy-agent start

9.    Conclua as etapas restantes no AWS Launch Wizard conforme necessário. Em seguida, escolha Create launch configuration (Criar configuração de inicialização).

10.    Escolha Create an Auto Scaling group using this launch configuration (Criar um grupo de Auto Scaling usando essa configuração de inicialização).

11.    Em Group name (Nome do grupo), insira um nome para seu grupo do Auto Scaling.

12.    Em Subnet (Sub-rede), insira uma sub-rede que permita que sua instância acesse a internet.

13.    Escolha Next (Avançar): Configure políticas de escalabilidade. Em seguida, escolha uma política com base nas suas necessidades.

14.    Conclua o restante das etapas do Assistente de inicialização. Em seguida, escolha Create Auto Scaling Group (Criar grupo de Auto Scaling).

Testar a configuração verificando se o atendente CodeDeploy está instalado e em execução com o usuário correto em uma nova instância do Amazon EC2

Confirme se sua instância do Amazon EC2 está em execução. Em seguida, faça o seguinte:

1.    Conecte-se à sua instância do Amazon EC2 usando SSH.

2.    Verifique se o atendente CodeDeploy está sendo executado na instância do Amazon EC2 executando o seguinte comando:

sudo service codedeploy-agent status

3.    Verifique se o atendente CodeDeploy está sendo executado com o nome de usuário correto executando o seguinte comando:

ps aux | grep codedeploy-agent

Exemplo de saída de comando bem-sucedida

The AWS CodeDeploy agent is running as PID ####

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos