From 0f2c4a4473ae09ce881a362352590b5286f925bc Mon Sep 17 00:00:00 2001 From: "parham@PopOs" Date: Tue, 28 May 2024 00:23:03 +0200 Subject: [PATCH] new idea --- .github/workflows/deploy-to-ec2.yml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/deploy-to-ec2.yml b/.github/workflows/deploy-to-ec2.yml index ddd7ee6..a60d976 100644 --- a/.github/workflows/deploy-to-ec2.yml +++ b/.github/workflows/deploy-to-ec2.yml @@ -81,6 +81,18 @@ jobs: docker rm my-container || true docker run -d --name my-container -p 80:5000 ${{ secrets.DOCKER_HUB_USERNAME }}/flask-app-image-repository:latest EOF + - name: Make shell script template + run: | + cat << EOF > update_instance.sh + #!/bin/bash + ip=$1 + ssh -o StrictHostKeyChecking=no -i /home/runner/.ssh/id_rsa ubuntu@$ip << 'EOF' + docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/flask-app-image-repository:latest + docker stop my-container || true + docker rm my-container || true + docker run -d --name my-container -p 80:5000 ${{ secrets.DOCKER_HUB_USERNAME }}/flask-app-image-repository:latest + EOF + cat update_instance.sh - name: Retrieve Autoscaling EC2 server IPs id: get_autoscaling_instances_ips @@ -93,21 +105,15 @@ jobs: IFS=$'\n' read -d '' -r -a ips < "$ips_file" for i in "${!ips[@]}"; do echo "Auto_Instance_IP_$((i+1)): ${ips[i]}" >> $GITHUB_ENV + touch update_instance_$((i+1)).sh + done - name: Update Autoscaling EC2 with new Docker image run: | cat autoscaling_instance_ips.txt ips_file="autoscaling_instance_ips.txt" - IFS=$'\n' read -d '' -r -a ips < "$ips_file" - for i in "${!ips[@]}"; do - ssh -o StrictHostKeyChecking=no -i /home/runner/.ssh/id_rsa ubuntu@${ips[i]} << 'EOF' - docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/flask-app-image-repository:latest - docker stop my-container || true - docker rm my-container || true - docker run -d --name my-container -p 80:5000 ${{ secrets.DOCKER_HUB_USERNAME }}/flask-app-image-repository:latest - EOF - done + env: AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}