웹대시보드 개발

웹대시보드 개발(17) github actions로 putty에 접속하지 않고 소스코드 ec2서버에 바로 push하기(1)

개발연습자1 2022. 12. 20. 11:30

소스코드를 고칠때마다 putty로 멀리있는 서버에 원격으로 접속해서 자신의 소스코드를 고친다는것은 여간 불편한것이 아니다. 이 때문에 소스코드를 고치면 바로 ec2서버에 반영할수 있는 자동적인 기능이 필요한데 이걸 github actions가 해준다. 

 

지금부터 github actions을 알아보자

 

먼저 github에 접속해서 본인의 소스코드가 있는 레포지토리에 접속한다.  접속한후 맨 오른쪽 상단에 Settings를 클릭한다.

 

 

Settings에서 secret에서 Actions 기능을 클릭한다.

 

Actions에서  New repository secret를 클릭한다.

 

 

여기에 예전에 putty로 접속할때 필요했던 username(본인의 aws ec2서버 dns 주소),PRIVATE_KEY(ec2접속할때 썻던 키파일)과 putty에 접속하면 입력했던 host(ec2-user)파일을 만들어 준다.

 

특히 여기서 키파일을 적용하려면 github는 리눅스이기 때문에 pkl파일이 먹지 않기 때문에 putty gen에서 pkl파일을 pem파일로 바꿔서 적용해야 한다. 

 

conversion을 누르고 적용한다.

 

settings를 나가서 actions로 들어가서 New workflow를 누른다.

 

New workflow에서 코드를 작성해야 하는데 다음과 같이 작성한다. 여기서 오타가 나면 다음 동작이 작동되지 않는다.

다되었다면 파일 이름을 main으로 한다.

name: ec2 deploy
on:
  push:
    branches:
      - main

jobs:
  SSH:
    runs-on: ubuntu-latest
  
    steps:
      - uses: actions/checkout@v3
      - name: ssh to ec2
        uses: appleboy/ssh-action@master
        with:
          key: ${{ secrets. #본인의 key파일 이름}}
          host: ${{ secrets.#본인의 host파일 이름 }}
          username: ${{ secrets.#본인의 USER파일 이름 }}
          script: |
            cd #본인의 레포지토리 이름
            git pull

 

적용한뒤 나가서 확인해 보면 main에 Branches에 아까 적용한 이름의 파일이 들어있다.

 

확인까지 했다면 Actions에서 들어가면 초록배경에 체크버튼 체크버튼이 활성화 되어 있다. 그러면 일단 연결은 성공이나 아직 작업이 남았다.

 

반응형