개발학습일지

[Git] github Actions로 EC2 리눅스에 git pull 자동화하는 방법 본문

Git

[Git] github Actions로 EC2 리눅스에 git pull 자동화하는 방법

처카푸 2024. 5. 7. 11:48

github.com 에서 EC2에 git pull 자동화하는 방법

 

1. 내가 자동화 하고 싶은 레파지토리에 Settings에 들어간다.

레파지토리 settings

2. 세팅 Secrets and variables 에 Actions 에 들어가서 pull하는데에 필요한 3가지 정보를 입력해준다.

Secrets and variables 에 Actions

2-1. HOST : ip 주소 저장

- 나의 AWS IP주소 또는 DNS 를 복사해서 가져온다.

IP 주소 입력

2-2. SSH_PRIVATE_KEY : 인증키 PPK(윈도우즈 용)를 PEM(리녹스 용)으로 변환하여 저장

- 변환을 위해서 PuTTY 설치할때 같이 설치되는 PuTTYgen 에서 인증키 변환해준다.

PuTTYgen

- ppk load 하고, Key comment 작성

ppk load

- Conversions 에서 ppk를 pem으로 변환할때, 확장자 꼭 .pem으로 해준다.

conversions_Export OpenSSH key
pem 이름

- github.com 에서 새로운 시크릿 엑션즈 만들기

- pem 파일 폴더 드래그해서 넣으면 창이 뜨는데 창에 떠 있는 글 전체 복사해서 붙여 넣는다.

pem 넣기
pem 전체 복사

 

 

2-3. USER : 유저 명 저장

USER

2-4. 3가지 모두 저장 완료 된 상태

complete

 

3. 내가 자동화 하고 싶은 레파지토리 파일 경로 알려준다.

- github.com 에 actions 에서 작성

set up a workflow yourself

- 나의 branches 확인하고, 작성하기

- .yml (야믈파일)은 클론과 들여쓰기를 사용하여 작성되고, 환경설정할 때 많이 사용된다.

branches 의 main 확인하고 branches : main 으로 작성완료.

- 작성 방법

# 이름은 자유
name: deploy

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
  # 내 branches 확인하여 작성
    branches:
      - main


jobs:
 # github에서 리녹스 컴퓨터 하나 만들어서 접속하라는 명령어
  SSH:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      # 이름은 자유
      - name: ssh to ec2
        uses: appleboy/ssh-action@master
        with:
        # 내가 만든 시크릿 엑션즈 키와 이름이 동일해야한다
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USER }}
         # 내가 자동화 시키고 싶은 데렉토리 경로 작성 및 git pull 하기
          script: |
            cd Github/streamlit_car_price/                        
            git pull

 

3-1. 잘 설정되었는지 초록색 체크 박스로 확인

create main.yml

 

4. GitHub Desktop 에서

   해당 레파지토리 pull -> 코드 수정 -> 로컬에서 확인 -> commit -> push 하고,

   자동으로 잘 변경되는지 확인한다.  내가 적은 커밋 제목으로 제대로 pull 된 것을 확인할 수 있다.

최종 확인 완료