[Github] action으로 AWS EC2에 자동으로 파일 만들기

 

 

 

[github] Action 설정

 

 

 

Actions - set up a workflow yourself

 

 

 

 

 

 

코드 입력 - commit changes

 

 

name: devops test

on:
  push:
    branches: [ main ]
    
jobs:
  deploy:
    name: Deploy to EC2
    runs-on: ubuntu-latest

    steps:
    - name: get code from github
      uses: appleboy/ssh-action@v1.0.3
      with:
        host: ${{ secrets.REMOTE_HOST }}
        username: ${{ secrets.REMOTE_USER }}
        key: ${{ secrets.SSH_KEY }}
        port: ${{ secrets.REMOTE_PORT }}
        script: |
          echo test > /tmp/abcd

기본 workflows 코드

 

 

 

 

 

 

완료된 화면

 

 

 

 

 

Settings - Action - New repository secret

 

 

 

 

workflows에서 {{ }} 괄호 안에 작성한 것들의 Secrets 등록

 

 

REMOTE_HOST: 원격 서버의 공인 IP 주소나 도메인 이름입니다. 예를 들어, 1.1.1.1 또는 example.com과 같은 형태입니다. 파일을 복사할 서버의 위치를 지정합니다. 저는 AWS EC2에서 진행할 거라서 EC2 인스턴트에가면 있는 퍼블릭 IP를 입력해주었습니다.

 

REMOTE_PORT : 22

REMOTE_USER: 원격 서버에 접속하기 위한 사용자 이름입니다. 보통 root 대신 일반 사용자 계정을 사용하는 것이 보안상 좋습니다. 예를 들어, username과 같은 형태입니다. ex) ubuntu


SSH_KEY : SSH 접속에 사용할 개인 키 파일입니다. PEM 형식의 파일을 메모장 등으로 열어서 그 내용 전체를 복사해 사용합니다. 이 키는 원격 서버에 안전하게 접속하기 위해 필요합니다. EC2를 제작할때 받은 key.pem파일 내용을 넣으면 됩니다.

 

 

 


 

 

 

https://joygotohome.tistory.com/97

 

[AWS] EC2에 Spring Boot jar 파일 배포하기

배포를 위한 spring boot 샘플 프로젝트 빌드   배포를 위한 spring boot 샘플 프로젝트 빌드텅비어서 controller만 하나 있는 프로젝트를 build해줍니다.  build/libs 위치에 있는 jar파일을 확인해 줍니다.

joygotohome.tistory.com

EC2 생성과 설정은 해당 글을 참고해 주세요.

 

 

 


 

 

 

github에서 설정을 완료하고

git pull을 하면 workflow가 생성되어 내려온것을 볼 수 있습니다.

 

 

코드를 수정한 수 push를 해줍니다.

 

 

 

지금 하려는건 EC2에 배포되어있는 코드를 자동 배포하여 /tmp/abcd라는 파일을 만들려고 합니다.

tml폴더에 쓰기 권한을 줘야해서 AWS ec2에서 /tmp 폴더 권한을 열어주었습니다.

 

 

 

github의 Action에 가면 커밋한 내용이 잘 돌아간것을 확인할 수 있습니다.

 

 

 

github에 push만 하였을 뿐인데 AWS EC2의 /tmp 폴더에 abcd 파일이 만들어진것을 확인할 수 있습니다.