2022-03-02 TIL

Grolar Kim·2022년 3월 2일
0

TIL-WIL

목록 보기
7/17

깃허브 액션을 통해 ci/cd를 알아보던 중 elastic beanstalk뿐만아니라 ec2에 직접 ssh연결을 통해 서버를 업데이트 하는 방법도 있어서 흥미로웠다.

메인 브랜치가 업데이트 될 시 ssh-action을 통해 스크립트들을 실행시키게 된다.

  • 보안이 필요한 정보는 Github repository Settings에 Secret에 내용을 넣어 사용한다.

    • SSH_KEY: AWS EC2 인스턴스 생성 시 키 페어 내용 (.pem)
    • HOST: EC2 인스턴스 IP
    • USER: 사용자 이름
  • 스크립트의 경우 |를 통해 여러개의 스크립트를 실행시킬 수 있다.

    • cd를 통해 내 작업폴더로 이동
    • git fetch와 pull을 통해 업데이트
    • systemctl을 통해 서비스들을 재시작
  • 내가 사용한 코드

name: CD

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-20.04

    steps:
      - name: Checkout source code.
        uses: actions/checkout@main

      - name: Run scripts in server
        uses: appleboy/ssh-action@master
        with:
          key: ${{ secrets.SSH_KEY }}
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USER }}
          script: |
            cd sparta/webserver
            git fetch
            git pull
            sudo systemctl restart webserver
            sudo systemctl restart nginx

출처 : [Git] Github Actions로 AWS EC2 서버에 배포 자동화

깃허브 : https://github.com/appleboy/ssh-action

0개의 댓글