Como posso usar modelos de execução para instalar automaticamente o agente do CodeDeploy em uma instância do Amazon EC2 que executa o Amazon Linux ou Ubuntu?
Como faço para instalar automaticamente o agente do AWS CodeDeploy em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) executando Linux ou Ubuntu?
Resolução
Ao criar um modelo de execução, é possível usar o campo User data (Dados do usuário) para adicionar um script de configuração que é executado quando a instância é iniciada. Esse script de shell instala o agente do CodeDeploy em todas as regiões da AWS e distribuições Amazon Linux e Ubuntu com suporte.
Nota: é possível configurar o CodeDeploy para atualizar automaticamente na inicialização definindo a variável AUTOUPDATE como true (verdadeira).
Por exemplo, é possível adicionar o seguinte script de configuração no campo User data (Dados do usuário) do Amazon EC2:
Importante: o script a seguir funciona somente no EC2 para Linux. Em ambientes Windows, o script falha.
#!/bin/bash -xe ## Code Deploy Agent Bootstrap Script## exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 AUTOUPDATE=false function installdep(){ if [ ${PLAT} = "ubuntu" ]; then apt-get -y update # Satisfying even ubuntu older versions. apt-get -y install jq awscli ruby2.0 || apt-get -y install jq awscli ruby elif [ ${PLAT} = "amz" ]; then yum -y update yum install -y aws-cli ruby jq fi } function platformize(){ #Linux OS detection# if hash lsb_release; then echo "Ubuntu server OS detected" export PLAT="ubuntu" elif hash yum; then echo "Amazon Linux detected" export PLAT="amz" else echo "Unsupported release" exit 1 fi } function execute(){ if [ ${PLAT} = "ubuntu" ]; then cd /tmp/ wget https://aws-codedeploy-${REGION}.s3.amazonaws.com/latest/install chmod +x ./install if ./install auto; then echo "Installation completed" if ! ${AUTOUPDATE}; then echo "Disabling Auto Update" sed -i '/@reboot/d' /etc/cron.d/codedeploy-agent-update chattr +i /etc/cron.d/codedeploy-agent-update rm -f /tmp/install fi exit 0 else echo "Installation script failed, please investigate" rm -f /tmp/install exit 1 fi elif [ ${PLAT} = "amz" ]; then cd /tmp/ wget https://aws-codedeploy-${REGION}.s3.amazonaws.com/latest/install chmod +x ./install if ./install auto; then echo "Installation completed" if ! ${AUTOUPDATE}; then echo "Disabling auto update" sed -i '/@reboot/d' /etc/cron.d/codedeploy-agent-update chattr +i /etc/cron.d/codedeploy-agent-update rm -f /tmp/install fi exit 0 else echo "Installation script failed, please investigate" rm -f /tmp/install exit 1 fi else echo "Unsupported platform ''${PLAT}''" fi } platformize installdep REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r ".region") execute
Informações relacionadas
Create a launch template for an Auto Scaling group (Criar um modelo de execução para um grupo do Auto Scaling)

Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 meses
- AWS OFICIALAtualizada há 8 meses
- AWS OFICIALAtualizada há um ano