From b6d4de42c1db53ff4fa2b05230a097f122a5bcce Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Wed, 18 Sep 2024 15:25:38 +0530 Subject: [PATCH 01/11] Update service-deploy.yaml --- .github/workflows/service-deploy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/service-deploy.yaml b/.github/workflows/service-deploy.yaml index d778ea4..6127cae 100644 --- a/.github/workflows/service-deploy.yaml +++ b/.github/workflows/service-deploy.yaml @@ -6,12 +6,12 @@ on: - main env: - EC2_PUBLIC_IP: X.X.X.X # TODO replace to your EC2 instance public IP + EC2_PUBLIC_IP: ai-spill.devops-days-upes.com # TODO replace to your EC2 instance public IP SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} # TODO define this secret in your GitHub repo settings jobs: Deploy: - name: Deploy in EC2 + name: Deploy in AWS EC2 runs-on: ubuntu-latest steps: - name: Checkout the app code From f807f77d34288fe25d7dbffcf520f135ca4429d0 Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 12:51:12 +0530 Subject: [PATCH 02/11] Update deploy.sh --- deploy.sh | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/deploy.sh b/deploy.sh index 11c5981..b6b814e 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,3 +1,31 @@ + #!/bin/bash +set -e + +echo "" +echo "Installing python3.12-venv..." +echo "--------------------------------" +sudo apt-get update +sudo apt-get install -y python3.12-venv + +echo "" +echo "Creating a Python virtual environment..." +echo "--------------------------------" +python3 -m venv venv + +echo "" +echo "Activating the Python virtual environment..." +echo "--------------------------------" +source venv/bin/activate + +echo "" +echo "Install Python dependencies..." +echo "--------------------------------" +pip install -r requirements.txt + +echo "" +echo "Starting the Python application..." +echo "--------------------------------" +python app.py -# TODO your deploy script implementation... \ No newline at end of file +# TODO your deploy script implementation... From 4ae090bf725e09cc8772c65671a270772840084c Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 12:54:30 +0530 Subject: [PATCH 03/11] Update service-deploy.yaml --- .github/workflows/service-deploy.yaml | 38 ++++++++++++++++----------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/.github/workflows/service-deploy.yaml b/.github/workflows/service-deploy.yaml index 6127cae..33b3444 100644 --- a/.github/workflows/service-deploy.yaml +++ b/.github/workflows/service-deploy.yaml @@ -11,25 +11,33 @@ env: jobs: Deploy: - name: Deploy in AWS EC2 + name: Deploy in EC2 runs-on: ubuntu-latest steps: - name: Checkout the app code uses: actions/checkout@v2 - - name: SSH to EC2 instance + - name: Set up SSH agent run: | - echo "$SSH_PRIVATE_KEY" > mykey.pem - chmod 400 mykey.pem - - # Copy the files from the current work dir into the EC2 instance, under `~/app`. - scp -o StrictHostKeyChecking=no -i mykey.pem -r * ubuntu@$EC2_PUBLIC_IP:~/app - - # Connect to your EC2 instance and execute the `deploy.sh` script (this script is part of the repo files). - # TODO You need to implement the `deploy.sh` script yourself. - # - # Upon completion, the NetflixMovieCatalog app should be running with its newer version. - # To keep the app running in the background independently on the terminal session you are logging to, configure it as a Linux service. - - ssh -i mykey.pem ubuntu@$EC2_PUBLIC_IP "bash ~/app/deploy.sh" + mkdir -p ~/.ssh + echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/mykey.pem + chmod 600 ~/.ssh/mykey.pem + eval "$(ssh-agent -s)" + ssh-add ~/.ssh/mykey.pem + + - name: Check SSH connectivity + run: | + ssh -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem ubuntu@$EC2_PUBLIC_IP "echo 'Connection successful!'" + + - name: Ensure app directory exists + run: | + ssh -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem ubuntu@$EC2_PUBLIC_IP "mkdir -p ~/app" + + - name: Copy files to EC2 + run: | + scp -o StrictHostKeyChecking=no -i /.ssh/mykey.pem -r * ubuntu@$EC2_PUBLIC_IP:/app + + - name: Deploy to EC2 + run: | + ssh -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem ubuntu@$EC2_PUBLIC_IP "bash ~/app/deploy.sh" From 1d41cc9d740bc5d781e60039913ee16f86b83e28 Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 12:56:28 +0530 Subject: [PATCH 04/11] Update service-deploy.yaml --- .github/workflows/service-deploy.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/service-deploy.yaml b/.github/workflows/service-deploy.yaml index 33b3444..a8216bb 100644 --- a/.github/workflows/service-deploy.yaml +++ b/.github/workflows/service-deploy.yaml @@ -40,4 +40,3 @@ jobs: - name: Deploy to EC2 run: | ssh -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem ubuntu@$EC2_PUBLIC_IP "bash ~/app/deploy.sh" - From 76b301fc03e74c160a66086c610cd09df990aed3 Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:00:05 +0530 Subject: [PATCH 05/11] Update service-deploy.yaml --- .github/workflows/service-deploy.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/service-deploy.yaml b/.github/workflows/service-deploy.yaml index a8216bb..cb31bd3 100644 --- a/.github/workflows/service-deploy.yaml +++ b/.github/workflows/service-deploy.yaml @@ -6,8 +6,8 @@ on: - main env: - EC2_PUBLIC_IP: ai-spill.devops-days-upes.com # TODO replace to your EC2 instance public IP - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} # TODO define this secret in your GitHub repo settings + EC2_PUBLIC_IP: ai-spill.devops-days-upes.com # Replace with your EC2 instance public IP + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} # Define this secret in your GitHub repo settings jobs: Deploy: @@ -35,7 +35,7 @@ jobs: - name: Copy files to EC2 run: | - scp -o StrictHostKeyChecking=no -i /.ssh/mykey.pem -r * ubuntu@$EC2_PUBLIC_IP:/app + scp -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem -r * ubuntu@$EC2_PUBLIC_IP:/app - name: Deploy to EC2 run: | From ac98462ed5506b27a9e6de7c8e2389253ac504cc Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:06:01 +0530 Subject: [PATCH 06/11] Update service-deploy.yaml --- .github/workflows/service-deploy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/service-deploy.yaml b/.github/workflows/service-deploy.yaml index cb31bd3..310f0b2 100644 --- a/.github/workflows/service-deploy.yaml +++ b/.github/workflows/service-deploy.yaml @@ -29,13 +29,13 @@ jobs: run: | ssh -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem ubuntu@$EC2_PUBLIC_IP "echo 'Connection successful!'" - - name: Ensure app directory exists + - name: Ensure app directory exists on EC2 run: | ssh -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem ubuntu@$EC2_PUBLIC_IP "mkdir -p ~/app" - name: Copy files to EC2 run: | - scp -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem -r * ubuntu@$EC2_PUBLIC_IP:/app + scp -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem -r * ubuntu@$EC2_PUBLIC_IP:~/app - name: Deploy to EC2 run: | From ada7ab19d1f397f558c62f27843fd28d2f7e0569 Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:44:17 +0530 Subject: [PATCH 07/11] Update service-deploy.yaml --- .github/workflows/service-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/service-deploy.yaml b/.github/workflows/service-deploy.yaml index 310f0b2..611187a 100644 --- a/.github/workflows/service-deploy.yaml +++ b/.github/workflows/service-deploy.yaml @@ -35,7 +35,7 @@ jobs: - name: Copy files to EC2 run: | - scp -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem -r * ubuntu@$EC2_PUBLIC_IP:~/app + scp -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem -r ./* ubuntu@$EC2_PUBLIC_IP:~/app - name: Deploy to EC2 run: | From 9eb04ef954222165b11d50eecebdfb73852b1f7a Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:46:18 +0530 Subject: [PATCH 08/11] Update deploy.sh --- deploy.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/deploy.sh b/deploy.sh index b6b814e..b14a90d 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,4 +1,3 @@ - #!/bin/bash set -e @@ -18,6 +17,11 @@ echo "Activating the Python virtual environment..." echo "--------------------------------" source venv/bin/activate +echo "" +echo "Checking directory contents..." +echo "--------------------------------" +ls -la + echo "" echo "Install Python dependencies..." echo "--------------------------------" @@ -27,5 +31,3 @@ echo "" echo "Starting the Python application..." echo "--------------------------------" python app.py - -# TODO your deploy script implementation... From b792101a6b02c3677143fc25963c4a2c36c9a582 Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:48:40 +0530 Subject: [PATCH 09/11] Update service-deploy.yaml From 70473f42022ffcf883dfd54658716d2116ea7f61 Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:50:49 +0530 Subject: [PATCH 10/11] Update deploy.sh --- deploy.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deploy.sh b/deploy.sh index b14a90d..84536d4 100644 --- a/deploy.sh +++ b/deploy.sh @@ -17,6 +17,11 @@ echo "Activating the Python virtual environment..." echo "--------------------------------" source venv/bin/activate +echo "" +echo "Changing to the application directory..." +echo "--------------------------------" +cd ~/NetflixMovieCatalog + echo "" echo "Checking directory contents..." echo "--------------------------------" From 6a6a35ac8f3e1a10928d818c1dfafa36dd205a7e Mon Sep 17 00:00:00 2001 From: Chanchreek <145703811+Chanchreek@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:52:36 +0530 Subject: [PATCH 11/11] Update service-deploy.yaml --- .github/workflows/service-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/service-deploy.yaml b/.github/workflows/service-deploy.yaml index 611187a..64b4b89 100644 --- a/.github/workflows/service-deploy.yaml +++ b/.github/workflows/service-deploy.yaml @@ -35,7 +35,7 @@ jobs: - name: Copy files to EC2 run: | - scp -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem -r ./* ubuntu@$EC2_PUBLIC_IP:~/app + scp -o StrictHostKeyChecking=no -i ~/.ssh/mykey.pem -r ./* ubuntu@$EC2_PUBLIC_IP:~/NetflixMovieCatalog - name: Deploy to EC2 run: |