본문 바로가기
Archive

github actions SSH + EC2 CICD 파이프라인 구축(삽질 10시간이상)

by livemehere 2022. 8. 5.

왜 매번 삽질은 똑같이 반복하는지..

분병 ec2 github actions을 통해 ssh접속을해서 git pull, npm 스크립트 실행을해서 자동배포를 했었는데, 왜 안되지??!

진짜 이거하려고 집념을 가지고 actions, issue, medium 을 얼마나 찾아봤는지.. 삽질이 의미있긴 하지만.. 시간도 너무 아깝다

 

원래는 eb를 이용해서 간단히 환경구축을 하려했는데, nestJS는 워낙 까다로웠고, 잘안됬다.. 그래서 직접 환경 구축을 하다가 마주친 삽질 start...

 

내가 하려고했던 거는

1. github master push

2. github actions -> ssh action 실행

3. [ec2] npm 스크립트 실행 (git pull, pm2를 묶어서 npm run redeploy 하나만 해주도록 했다)

 

처음환경세팅

우선 처음에는 모두 수동으로 ec2 만들고, nvm설치, git clone 등 배포를 한번해준다.

 

ubuntu password 발급

글 포스팅 중 발급하는 과정을 정리해놓은게 있는데 다시하긴 귀찮으니..

password 생성하고, ssh 옵션에서 비밀번호 로그인을 yes로 바꾸고, ssh 서버를 재실행한다.

 

github Actions

아래 액션 을 추가하고 push 하면 끝!

name: remote ssh command
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: executing remote ssh commands using password
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }}
          script: |
            cd ddm-server-2
            PATH=$PATH:/home/ubuntu/.nvm/versions/node/v18.7.0/bin
            npm run redeploy

 

삽질 포인트

1. password 로 접속하도록 바꾼다는 생각을 못하고, 계속 pem 키 값을 넣어서 사용하려 했다.

2. npm 명령어를 찾을 수 없다고 나와서 한참 해맸는데, global path를 설정해주어야 됬었다.

 

Trouble Shooting

- 반드시 git pull 하지말고, git pull origin master 으로 풀네임으로해주자!

반응형