Comment puis-je utiliser les configurations de lancement pour installer l'agent CodeDeploy automatiquement sur une instance Amazon EC2 Linux ou Ubuntu ?

Date de la dernière mise à jour : 02/03/2020

Je souhaite lancer des configurations pour installer automatiquement l'agent AWS CodeDeploy sur une instance Amazon Elastic Compute Cloud (Amazon EC2) s'exécutant sur Linux ou Ubuntu.

Solution

Lorsque vous créez une configuration de lancement, vous pouvez utiliser le champ User data (Données utilisateur) pour ajouter un script de configuration qui s'exécute lorsque l'instance démarre. Ce script shell installe l'agent CodeDeploy pour toutes les régions AWS, mais aussi pour les distributions Amazon Linux et Ubuntu prises en charge.

Remarque : vous pouvez activer la mise à jour automatique CodeDeploy au démarrage en définissant la variable « AUTOUPDATE » (Mise à jour automatique) sur « true » (vrai).

Par exemple, vous pouvez ajouter le script de configuration suivant dans le champ User data (Données utilisateur) Amazon EC2 :

#!/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 "Instalation 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 "Instalation 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 "Instalation 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 "Instalation 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

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?